Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#305-skeletons #329

Merged
merged 2 commits into from
Apr 22, 2024
Merged

#305-skeletons #329

merged 2 commits into from
Apr 22, 2024

Conversation

MargaritaShumilina
Copy link
Collaborator

  • Добавлена библиотека для скелетонов (react-loading-skeleton);
  • Внедрены скелетоны для страницы категории (фильтры, боковое меню, название, карточка товара). Для карточки товара и фильтров сделаны отдельные компоненты PageControlsSkeletons и ProductSkeleton, для остальных внедрила базово с дополнительным классом, поскольку в их основе просто строка.
  • Добавлены сторибуки для PageControlsSkeletons и ProductSkeleton;
    Приложу скрин, как выглядит прогрузка со скелетонами.
    photo_2024-04-20_17-00-04

@MargaritaShumilina MargaritaShumilina self-assigned this Apr 20, 2024
@MargaritaShumilina MargaritaShumilina linked an issue Apr 20, 2024 that may be closed by this pull request
Copy link
Collaborator

@aimenin aimenin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отличная работа, но есть парочка замечаний

''
)}
</div>
{isLoading ? (
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

давай сделаем как с остальными скелетонами
PageDescription - не нужно знать о загрузке и тд, по сути мы его можем переиспользовать в других компонентах, где даже может не быть обращение к серверу.
Тоесть, здесь тоже делаем компонент PageDescriptionSkeleton и используем его в зависимости от флага загрузки

@@ -88,7 +92,16 @@ export const ProductsPage = () => {
<CategoryList />
<div className={styles['content-main']}>
<section className={styles['content-products']}>
{categoriesProducts.results.length > 0 ? (
{isLoading ? (
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

вот так же делаем с PageDescriptionSkeleton

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

это храним не в shared, а в компоненте PafeControlsSkeleton, например в папке ui. Потому что skeleton относится именно к своему компоненту

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

переносим к своему компоненту

{isLoading
? Array(15)
.fill(0)
.map(sk => <Skeleton className={styles['sk-category-list__item']} inline={true} key={sk} />)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

так не делаем, здесь должен быть компонент CategoryItemSkeleton, его уже здесь рендерим


return (
<div className={styles['category-list']}>
<Heading type={HeadingType.NORMAL} className={styles['category-list__title']}>
Категории
</Heading>
<ul className={styles['category-list__items']}>
{categoryBranches.branches?.length > 0
{isLoading
? Array(15)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

15 - в константы

@MargaritaShumilina
Copy link
Collaborator Author

Внесла отмеченные тобой корректировки:

  • Перенесла компоненты скелетонов к своим компонентам (я надеюсь, что тут я тебя правильно поняла, что скелетоны нужно перенести во внутрь компонентов, чьими скелетонами они являются);

  • Сделала 2 новых скелетона - PageDescriptionSkeleton и CategoryItemSkeleton (ну и сторибуки тоже к ним, соответственно);

  • Вынесла количество строк категорий и количество продуктовых карточек для рендеринга в константы;

  • Логику загрузки перенесла из PageDescription в ProductsPage

  • дополнительно немного подкорректировала хлебные крошки, чтобы в качестве ссылки передавался slug, а не heading (подцеплю задачу по хлебным крошкам к этому ПР)

@MargaritaShumilina MargaritaShumilina linked an issue Apr 22, 2024 that may be closed by this pull request
Copy link
Collaborator

@aimenin aimenin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Все отлично, кроме того, что почему то используются компоненты из папки components - их необходимо перенести в соответствии с fsd

@MargaritaShumilina MargaritaShumilina merged commit 3998766 into master Apr 22, 2024
1 check passed
@MargaritaShumilina MargaritaShumilina deleted the enhancement-305-skeleton branch April 22, 2024 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Breadcrumbs каталог Добавить skeleton в проект
3 participants