From 6c86a8c1471bb6f266f1571da84ccb04f3fd23aa Mon Sep 17 00:00:00 2001 From: "Leon.kov" Date: Thu, 25 Apr 2024 15:22:49 +0300 Subject: [PATCH] feat: redesign article details content --- json-server/db.json | 1760 +++++++++-------- src/app/styles/reset.scss | 9 + .../ArticleCodeBlockComponent.tsx | 16 +- .../ArticleDetails/ArticleDetails.module.scss | 5 + .../ui/ArticleDetails/ArticleDetails.tsx | 99 +- .../Article/ui/ArticleDetails/renderBlock.tsx | 37 + .../ArticleImageBlockComponent.tsx | 4 +- .../Article/ui/ArticleList/ArticleList.tsx | 2 +- .../ArticleListItem.module.scss | 108 +- .../ui/ArticleListItem/ArticleListItem.tsx | 16 +- .../ArticleListItemSkeleton.module.scss | 112 ++ .../ArticleListItemSkeleton.tsx | 4 +- .../ArticleTextBlockComponent.tsx | 40 +- src/shared/assets/icons/copy.svg | 3 + .../Code/Code.module.scss | 5 +- .../Code/Code.stories.tsx | 0 .../{deprecated => redesigned}/Code/Code.tsx | 17 +- .../{deprecated => redesigned}/Code/index.ts | 0 src/shared/ui/redesigned/Text/Text.tsx | 6 +- 19 files changed, 1162 insertions(+), 1081 deletions(-) create mode 100644 src/entities/Article/ui/ArticleDetails/renderBlock.tsx create mode 100644 src/entities/Article/ui/ArticleListItem/ArticleListItemSkeleton/ArticleListItemSkeleton.module.scss rename src/entities/Article/ui/ArticleListItem/{ => ArticleListItemSkeleton}/ArticleListItemSkeleton.tsx (95%) create mode 100644 src/shared/assets/icons/copy.svg rename src/shared/ui/{deprecated => redesigned}/Code/Code.module.scss (62%) rename src/shared/ui/{deprecated => redesigned}/Code/Code.stories.tsx (100%) rename src/shared/ui/{deprecated => redesigned}/Code/Code.tsx (59%) rename src/shared/ui/{deprecated => redesigned}/Code/index.ts (100%) diff --git a/json-server/db.json b/json-server/db.json index 376d67d..7b1bb01 100644 --- a/json-server/db.json +++ b/json-server/db.json @@ -1,863 +1,913 @@ { - "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" + "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, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега