From be35c8dd5312dba4a6a2fdd6e9a6c71aa37956da Mon Sep 17 00:00:00 2001 From: "Leon.kov" Date: Wed, 24 Apr 2024 14:52:30 +0300 Subject: [PATCH] feat: add setting page to change current design, fix logo opacity --- extractedTranslations/en/translation.json | 218 +- json-server/db.json | 1760 ++++++++--------- .../providers/router/config/routeConfig.tsx | 7 + .../ui/NotificationList/NotificationList.tsx | 2 +- src/features/uiDesignSwitcher/index.ts | 1 + .../ui/UiDesignSwitcher/UiDesignSwitcher.tsx | 66 + src/pages/SettingsPage/index.ts | 1 + .../ui/SettingsPage/SettingsPage.async.tsx | 3 + .../ui/SettingsPage/SettingsPage.tsx | 26 + src/shared/const/router.ts | 2 + .../lib/features/api/featureFlagsApi.ts | 24 + .../ToggleFeatures/ToggleFeatures.tsx | 2 +- src/shared/lib/features/index.ts | 6 +- .../lib/features/{ => lib}/setGetFeatures.ts | 8 +- .../lib/features/{ => lib}/toggleFeatures.ts | 0 .../features/services/updateFeatureFlags.ts | 36 + .../ui/redesigned/AppLogo/AppLogo.module.scss | 7 +- src/widgets/Page/ui/Page/Page.module.scss | 1 + 18 files changed, 1150 insertions(+), 1020 deletions(-) create mode 100644 src/features/uiDesignSwitcher/index.ts create mode 100644 src/features/uiDesignSwitcher/ui/UiDesignSwitcher/UiDesignSwitcher.tsx create mode 100644 src/pages/SettingsPage/index.ts create mode 100644 src/pages/SettingsPage/ui/SettingsPage/SettingsPage.async.tsx create mode 100644 src/pages/SettingsPage/ui/SettingsPage/SettingsPage.tsx create mode 100644 src/shared/lib/features/api/featureFlagsApi.ts rename src/shared/lib/features/{ => components}/ToggleFeatures/ToggleFeatures.tsx (87%) rename src/shared/lib/features/{ => lib}/setGetFeatures.ts (57%) rename src/shared/lib/features/{ => lib}/toggleFeatures.ts (100%) create mode 100644 src/shared/lib/features/services/updateFeatureFlags.ts diff --git a/extractedTranslations/en/translation.json b/extractedTranslations/en/translation.json index b28134b..7f489a1 100644 --- a/extractedTranslations/en/translation.json +++ b/extractedTranslations/en/translation.json @@ -1,109 +1,113 @@ { - "": "", - "123": "123", - "Admin panel": "", - "All": "", - "Article ratings coming soon!": "", - "Articles app": "", - "Articles not found": "", - "Ascending": "", - "Back to list": "", - "Cancel": "", - "Choose ": "", - "Choose country": "", - "Choose currency": "", - "Comments": "", - "Comments is loading": "", - "Create new article": "", - "Creation date": "", - "Descending": "", - "Economics": "", - "Edit": "", - "Enter ": "", - "Enter comment text": "", - "Enter cooment text": "", - "Error while loading articles": "", - "Error with getting article data": "", - "Error with getting profile data": "", - "Exit": "", - "Here you can search and view articles on various topics": "", - "IT": "", - "Incorrect age": "", - "Incorrect country": "", - "Incorrect user data": "", - "Leave your feedback on the article, it will help improve the quality": "", - "Name": "", - "No data": "", - "PROFILE PAGE": "", - "Profile": "", - "Rate the article": "", - "Read more": { - "": { - "": { - "": "" - } - } - }, - "Recommend": "", - "Save": "", - "Science": "", - "Search": "", - "Send": "", - "Server error": "", - "Sort by": "", - "Sorting by": "", - "Thanks for review!": "", - "Try to reload page": "", - "Views": "", - "Welcome to the articles page!": "", - "You don`t have access to this page!": "", - "Your name": "", - "article_not_found": "", - "articles": "", - "articles page": "", - "articles_details": "", - "articles_details page": "", - "articles_detals": "", - "ascending": "", - "auth_form": "", - "auth_password": "", - "auth_username": "", - "by": "", - "comments": "", - "creation date": "", - "decrement": "", - "descending": "", - "exit": "", - "increment": "", - "login": "", - "login_error": "", - "name": "", - "no articles found": "", - "no comments": "", - "no profile found": "", - "read more": "", - "throw error": "throw error", - "views": "", - "Айти": "", - "Ваш отзыв": "", - "Все статьи": "", - "Главная страница": "", - "Закрыть": "", - "Наука": "", - "Обновить страницу": "", - "Отправить": "", - "Оценка статей скоро появится!": "", - "Поиск": "", - "Попробуйте обновить страницу": "", - "Произошла непредвиденная ошибка": "", - "Произошла ошибка при загрузке профиля": "", - "Сортировать ПО": "", - "Статьи не найдены": "", - "Экономика": "", - "возрастанию": "", - "дате создания": "", - "названию": "", - "по": "", - "просмотрам": "", - "убыванию": "" + "": "", + "123": "123", + "Admin panel": "", + "All": "", + "Article ratings coming soon!": "", + "Articles app": "", + "Articles not found": "", + "Ascending": "", + "Back to list": "", + "Cancel": "", + "Choose ": "", + "Choose country": "", + "Choose currency": "", + "Comments": "", + "Comments is loading": "", + "Create new article": "", + "Creation date": "", + "Descending": "", + "Design options": "", + "Economics": "", + "Edit": "", + "Enter ": "", + "Enter comment text": "", + "Enter cooment text": "", + "Error while loading articles": "", + "Error with getting article data": "", + "Error with getting profile data": "", + "Exit": "", + "Here you can search and view articles on various topics": "", + "IT": "", + "Incorrect age": "", + "Incorrect country": "", + "Incorrect user data": "", + "Leave your feedback on the article, it will help improve the quality": "", + "Name": "", + "New": "", + "No data": "", + "Old": "", + "PROFILE PAGE": "", + "Profile": "", + "Rate the article": "", + "Read more": { + "": { + "": { + "": "" + } + } + }, + "Recommend": "", + "Save": "", + "Science": "", + "Search": "", + "Send": "", + "Server error": "", + "Sort by": "", + "Sorting by": "", + "Thanks for review!": "", + "Try to reload page": "", + "User settings": "", + "Views": "", + "Welcome to the articles page!": "", + "You don`t have access to this page!": "", + "Your name": "", + "article_not_found": "", + "articles": "", + "articles page": "", + "articles_details": "", + "articles_details page": "", + "articles_detals": "", + "ascending": "", + "auth_form": "", + "auth_password": "", + "auth_username": "", + "by": "", + "comments": "", + "creation date": "", + "decrement": "", + "descending": "", + "exit": "", + "increment": "", + "login": "", + "login_error": "", + "name": "", + "no articles found": "", + "no comments": "", + "no profile found": "", + "read more": "", + "throw error": "throw error", + "views": "", + "Айти": "", + "Ваш отзыв": "", + "Все статьи": "", + "Главная страница": "", + "Закрыть": "", + "Наука": "", + "Обновить страницу": "", + "Отправить": "", + "Оценка статей скоро появится!": "", + "Поиск": "", + "Попробуйте обновить страницу": "", + "Произошла непредвиденная ошибка": "", + "Произошла ошибка при загрузке профиля": "", + "Сортировать ПО": "", + "Статьи не найдены": "", + "Экономика": "", + "возрастанию": "", + "дате создания": "", + "названию": "", + "по": "", + "просмотрам": "", + "убыванию": "" } diff --git a/json-server/db.json b/json-server/db.json index 7b9e528..376d67d 100644 --- a/json-server/db.json +++ b/json-server/db.json @@ -1,913 +1,863 @@ { - "notifications": [ - { - "id": "1", - "title": "Уведомление 1", - "description": "Произошло какое-то событие", - "userId": "1" - }, - { - "id": "2", - "title": "Уведомление 2", - "description": "Произошло какое-то событие", - "userId": "1", - "href": "http://localhost:3000/admin" - }, - { - "id": "3", - "title": "Уведомление 3", - "description": "Произошло какое-то событие", - "userId": "1", - "href": "http://localhost:3000/admin" - }, - { - "id": "4", - "title": "Уведомление 4", - "description": "Произошло какое-то событие", - "userId": "1" - }, - { - "id": "5", - "title": "Уведомление 1", - "description": "Произошло какое-то событие", - "userId": "2" - } - ], - "articles": [ - { - "id": "1", - "title": "Javascript news СВЕЖАЯ", - "subtitle": "Что нового в JS за 2022 год?", - "img": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Unofficial_JavaScript_logo_2.svg/1024px-Unofficial_JavaScript_logo_2.svg.png", - "views": 1022, - "createdAt": "26.04.2022", - "userId": "1", - "type": [ - "IT" - ], - "blocks": [ - { - "id": "1", - "type": "TEXT", - "title": "Заголовок этого блока", - "paragraphs": [ - "Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.", - "JavaScript — это язык, программы на котором можно выполнять в разных средах. В нашем случае речь идёт о браузерах и о серверной платформе Node.js. Если до сих пор вы не написали ни строчки кода на JS и читаете этот текст в браузере, на настольном компьютере, это значит, что вы буквально в считанных секундах от своей первой JavaScript-программы.", - "Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега \n \n;" - }, - { - "id": "5", - "type": "TEXT", - "title": "Заголовок этого блока", - "paragraphs": [ - "Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.", - "Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега \n \n;" + }, + { + "id": "5", + "type": "TEXT", + "title": "Заголовок этого блока", + "paragraphs": [ + "Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.", + "Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега