From eaa9b5596c548ec66e203f6b08537e61fb3d3bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=84=9D?= Date: Mon, 18 Nov 2024 16:29:44 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=ED=81=B4=EB=A6=AD=20=ED=95=B8=EB=93=A4?= =?UTF-8?q?=EB=9F=AC=20=EC=B6=94=EA=B0=80=20(#113)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + .../common/ProjectCard/ProjectCard.tsx | 17 +++++++++++++++-- .../ProjectCard/ProjectCardLikeSection.tsx | 15 ++++++++++++--- src/components/common/TextInput/TextInput.tsx | 10 +++++++++- .../ProjectCreateSection.tsx | 18 +++++++++--------- .../AdminProjectsListRow.tsx | 2 +- src/constants/DataTableHeaders.ts | 1 + src/hooks/useFiles/useFiles.ts | 2 +- 8 files changed, 49 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 155565d2..ce808624 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@types/js-cookie": "^3.0.6", "axios": "^1.7.3", "classnames": "^2.5.1", + "dayjs": "^1.11.13", "embla-carousel-react": "^7.1.0", "js-cookie": "^3.0.5", "jwt-decode": "^4.0.0", diff --git a/src/components/common/ProjectCard/ProjectCard.tsx b/src/components/common/ProjectCard/ProjectCard.tsx index 3c44d77f..ffe581c9 100644 --- a/src/components/common/ProjectCard/ProjectCard.tsx +++ b/src/components/common/ProjectCard/ProjectCard.tsx @@ -21,9 +21,17 @@ export interface ProjectCardProps { data: ProjectCardDataType; width?: string; height?: string; + onClickLike: () => void; + onClickBookmark: () => void; } -export function ProjectCard({ data, width, height }: ProjectCardProps) { +export function ProjectCard({ + data, + width, + height, + onClickLike, + onClickBookmark, +}: ProjectCardProps) { const ParticipantsString = data.participants.join(", "); return ( @@ -70,7 +78,12 @@ export function ProjectCard({ data, width, height }: ProjectCardProps) { - + ); } diff --git a/src/components/common/ProjectCard/ProjectCardLikeSection.tsx b/src/components/common/ProjectCard/ProjectCardLikeSection.tsx index 8ad88ed0..6c176a6b 100644 --- a/src/components/common/ProjectCard/ProjectCardLikeSection.tsx +++ b/src/components/common/ProjectCard/ProjectCardLikeSection.tsx @@ -1,3 +1,5 @@ +"use client"; + import { CardSection, Group, UnstyledButton } from "@mantine/core"; import { IconBookmark, IconBookmarkFilled, IconThumbUp } from "@tabler/icons-react"; import classes from "./ProjectCard.module.css"; @@ -5,19 +7,26 @@ import classes from "./ProjectCard.module.css"; export interface ProjectCardLikeSectionProps { likes: number; isMarked: boolean; + onClickLike: () => void; + onClickBookmark: () => void; } -export function ProjectCardLikeSection({ likes, isMarked }: ProjectCardLikeSectionProps) { +export function ProjectCardLikeSection({ + likes, + isMarked, + onClickLike, + onClickBookmark, +}: ProjectCardLikeSectionProps) { return ( - +
{likes}
- + {isMarked ? ( ) : ( diff --git a/src/components/common/TextInput/TextInput.tsx b/src/components/common/TextInput/TextInput.tsx index 80d737d9..27026535 100644 --- a/src/components/common/TextInput/TextInput.tsx +++ b/src/components/common/TextInput/TextInput.tsx @@ -31,7 +31,15 @@ export function TextInput({ }: InputProps & TextInputPropsType) { return ( - + ); } diff --git a/src/components/pages/AdminProjectsEditSection/ProjectCreateSection.tsx b/src/components/pages/AdminProjectsEditSection/ProjectCreateSection.tsx index 1531aa99..3f3c8318 100644 --- a/src/components/pages/AdminProjectsEditSection/ProjectCreateSection.tsx +++ b/src/components/pages/AdminProjectsEditSection/ProjectCreateSection.tsx @@ -11,7 +11,10 @@ import { PrimaryButton } from "@/components/common/Buttons"; import { isNotEmpty, useForm } from "@mantine/form"; import { getYears } from "@/utils/getYears"; import { AwardStatus, ProjectCategory, ProjectType } from "@/types/project"; -import { ProjectsCategoryLookupTable, ProjectsTypeLookupTable } from "@/constants/LookupTables"; +import { + ProjectsCategoryLookupTable, + ProjectsTypeLookupTable, +} from "@/constants/LookupTables/index"; import { useRouter } from "next/navigation"; import { useFiles } from "@/hooks/useFiles/useFiles"; import { CommonAxios } from "@/utils/CommonAxios"; @@ -79,15 +82,12 @@ export function ProjectCreateSection({ projectId }: { projectId?: number }) { const handleSubmit = async (values: ProjectEditFormInputs) => { try { const fileIds = { thumbnailId: values.thumbnailId, posterId: values.posterId }; + // TODO: 파일 업로드 로직 수정 + const uploadedThumbnail = await uploadFiles([{ id: "0", file: thumbnail }]); + fileIds.thumbnailId = Number(uploadedThumbnail[0]); - if (thumbnail?.arrayBuffer.length !== 0) { - const uploadedThumbnail = await uploadFiles([{ id: "0", file: thumbnail }]); - fileIds.thumbnailId = Number(uploadedThumbnail[0]); - } - if (poster?.arrayBuffer.length !== 0) { - const uploadedPoster = await uploadFiles([{ id: "0", file: poster }]); - fileIds.posterId = Number(uploadedPoster[0]); - } + const uploadedPoster = await uploadFiles([{ id: "0", file: poster }]); + fileIds.posterId = Number(uploadedPoster[0]); const professorsArr = professors?.split(",").map((professor) => ({ name: professor, diff --git a/src/components/pages/AdminProjectsListSection/AdminProjectsListRow.tsx b/src/components/pages/AdminProjectsListSection/AdminProjectsListRow.tsx index c14bf77f..9014dfff 100644 --- a/src/components/pages/AdminProjectsListSection/AdminProjectsListRow.tsx +++ b/src/components/pages/AdminProjectsListSection/AdminProjectsListRow.tsx @@ -3,7 +3,7 @@ import { PrimaryButton } from "@/components/common/Buttons"; import { DataTableData } from "@/components/common/DataTable/elements/DataTableData"; import { DataTableRow } from "@/components/common/DataTable/elements/DataTableRow"; -import { ProjectsCategoryLookupTable } from "@/constants/LookupTables"; +import { ProjectsCategoryLookupTable } from "@/constants/LookupTables/index"; import { IProjectContent } from "@/types/project"; import { getFileUrlById } from "@/utils/handleDownloadFile"; import { Checkbox } from "@mantine/core"; diff --git a/src/constants/DataTableHeaders.ts b/src/constants/DataTableHeaders.ts index 8ec81a18..93731809 100644 --- a/src/constants/DataTableHeaders.ts +++ b/src/constants/DataTableHeaders.ts @@ -42,6 +42,7 @@ export const INTERVIEW_TABLE_HEADERS: DataTableHeaderProps[] = [ { label: "소속", widthPercentage: 20, sort: true, selector: "talkerBelonging" }, { label: "이름", widthPercentage: 20, sort: true, selector: "talkerName" }, { label: "작성일", widthPercentage: 10, sort: true, selector: "createdAt" }, +]; export const PROJECT_TABLE_HEADERS: DataTableHeaderProps[] = [ { label: "순번", widthPercentage: 7, sort: true, selector: "id" }, diff --git a/src/hooks/useFiles/useFiles.ts b/src/hooks/useFiles/useFiles.ts index be6d4876..7d554cf8 100644 --- a/src/hooks/useFiles/useFiles.ts +++ b/src/hooks/useFiles/useFiles.ts @@ -46,7 +46,7 @@ export function useFiles() { fileIds.push(id); continue; } - + filesToUpload.append("files", file); } }