Skip to content

Commit

Permalink
Add layout for redesigned app
Browse files Browse the repository at this point in the history
  • Loading branch information
vladislav0sidorov committed Sep 10, 2023
1 parent 6413507 commit 653d1e4
Show file tree
Hide file tree
Showing 31 changed files with 361 additions and 35 deletions.
Binary file modified .DS_Store
Binary file not shown.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ npm run start:dev или npm run start:dev:vite - запуск сервера +
В проекте используется eslint для проверки typescript кода и stylelint для проверки файлов со стилями.

Также для строгого контроля главных архитектурных принципов
используется собственный eslint plugin _eslint-plugin-ulbi-tv-plugin_,
используется eslint plugin _eslint-plugin-ulbi-tv-plugin_,
который содержит 3 правила

1. path-checker - запрещает использовать абсолютные импорты в рамках одного модуля
Expand Down Expand Up @@ -183,17 +183,18 @@ Clear.args = {
в него передается объект с опциями

{
name: название фича-флага,
on: функция, которая отработает после Включения фичи
of: функция, которая отработает после ВЫключения фичи
name: название фича-флага,
on: функция, которая отработает после Включения фичи
of: функция, которая отработает после ВЫключения фичи
}

Для автоматического удаления фичи использовать скрипт remove-feature.ts,
который принимает 2 аргумента

1. Название удаляемого фича-флага
2. Состояние (on\off)

----
---

## Сущности (entities)

Expand Down
5 changes: 3 additions & 2 deletions json-server/db.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,11 @@
"ADMIN"
],
"features": {
"isArticleRaitingEnebled": true
"isArticleRaitingEnebled": true,
"isAppRedesigned": true
},
"jsonSettings": {
"theme": "app_light_theme",
"theme": "app_dark_theme",
"isArticlePageWasOpen": true
},
"avatar": "https://sun9-60.userapi.com/impg/eqo5sYxr_jyw_yWO9_pKJRMkx8WVwVENfJrecQ/1zVSkEZs5NM.jpg?size=1620x2160&quality=95&sign=73cab6427b2934395f04d96835eb3720&type=album"
Expand Down
30 changes: 17 additions & 13 deletions public/index.html
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@500&display=swap" rel="stylesheet" />
<title>Ulbi TV Course</title>
</head>
<html lang="ru">

<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Nunito+Sans:opsz,wght@6..12,400;6..12,500;6..12,700&family=Raleway:wght@500&family=Roboto:wght@400;500;700&display=swap"
rel="stylesheet" />
<title>My blog</title>
</head>

<body>
<div id="root"></div>
</body>

<body>
<div id="root"></div>
</body>
</html>
Binary file modified src/.DS_Store
Binary file not shown.
31 changes: 25 additions & 6 deletions src/app/App.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react'
import { useSelector } from 'react-redux'
import { useTranslation } from 'react-i18next'

import { classNames } from '@/shared/lib/ClassNames/ClassNames'
import { useTheme } from '@/app/providers/ThemeProvider'
Expand All @@ -9,20 +10,20 @@ import { Sidebar } from '@/widgets/Sidebar'
import { getUserInited, initAuthData } from '@/entities/User'
import { useAppDispatch } from '@/shared/lib/hooks/useAppDispatch/useAppDispatch'
import { PageLoader } from '@/widgets/PageLoader'
import { ToggleFeaturesComponent } from '@/shared/lib/features'
import { MainLayout } from '@/shared/layouts/MainLayout'

