diff --git a/src/components/home/ProjectsSection.tsx b/src/components/home/ProjectsSection.tsx index 768be1f5..1ad6ff7a 100644 --- a/src/components/home/ProjectsSection.tsx +++ b/src/components/home/ProjectsSection.tsx @@ -28,6 +28,7 @@ export default function ProjectsSection({ onChangeViewMode, }: Props) { const hasProjects = projects.length > 0; + const [deleteTarget, setDeleteTarget] = useState(null); if (!isLoading && !hasProjects) return null; diff --git a/src/components/projects/ProjectCard.tsx b/src/components/projects/ProjectCard.tsx index ea094e35..7048e040 100644 --- a/src/components/projects/ProjectCard.tsx +++ b/src/components/projects/ProjectCard.tsx @@ -46,19 +46,26 @@ export default function ProjectCard({ item, className }: ProjectCardProps) { ariaLabel="더보기" className="border border-gray-200 w-32 overflow-hidden" > -
- - -
+ {({ close }) => ( +
+ + +
+ )} +

{updatedAt}

@@ -68,18 +75,18 @@ export default function ProjectCard({ item, className }: ProjectCardProps) {
{/* 반응 모음 */} -
-
+
+
- {commentCount} + {commentCount}
-
+
- {reactionCount} + {reactionCount}
-
+
- {viewCount} + {viewCount}
diff --git a/src/hooks/useProjectList.ts b/src/hooks/useProjectList.ts index e442512d..3b5e3270 100644 --- a/src/hooks/useProjectList.ts +++ b/src/hooks/useProjectList.ts @@ -1,16 +1,16 @@ import { useMemo } from 'react'; import type { SortMode } from '@/types/home'; -import type { CardItems } from '@/types/project'; +import type { ProjectItem } from '@/types/project'; type Options = { query?: string; sort?: SortMode; // 필터 조건이 확정되기 전까지는 predicate 형태로 열어두면 // UI/요구사항이 바뀌어도 훅은 그대로 재사용 가능... - filterFn?: (project: CardItems) => boolean; + filterFn?: (project: ProjectItem) => boolean; }; -export function useProjectList(projects: CardItems[], options?: Options) { +export function useProjectList(projects: ProjectItem[], options?: Options) { return useMemo(() => { const query = options?.query ?? ''; const sort = options?.sort ?? 'recent';