From 178f501013485afab8d5b4cc2be4f39a13ffbbd4 Mon Sep 17 00:00:00 2001 From: artem <89ufisum@gmail.com> Date: Tue, 26 May 2026 19:30:58 +0300 Subject: [PATCH 1/5] YH-2005: add mock for create feature flag --- src/app/msw/handlers.ts | 2 ++ src/entities/auth/index.ts | 2 +- .../auth/model/constants/authConstants.ts | 11 ++++++ src/entities/featureFlag/index.ts | 1 + .../api/__mocks__/createFeatureFlagMock.ts | 34 +++++++++++++++++++ .../createFeatureFlag/api/__mocks__/index.ts | 3 ++ .../featureFlag/createFeatureFlag/index.ts | 2 ++ 7 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts create mode 100644 src/features/featureFlag/createFeatureFlag/api/__mocks__/index.ts diff --git a/src/app/msw/handlers.ts b/src/app/msw/handlers.ts index 1ac915c9e..db57c24af 100644 --- a/src/app/msw/handlers.ts +++ b/src/app/msw/handlers.ts @@ -23,6 +23,7 @@ import { usersRatingHandlers } from '@/entities/user'; import { createCollectionHandlers } from '@/features/collections/createCollection'; import { createCompanyHandlers } from '@/features/company/createCompany'; +import { createFeatureFlagHandlers } from '@/features/featureFlag/createFeatureFlag'; import { questionCreateHandlers } from '@/features/question/createQuestion'; import { questionDeleteHandlers } from '@/features/question/deleteQuestion'; import { questionEditHandlers } from '@/features/question/editQuestion'; @@ -74,6 +75,7 @@ export const handlers = [ ...createCollectionHandlers, ...topicEditHandlers, ...createCompanyHandlers, + ...createFeatureFlagHandlers, ...programmingLanguageHandlers, ...referralLinksHandlers, ...referralLinkDeleteHandlers, diff --git a/src/entities/auth/index.ts b/src/entities/auth/index.ts index 129b9777f..936386b2e 100644 --- a/src/entities/auth/index.ts +++ b/src/entities/auth/index.ts @@ -12,7 +12,7 @@ export type { TelegramLoginResponse, TelegramLoginError, } from './model/types/auth'; -export { listAdminRoles } from './model/constants/authConstants'; +export { listAdminRoles, ROLE_ID_TO_NAME } from './model/constants/authConstants'; export { authApi } from './api/authApi'; export { useLoginMutation, diff --git a/src/entities/auth/model/constants/authConstants.ts b/src/entities/auth/model/constants/authConstants.ts index a41626909..7deb606bd 100644 --- a/src/entities/auth/model/constants/authConstants.ts +++ b/src/entities/auth/model/constants/authConstants.ts @@ -10,3 +10,14 @@ export const authApiUrls = { }; export const listAdminRoles: RoleName[] = ['author', 'admin']; + +export const ROLE_ID_TO_NAME: Record = { + 1: 'guest', + 2: 'candidate', + 3: 'member', + 4: 'admin', + 5: 'HR', + 6: 'candidate-free', + 7: 'candidate-premium', + 8: 'author', +}; diff --git a/src/entities/featureFlag/index.ts b/src/entities/featureFlag/index.ts index 8b8ded062..de98843cf 100644 --- a/src/entities/featureFlag/index.ts +++ b/src/entities/featureFlag/index.ts @@ -14,3 +14,4 @@ export { useGetFeatureFlagsListQuery, useGetFeatureFlagByIdQuery } from './api/f export { featureFlagHandlers } from './api/__mocks__'; export { FeatureFlagForm } from './ui/FeatureFlagForm/FeatureFlagForm'; export { clientTypes } from './model/constants/featureFlags'; +export { featureFlagsMock } from './api/__mocks__/data/featureFlagsMock'; diff --git a/src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts b/src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts new file mode 100644 index 000000000..110938551 --- /dev/null +++ b/src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts @@ -0,0 +1,34 @@ +import { http, HttpResponse } from 'msw'; + +import { ROLE_ID_TO_NAME } from '@/entities/auth'; +import { featureFlagsMock } from '@/entities/featureFlag'; + +import { createFeatureFlagApiUrls } from '../../model/constants/createFeatureFlagConstants'; +import { + CreateFeatureFlagBodyRequest, + CreateFeatureFlagResponse, +} from '../../model/types/featureFlagCreateTypes'; + +export const createFeatureFlagMock = http.post< + Record, + CreateFeatureFlagBodyRequest, + CreateFeatureFlagResponse +>(createFeatureFlagApiUrls.createFeatureFlag, async ({ request }) => { + const body = await request.json(); + + const newFlag = { + id: crypto.randomUUID(), + flag: body?.flag, + description: body?.description, + enabled: body?.enabled ?? false, + roles: body.roleIds?.map((id) => ROLE_ID_TO_NAME[id]), + clientType: body.clientType, + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + }; + + featureFlagsMock.data.push(newFlag); + featureFlagsMock.total += 1; + + return HttpResponse.json(newFlag); +}); diff --git a/src/features/featureFlag/createFeatureFlag/api/__mocks__/index.ts b/src/features/featureFlag/createFeatureFlag/api/__mocks__/index.ts new file mode 100644 index 000000000..b088952bd --- /dev/null +++ b/src/features/featureFlag/createFeatureFlag/api/__mocks__/index.ts @@ -0,0 +1,3 @@ +import { createFeatureFlagMock } from './createFeatureFlagMock'; + +export const createFeatureFlagHandlers = [createFeatureFlagMock]; diff --git a/src/features/featureFlag/createFeatureFlag/index.ts b/src/features/featureFlag/createFeatureFlag/index.ts index c49e34d11..4c72ceb9a 100644 --- a/src/features/featureFlag/createFeatureFlag/index.ts +++ b/src/features/featureFlag/createFeatureFlag/index.ts @@ -1 +1,3 @@ +export { createFeatureFlagHandlers } from './api/__mocks__'; + export { FeatureFlagCreateForm } from './ui/FeatureFlagCreateForm/FeatureFlagCreateForm'; From 09b7324f265e9d343ec3c69e04130f7e66e96a7b Mon Sep 17 00:00:00 2001 From: artem <89ufisum@gmail.com> Date: Tue, 2 Jun 2026 13:35:14 +0300 Subject: [PATCH 2/5] YH-2005: fix: resolve review comments --- src/entities/auth/index.ts | 2 +- .../auth/model/constants/authConstants.ts | 11 --------- src/entities/user/__mocks__/index.ts | 2 ++ src/entities/user/index.ts | 2 +- .../api/__mocks__/createFeatureFlagMock.ts | 23 +++++++++++++------ .../constants/createFeatureFlagConstants.ts | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/entities/auth/index.ts b/src/entities/auth/index.ts index 936386b2e..129b9777f 100644 --- a/src/entities/auth/index.ts +++ b/src/entities/auth/index.ts @@ -12,7 +12,7 @@ export type { TelegramLoginResponse, TelegramLoginError, } from './model/types/auth'; -export { listAdminRoles, ROLE_ID_TO_NAME } from './model/constants/authConstants'; +export { listAdminRoles } from './model/constants/authConstants'; export { authApi } from './api/authApi'; export { useLoginMutation, diff --git a/src/entities/auth/model/constants/authConstants.ts b/src/entities/auth/model/constants/authConstants.ts index 7deb606bd..a41626909 100644 --- a/src/entities/auth/model/constants/authConstants.ts +++ b/src/entities/auth/model/constants/authConstants.ts @@ -10,14 +10,3 @@ export const authApiUrls = { }; export const listAdminRoles: RoleName[] = ['author', 'admin']; - -export const ROLE_ID_TO_NAME: Record = { - 1: 'guest', - 2: 'candidate', - 3: 'member', - 4: 'admin', - 5: 'HR', - 6: 'candidate-free', - 7: 'candidate-premium', - 8: 'author', -}; diff --git a/src/entities/user/__mocks__/index.ts b/src/entities/user/__mocks__/index.ts index ab9bbca65..3324b22ec 100644 --- a/src/entities/user/__mocks__/index.ts +++ b/src/entities/user/__mocks__/index.ts @@ -9,3 +9,5 @@ export const usersRatingHandlers = [ userProfilePositionMock, usersRatingStatsMock, ]; + +export { userRolesMock } from './data/userRolesMock'; diff --git a/src/entities/user/index.ts b/src/entities/user/index.ts index 25d1ddd32..c99f7cae2 100644 --- a/src/entities/user/index.ts +++ b/src/entities/user/index.ts @@ -34,6 +34,6 @@ export type { GetUsersRatingResponse, GetUsersRatingStatsResponse, } from './model/types/usersRating'; -export { usersRatingHandlers } from './__mocks__'; +export { usersRatingHandlers, userRolesMock } from './__mocks__'; export { UserRolesListField } from './ui/UserRolesListField/UserRolesListField'; export { UserRolesListFieldSkeleton } from './ui/UserRolesListField/UserRolesListField.skeleton'; diff --git a/src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts b/src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts index 110938551..a1260557c 100644 --- a/src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts +++ b/src/features/featureFlag/createFeatureFlag/api/__mocks__/createFeatureFlagMock.ts @@ -1,7 +1,8 @@ import { http, HttpResponse } from 'msw'; -import { ROLE_ID_TO_NAME } from '@/entities/auth'; +import { RoleName } from '@/entities/auth'; import { featureFlagsMock } from '@/entities/featureFlag'; +import { userRolesMock } from '@/entities/user'; import { createFeatureFlagApiUrls } from '../../model/constants/createFeatureFlagConstants'; import { @@ -16,12 +17,20 @@ export const createFeatureFlagMock = http.post< >(createFeatureFlagApiUrls.createFeatureFlag, async ({ request }) => { const body = await request.json(); - const newFlag = { + const roleIdToName = userRolesMock.reduce( + (acc, role) => { + acc[role.id] = role.name; + return acc; + }, + {} as Record, + ); + + const newFlag: CreateFeatureFlagResponse = { id: crypto.randomUUID(), - flag: body?.flag, - description: body?.description, - enabled: body?.enabled ?? false, - roles: body.roleIds?.map((id) => ROLE_ID_TO_NAME[id]), + flag: body.flag, + description: body.description, + enabled: body.enabled ?? false, + roles: body.roleIds.map((id) => roleIdToName[id]) as RoleName[], clientType: body.clientType, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), @@ -30,5 +39,5 @@ export const createFeatureFlagMock = http.post< featureFlagsMock.data.push(newFlag); featureFlagsMock.total += 1; - return HttpResponse.json(newFlag); + return HttpResponse.json(newFlag, { status: 201 }); }); diff --git a/src/features/featureFlag/createFeatureFlag/model/constants/createFeatureFlagConstants.ts b/src/features/featureFlag/createFeatureFlag/model/constants/createFeatureFlagConstants.ts index dadeb81a7..8dfb1ddd4 100644 --- a/src/features/featureFlag/createFeatureFlag/model/constants/createFeatureFlagConstants.ts +++ b/src/features/featureFlag/createFeatureFlag/model/constants/createFeatureFlagConstants.ts @@ -1,3 +1,3 @@ export const createFeatureFlagApiUrls = { - createFeatureFlag: `/feature-flags`, + createFeatureFlag: `feature-flags`, }; From d65fe84cc2ec5b9f3b1b0ee3d275905aad16292f Mon Sep 17 00:00:00 2001 From: artem <89ufisum@gmail.com> Date: Thu, 4 Jun 2026 19:17:17 +0300 Subject: [PATCH 3/5] YH-2059: created skeleton for ReferralLinkDetailPage --- src/entities/referralLink/index.ts | 1 + .../ReferralLinkCard.skeleton.tsx | 16 ++++++++++ .../ReferralLinkDetailPage.tsx | 2 ++ ...ReferralLinkDetailPageContent.skeleton.tsx | 22 +++++++++++++ src/shared/ui/Skeleton/Skeleton.module.css | 1 + .../ReferralLinkAdditionalInfo/index.ts | 1 + .../ReferralLinkAdditionalInfo.skeleton.tsx | 31 +++++++++++++++++++ 7 files changed, 74 insertions(+) create mode 100644 src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx create mode 100644 src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx create mode 100644 src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx diff --git a/src/entities/referralLink/index.ts b/src/entities/referralLink/index.ts index 43c0c1ce1..2cbe48af0 100644 --- a/src/entities/referralLink/index.ts +++ b/src/entities/referralLink/index.ts @@ -20,3 +20,4 @@ export { ReferralLinkForm } from './ui/ReferralLinkForm/ReferralLinkForm'; export { referralLinksHandlers } from './api/__mocks__'; export { referralLinksMock } from './api/__mocks__/data'; +export { ReferralLinkCardSkeleton } from './ui/ReferralLinkCard/ReferralLinkCard.skeleton'; diff --git a/src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx b/src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx new file mode 100644 index 000000000..c9109d38d --- /dev/null +++ b/src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx @@ -0,0 +1,16 @@ +import { Card } from '@/shared/ui/Card'; +import { Flex } from '@/shared/ui/Flex'; +import { Skeleton } from '@/shared/ui/Skeleton'; + +import styles from './ReferralLinkCard.module.css'; + +export const ReferralLinkCardSkeleton = () => { + return ( + + + + + + + ); +}; diff --git a/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPage.tsx b/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPage.tsx index ded98a33e..a53507bc9 100644 --- a/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPage.tsx +++ b/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPage.tsx @@ -5,6 +5,7 @@ import { useGetReferralLinkByIdQuery } from '@/entities/referralLink'; import { PageWrapper, PageWrapperStubs } from '@/widgets/PageWrapper'; import { ReferralLinkDetailPageContent } from './ReferralLinkDetailPageContent'; +import { ReferralLinkDetailPageContentSkeleton } from './ReferralLinkDetailPageContent.skeleton'; const ReferralLinkDetailPage = () => { const { referralLinkId = '' } = useParams<{ referralLinkId: string }>(); @@ -28,6 +29,7 @@ const ReferralLinkDetailPage = () => { return ( } hasError={isError} hasData={hasData} roles={['admin']} diff --git a/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx b/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx new file mode 100644 index 000000000..d0d797776 --- /dev/null +++ b/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx @@ -0,0 +1,22 @@ +import { BackHeaderSkeleton } from '@/shared/ui/BackHeader'; +import { Flex } from '@/shared/ui/Flex'; +import { Skeleton } from '@/shared/ui/Skeleton'; + +import { ReferralLinkCardSkeleton } from '@/entities/referralLink'; + +import { ReferralLinkAdditionalInfoSkeleton } from '@/widgets/referralLink/ReferralLinkAdditionalInfo'; + +export const ReferralLinkDetailPageContentSkeleton = () => { + return ( + <> + + + + + + + + + + ); +}; diff --git a/src/shared/ui/Skeleton/Skeleton.module.css b/src/shared/ui/Skeleton/Skeleton.module.css index ede7d4cf8..195e7283e 100644 --- a/src/shared/ui/Skeleton/Skeleton.module.css +++ b/src/shared/ui/Skeleton/Skeleton.module.css @@ -1,4 +1,5 @@ .skeleton.default { + border-radius: 8px; background: linear-gradient(-90deg, var(--background-skeleton) 0%, var(--text-color-more-lightest) 50%, var(--background-skeleton) 100%); background-size: 400% 400%; animation: skeleton-loading 1.5s ease-in-out infinite; diff --git a/src/widgets/referralLink/ReferralLinkAdditionalInfo/index.ts b/src/widgets/referralLink/ReferralLinkAdditionalInfo/index.ts index 931b8f4f5..eff4d60cf 100644 --- a/src/widgets/referralLink/ReferralLinkAdditionalInfo/index.ts +++ b/src/widgets/referralLink/ReferralLinkAdditionalInfo/index.ts @@ -1 +1,2 @@ export { ReferralLinkAdditionalInfo } from './ui/ReferralLinkAdditionalInfo'; +export { ReferralLinkAdditionalInfoSkeleton } from './ui/ReferralLinkAdditionalInfo.skeleton'; diff --git a/src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx b/src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx new file mode 100644 index 000000000..841aab801 --- /dev/null +++ b/src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx @@ -0,0 +1,31 @@ +import { Card } from '@/shared/ui/Card'; +import { Flex } from '@/shared/ui/Flex'; +import { Skeleton } from '@/shared/ui/Skeleton'; + +import styles from './ReferralLinkAdditionalInfo.module.css'; + +export const ReferralLinkAdditionalInfoSkeleton = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + ); +}; From 074658bda60dcca0834ba0d61dae4183a6b10c57 Mon Sep 17 00:00:00 2001 From: artem <89ufisum@gmail.com> Date: Fri, 5 Jun 2026 17:26:34 +0300 Subject: [PATCH 4/5] YH-2059: revert changes in Skeleton.module.css --- src/shared/ui/Skeleton/Skeleton.module.css | 1 - 1 file changed, 1 deletion(-) diff --git a/src/shared/ui/Skeleton/Skeleton.module.css b/src/shared/ui/Skeleton/Skeleton.module.css index 195e7283e..ede7d4cf8 100644 --- a/src/shared/ui/Skeleton/Skeleton.module.css +++ b/src/shared/ui/Skeleton/Skeleton.module.css @@ -1,5 +1,4 @@ .skeleton.default { - border-radius: 8px; background: linear-gradient(-90deg, var(--background-skeleton) 0%, var(--text-color-more-lightest) 50%, var(--background-skeleton) 100%); background-size: 400% 400%; animation: skeleton-loading 1.5s ease-in-out infinite; From 7d104a80d661df0c0ea673272cde2b29e0f72406 Mon Sep 17 00:00:00 2001 From: artem <89ufisum@gmail.com> Date: Tue, 9 Jun 2026 10:16:26 +0300 Subject: [PATCH 5/5] YH-2059: fixed review comments --- src/entities/referralLink/index.ts | 6 +++- .../ReferralLinkCard.skeleton.tsx | 14 ++++---- .../ReferralLinkCount.skeleton.tsx | 12 +++++++ .../ReferralLinkDate.skeleton.tsx | 12 +++++++ .../ReferralLinkOwner.skeleton.tsx | 11 ++++++ .../ReferralLinkSum.skeleton.tsx | 12 +++++++ .../referralLinks/deleteReferralLink/index.ts | 1 + .../DeleteReferralLinkButton.skeleton.tsx | 5 +++ ...ReferralLinkDetailPageContent.skeleton.tsx | 8 +++-- .../ReferralLinkAdditionalInfo.skeleton.tsx | 36 ++++++++----------- 10 files changed, 85 insertions(+), 32 deletions(-) create mode 100644 src/entities/referralLink/ui/ReferralLinkCount/ReferralLinkCount.skeleton.tsx create mode 100644 src/entities/referralLink/ui/ReferralLinkDate/ReferralLinkDate.skeleton.tsx create mode 100644 src/entities/referralLink/ui/ReferralLinkOwner/ReferralLinkOwner.skeleton.tsx create mode 100644 src/entities/referralLink/ui/ReferralLinkSum/ReferralLinkSum.skeleton.tsx create mode 100644 src/features/referralLinks/deleteReferralLink/ui/DeleteReferralLinkButton/DeleteReferralLinkButton.skeleton.tsx diff --git a/src/entities/referralLink/index.ts b/src/entities/referralLink/index.ts index 2cbe48af0..f2bdee8e4 100644 --- a/src/entities/referralLink/index.ts +++ b/src/entities/referralLink/index.ts @@ -12,12 +12,16 @@ export type { export type { ReferralLinksFilterParams, ReferralLinksFilterOrderBy } from './model/types/filters'; export { ReferralLinkCard } from './ui/ReferralLinkCard/ReferralLinkCard'; +export { ReferralLinkCardSkeleton } from './ui/ReferralLinkCard/ReferralLinkCard.skeleton'; export { ReferralLinkSum } from './ui/ReferralLinkSum/ReferralLinkSum'; +export { ReferralLinkSumSkeleton } from './ui/ReferralLinkSum/ReferralLinkSum.skeleton'; export { ReferralLinkCount } from './ui/ReferralLinkCount/ReferralLinkCount'; +export { ReferralLinkCountSkeleton } from './ui/ReferralLinkCount/ReferralLinkCount.skeleton'; export { ReferralLinkDate } from './ui/ReferralLinkDate/ReferralLinkDate'; +export { ReferralLinkDateSkeleton } from './ui/ReferralLinkDate/ReferralLinkDate.skeleton'; export { ReferralLinkOwner } from './ui/ReferralLinkOwner/ReferralLinkOwner'; +export { ReferralLinkOwnerSkeleton } from './ui/ReferralLinkOwner/ReferralLinkOwner.skeleton'; export { ReferralLinkForm } from './ui/ReferralLinkForm/ReferralLinkForm'; export { referralLinksHandlers } from './api/__mocks__'; export { referralLinksMock } from './api/__mocks__/data'; -export { ReferralLinkCardSkeleton } from './ui/ReferralLinkCard/ReferralLinkCard.skeleton'; diff --git a/src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx b/src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx index c9109d38d..d7f3fea18 100644 --- a/src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx +++ b/src/entities/referralLink/ui/ReferralLinkCard/ReferralLinkCard.skeleton.tsx @@ -1,16 +1,16 @@ -import { Card } from '@/shared/ui/Card'; +import { CardSkeleton } from '@/shared/ui/Card'; import { Flex } from '@/shared/ui/Flex'; -import { Skeleton } from '@/shared/ui/Skeleton'; +import { TextSkeleton } from '@/shared/ui/Text'; import styles from './ReferralLinkCard.module.css'; export const ReferralLinkCardSkeleton = () => { return ( - - - - + + + + - + ); }; diff --git a/src/entities/referralLink/ui/ReferralLinkCount/ReferralLinkCount.skeleton.tsx b/src/entities/referralLink/ui/ReferralLinkCount/ReferralLinkCount.skeleton.tsx new file mode 100644 index 000000000..93d301be4 --- /dev/null +++ b/src/entities/referralLink/ui/ReferralLinkCount/ReferralLinkCount.skeleton.tsx @@ -0,0 +1,12 @@ +import { ChipSkeleton } from '@/shared/ui/Chip'; +import { Flex } from '@/shared/ui/Flex'; +import { TextSkeleton } from '@/shared/ui/Text'; + +export const ReferralLinkCountSkeleton = () => { + return ( + + + + + ); +}; diff --git a/src/entities/referralLink/ui/ReferralLinkDate/ReferralLinkDate.skeleton.tsx b/src/entities/referralLink/ui/ReferralLinkDate/ReferralLinkDate.skeleton.tsx new file mode 100644 index 000000000..7be1f2341 --- /dev/null +++ b/src/entities/referralLink/ui/ReferralLinkDate/ReferralLinkDate.skeleton.tsx @@ -0,0 +1,12 @@ +import { ChipSkeleton } from '@/shared/ui/Chip'; +import { Flex } from '@/shared/ui/Flex'; +import { TextSkeleton } from '@/shared/ui/Text'; + +export const ReferralLinkDateSkeleton = () => { + return ( + + + + + ); +}; diff --git a/src/entities/referralLink/ui/ReferralLinkOwner/ReferralLinkOwner.skeleton.tsx b/src/entities/referralLink/ui/ReferralLinkOwner/ReferralLinkOwner.skeleton.tsx new file mode 100644 index 000000000..e3390c73a --- /dev/null +++ b/src/entities/referralLink/ui/ReferralLinkOwner/ReferralLinkOwner.skeleton.tsx @@ -0,0 +1,11 @@ +import { Flex } from '@/shared/ui/Flex'; +import { TextSkeleton } from '@/shared/ui/Text'; + +export const ReferralLinkOwnerSkeleton = () => { + return ( + + + + + ); +}; diff --git a/src/entities/referralLink/ui/ReferralLinkSum/ReferralLinkSum.skeleton.tsx b/src/entities/referralLink/ui/ReferralLinkSum/ReferralLinkSum.skeleton.tsx new file mode 100644 index 000000000..d8ceabf83 --- /dev/null +++ b/src/entities/referralLink/ui/ReferralLinkSum/ReferralLinkSum.skeleton.tsx @@ -0,0 +1,12 @@ +import { ChipSkeleton } from '@/shared/ui/Chip'; +import { Flex } from '@/shared/ui/Flex'; +import { TextSkeleton } from '@/shared/ui/Text'; + +export const ReferralLinkSumSkeleton = () => { + return ( + + + + + ); +}; diff --git a/src/features/referralLinks/deleteReferralLink/index.ts b/src/features/referralLinks/deleteReferralLink/index.ts index 6fc0be810..5d3f4a65c 100644 --- a/src/features/referralLinks/deleteReferralLink/index.ts +++ b/src/features/referralLinks/deleteReferralLink/index.ts @@ -1,3 +1,4 @@ export { DeleteReferralLinkButton } from './ui/DeleteReferralLinkButton/DeleteReferralLinkButton'; export { DeleteReferralLinkModal } from './ui/DeleteReferralLinkModal/DeleteReferralLinkModal'; +export { DeleteReferralLinkButtonSkeleton } from './ui/DeleteReferralLinkButton/DeleteReferralLinkButton.skeleton'; export { referralLinkDeleteHandlers } from './api/__mocks__/index'; diff --git a/src/features/referralLinks/deleteReferralLink/ui/DeleteReferralLinkButton/DeleteReferralLinkButton.skeleton.tsx b/src/features/referralLinks/deleteReferralLink/ui/DeleteReferralLinkButton/DeleteReferralLinkButton.skeleton.tsx new file mode 100644 index 000000000..3bba32b43 --- /dev/null +++ b/src/features/referralLinks/deleteReferralLink/ui/DeleteReferralLinkButton/DeleteReferralLinkButton.skeleton.tsx @@ -0,0 +1,5 @@ +import { Skeleton } from '@/shared/ui/Skeleton'; + +export const DeleteReferralLinkButtonSkeleton = () => { + return ; +}; diff --git a/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx b/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx index d0d797776..4a1c6e5d8 100644 --- a/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx +++ b/src/pages/admin/referralLink/ReferalLinkDetail/ui/ReferralLinkDetailPage/ReferralLinkDetailPageContent.skeleton.tsx @@ -1,17 +1,19 @@ import { BackHeaderSkeleton } from '@/shared/ui/BackHeader'; +import { ButtonSkeleton } from '@/shared/ui/Button'; import { Flex } from '@/shared/ui/Flex'; -import { Skeleton } from '@/shared/ui/Skeleton'; import { ReferralLinkCardSkeleton } from '@/entities/referralLink'; +import { DeleteReferralLinkButtonSkeleton } from '@/features/referralLinks/deleteReferralLink'; + import { ReferralLinkAdditionalInfoSkeleton } from '@/widgets/referralLink/ReferralLinkAdditionalInfo'; export const ReferralLinkDetailPageContentSkeleton = () => { return ( <> - - + + diff --git a/src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx b/src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx index 841aab801..30575bb76 100644 --- a/src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx +++ b/src/widgets/referralLink/ReferralLinkAdditionalInfo/ui/ReferralLinkAdditionalInfo.skeleton.tsx @@ -1,31 +1,25 @@ -import { Card } from '@/shared/ui/Card'; +import { CardSkeleton } from '@/shared/ui/Card'; import { Flex } from '@/shared/ui/Flex'; -import { Skeleton } from '@/shared/ui/Skeleton'; + +import { + ReferralLinkCountSkeleton, + ReferralLinkDateSkeleton, + ReferralLinkOwnerSkeleton, + ReferralLinkSumSkeleton, +} from '@/entities/referralLink'; import styles from './ReferralLinkAdditionalInfo.module.css'; export const ReferralLinkAdditionalInfoSkeleton = () => { return ( - + - - - - - - - - - - - - - - - - - + + + + + - + ); };