diff --git a/.gitignore b/.gitignore index 2bbd80d8..57f2ee97 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,7 @@ coverage *storybook.log storybook-static -.serena \ No newline at end of file +.serena + +CLAUDE.md +.claude diff --git a/src/assets/default-profile.svg b/src/assets/default-profile.svg new file mode 100644 index 00000000..eff724aa --- /dev/null +++ b/src/assets/default-profile.svg @@ -0,0 +1,5 @@ + diff --git a/src/features/manager/home/lib/worker.ts b/src/features/manager/home/lib/worker.ts index 471558ea..855bb9cf 100644 --- a/src/features/manager/home/lib/worker.ts +++ b/src/features/manager/home/lib/worker.ts @@ -28,5 +28,6 @@ export function adaptWorkerDto(dto: WorkerDto): ManagerWorkerItem { position: dto.position.description || dto.position.type, colorCode: dto.colorCode, nextWorkDate: formatNextShiftDate(dto.nextShiftDateTime), + profileImageUrl: dto.user.profileImageUrl ?? undefined, } } diff --git a/src/features/manager/home/types/substitute.ts b/src/features/manager/home/types/substitute.ts index ff302eb6..09455e62 100644 --- a/src/features/manager/home/types/substitute.ts +++ b/src/features/manager/home/types/substitute.ts @@ -15,6 +15,7 @@ export interface SubstituteRequesterDto { workerId: number workerName: string workerRole?: string + profileImageUrl?: string | null } export interface SubstituteStatusDto { @@ -87,6 +88,7 @@ export function adaptSubstituteRequestDto( name: dto.requester.workerName, role: dto.schedule.position, workerRole: mapApiWorkerRole(dto.requester.workerRole), + imageUrl: dto.requester.profileImageUrl ?? null, dateRange: formatDateRange( dto.schedule.startDateTime, dto.schedule.endDateTime diff --git a/src/features/manager/home/types/worker.ts b/src/features/manager/home/types/worker.ts index 8565599d..259184c6 100644 --- a/src/features/manager/home/types/worker.ts +++ b/src/features/manager/home/types/worker.ts @@ -7,6 +7,7 @@ export interface WorkerUserDto { name: string contact: string gender: string + profileImageUrl?: string | null } export interface WorkerStatusDto { diff --git a/src/features/manager/home/ui/StoreWorkerListItem.tsx b/src/features/manager/home/ui/StoreWorkerListItem.tsx index 79a75f5c..d84e5ced 100644 --- a/src/features/manager/home/ui/StoreWorkerListItem.tsx +++ b/src/features/manager/home/ui/StoreWorkerListItem.tsx @@ -2,6 +2,7 @@ import { useState } from 'react' import MoreVerticalIcon from '@/assets/icons/home/more-vertical.svg' import { WorkerRoleBadge } from '@/shared/ui/home/WorkerRoleBadge' import { ActionMenu, type ActionMenuItem } from '@/shared/ui/common/ActionMenu' +import { Avatar } from '@/shared/ui/common/Avatar' import type { StoreWorkerRole } from '@/features/manager/home/types/storeWorkerRole' interface StoreWorkerListItemProps { @@ -28,15 +29,7 @@ export function StoreWorkerListItem({ className={`relative flex h-[60px] items-center justify-between rounded-lg bg-white px-3 py-1 ${className}`} >
{worker.name}
diff --git a/src/features/manager/worker-list/ui/WorkerListItem.tsx b/src/features/manager/worker-list/ui/WorkerListItem.tsx index 3058925c..b47ac118 100644 --- a/src/features/manager/worker-list/ui/WorkerListItem.tsx +++ b/src/features/manager/worker-list/ui/WorkerListItem.tsx @@ -4,6 +4,7 @@ import type { ScheduleColor } from '@/features/manager/worker-schedule/types/sch import { SwipeActionButton } from '@/shared/ui/SwipeActionButton' import { SwipeableRow } from '@/shared/ui/SwipeableRow' import { WorkerRoleBadge } from '@/shared/ui/home/WorkerRoleBadge' +import { Avatar } from '@/shared/ui/common/Avatar' import type { WorkerRole } from '@/shared/types/workerRole' interface WorkerListItemProps { @@ -30,16 +31,8 @@ export function WorkerListItem({ const content = ({worker.name} @@ -84,7 +76,7 @@ export function WorkerSelectSection({ className="flex h-[70px] w-full items-center rounded-2xl bg-white px-3" >
{worker.name} diff --git a/src/pages/my/components/ProfileCard.tsx b/src/pages/my/components/ProfileCard.tsx index ee735f88..8cd28684 100644 --- a/src/pages/my/components/ProfileCard.tsx +++ b/src/pages/my/components/ProfileCard.tsx @@ -1,5 +1,6 @@ import EditIcon from '@/assets/icons/my/edit.svg?react' import CrownIcon from '@/assets/icons/my/crown.svg?react' +import { Avatar } from '@/shared/ui/common/Avatar' interface ProfileCardProps { nickname: string @@ -21,15 +22,7 @@ export function ProfileCard({ return (
{nickname}
{name}