function App() {
const { theme } = useTheme()
const dispatch = useAppDispatch()
const inited = useSelector(getUserInited)

//* Есть баг в этом участке, следует разобраться
// const inited = useSelector(getUserInited);
const { t } = useTranslation()

React.useEffect(() => {
dispatch(initAuthData())
}, [dispatch])

let content = (
let deprecatedContent = (
<React.Suspense fallback="">
<Navbar />
<div className="content-page">
Expand All @@ -32,15 +33,33 @@ function App() {
</React.Suspense>
)

let redesignedContent = (
<React.Suspense fallback="">
<MainLayout header={<Navbar />} sidebar={<Sidebar />} content={<AppRouter />} toolbar={t('Toolbar')} />
</React.Suspense>
)

if (!inited) {
content = (
deprecatedContent = (
<div className={classNames('app', {}, [theme])}>
<PageLoader />
</div>
)

redesignedContent = (
<div className={classNames('app_redesigned', {}, [theme])}>
<PageLoader />
</div>
)
}

return <div className={classNames('app', {}, [theme])}>{content}</div>
return (
<ToggleFeaturesComponent
featureName="isAppRedesigned"
on={<div className={classNames('app_redesigned', {}, [theme])}>{redesignedContent}</div>}
off={<div className={classNames('app', {}, [theme])}>{deprecatedContent}</div>}
/>
)
}

export default App
7 changes: 7 additions & 0 deletions src/app/styles/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ body {
min-height: 100vh;
}

.app_redesigned {
font: var(--font-m-redesigned);
color: var(--text-redesigned);
background: var(--bg-redesigned);
min-height: 100vh;
}

.content-page {
display: flex;
}
Expand Down
11 changes: 11 additions & 0 deletions src/app/styles/themes/dark.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,17 @@
--inverted-secondary-color: #262223;
--inverted-third-color: #fbf4f6;

// redesigned
--dark-bg-redesigned: #090f11;
--bg-redesigned: #0c1214;
--light-bg-redesigned: #151c1f;
--text-redesigned: #dbdbdb;
--hint-redesigned: #555555;
--cancel-redesigned: #d95757;
--save-redesigned: #6cd98b;
--icon-redesigned: #74a2b2;
--accent-redesigned: #5ed3f3;

// Skeleton
--skeleton-color: #585252;
--skeleton-shadow: #1a1919;
Expand Down
11 changes: 11 additions & 0 deletions src/app/styles/themes/light.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,17 @@
--inverted-secondary-color: #fbf7f4;
--inverted-third-color: #161313;

// redesigned
--dark-bg-redesigned: #ffffff;
--bg-redesigned: #eff5f6;
--light-bg-redesigned: #e2eef1;
--text-redesigned: #141c1f;
--hint-redesigned: #adbcc0;
--cancel-redesigned: #ff7777;
--save-redesigned: #62de85;
--icon-redesigned: #5ed3f3;
--accent-redesigned: #00c8ff;

// Skeleton
--skeleton-color: #ededed;
--skeleton-shadow: #d0cbc7;
Expand Down
18 changes: 17 additions & 1 deletion src/app/styles/variables/global.scss
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
:root {
--font-family-main: "Raleway", sans-serif;
--font-family-main: 'Raleway', sans-serif;

// S
--font-size-s: 10px;
Expand Down Expand Up @@ -40,4 +40,20 @@
--overlay-color: rgba(0 0 0 / 60%);
--red-light: #db0000;
--red-dark: #c90000;

// *Redesigned variavles
--font-family-text-redesigned: 'Nunito Sans', sans-serif;
--font-family-title-redesigned: font-family: 'Roboto', sans-serif;

// S
--font-s-redesigned: var(--font-size-s) / var(--font-line-s) var(--font-family-text-redesigned);

// M
--font-m-redesigned: var(--font-size-m) / var(--font-line-m) var(--font-family-text-redesigned);

// L
--font-l-redesigned: var(--font-size-l) / var(--font-line-l) var(--font-family-title-redesigned);

// XL
--font-xl-redesigned: var(--font-size-xl) / var(--font-line-xl) var(--font-family-title-redesigned);
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { Page } from '@/widgets/Page'
import { VStack } from '@/shared/ui/Stack'
import { ArticleRecomendationsList } from '@/features/ArticleRecomendationsList'
import { ArticleRating } from '@/features/ArticleRating'
import { ToggleFeaturesComponent, toggleFeatures } from '@/shared/lib/features'
import { toggleFeatures } from '@/shared/lib/features'
import { Card } from '@/shared/ui/Card'

interface ArticleDetailsPageProps {
Expand Down
2 changes: 0 additions & 2 deletions src/pages/HomePage/ui/HomePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,10 @@ import { RatingCart } from '@/entities/Rating'

const HomePage = () => {
const { t } = useTranslation('home')
// const isArticleRaitingEnabled = getFeatureFlag('isArticleRaitingEnebled')

return (
<Page data-testid="HomePage">
<Text text={t('Домашняя страница')} />
{/* {isArticleRaitingEnabled && >} */}
<RatingCart hasFeedback feedbackTitle={t('Как вам сервис?')} />
</Page>
)
Expand Down
Binary file added src/shared/.DS_Store
Binary file not shown.
Binary file added src/shared/assets/.DS_Store
Binary file not shown.
Loading

0 comments on commit 653d1e4

Please sign in to comment.