From c2e8ab46134dc78f950b2006806be2afad812466 Mon Sep 17 00:00:00 2001 From: HyunJinNo Date: Tue, 17 Sep 2024 15:40:05 +0900 Subject: [PATCH 01/11] =?UTF-8?q?Design:=20=EC=9D=BC=EA=B8=B0=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20=EC=8D=B8=EB=84=A4=EC=9D=BC=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20round=20=EA=B0=92=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/diary/list/DiaryCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/diary/list/DiaryCard.tsx b/src/components/diary/list/DiaryCard.tsx index 0c3afe29..baef46d2 100644 --- a/src/components/diary/list/DiaryCard.tsx +++ b/src/components/diary/list/DiaryCard.tsx @@ -113,7 +113,7 @@ const DiaryCard = ({ }} > diary-image Date: Tue, 17 Sep 2024 15:55:51 +0900 Subject: [PATCH 02/11] =?UTF-8?q?Design:=20=EC=9D=BC=EA=B8=B0=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=A0=9C=EB=AA=A9=20=EB=B6=80=EB=B6=84=EC=97=90=20=EA=B7=B8?= =?UTF-8?q?=EB=9D=BC=EB=8D=B0=EC=9D=B4=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 흰색 배경 위의 제목이 안 보이는 문제 해결 --- src/components/diary/list/DiaryCard.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/diary/list/DiaryCard.tsx b/src/components/diary/list/DiaryCard.tsx index baef46d2..982f8ac6 100644 --- a/src/components/diary/list/DiaryCard.tsx +++ b/src/components/diary/list/DiaryCard.tsx @@ -119,6 +119,7 @@ const DiaryCard = ({ fill={true} style={{ objectFit: "cover" }} /> +

{diaryData.title}

{`${new Date(new Date(diaryData.startDatetime).getTime() + 1000 * 60 * 60 * 24).toLocaleDateString("ko-KR")} ~ ${new Date(new Date(diaryData.endDatetime).getTime() + 1000 * 60 * 60 * 24).toLocaleDateString("ko-KR")}`}

From 36fc4bd8084d1fdb5c8f85443cff9be62c299c66 Mon Sep 17 00:00:00 2001 From: HyunJinNo Date: Tue, 17 Sep 2024 16:35:53 +0900 Subject: [PATCH 03/11] =?UTF-8?q?Refactor:=20=EC=9D=BC=EA=B8=B0=20?= =?UTF-8?q?=ED=95=98=EB=A3=A8=EB=A7=8C=20=EC=84=A0=ED=83=9D=ED=95=A0=20?= =?UTF-8?q?=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DateRangeModal.tsx => DatePickerModal.tsx} | 35 ++-- src/components/diary/write/DiaryEditor.tsx | 169 +++++++++--------- src/components/diary/write/QuillEditor.tsx | 5 - .../diary/write/DatePickerModalContainer.tsx | 56 ++++++ .../diary/write/DateRangeModalContainer.tsx | 80 --------- src/styles/quillEditor.css | 2 +- 6 files changed, 158 insertions(+), 189 deletions(-) rename src/components/diary/write/{DateRangeModal.tsx => DatePickerModal.tsx} (73%) create mode 100644 src/containers/diary/write/DatePickerModalContainer.tsx delete mode 100644 src/containers/diary/write/DateRangeModalContainer.tsx diff --git a/src/components/diary/write/DateRangeModal.tsx b/src/components/diary/write/DatePickerModal.tsx similarity index 73% rename from src/components/diary/write/DateRangeModal.tsx rename to src/components/diary/write/DatePickerModal.tsx index 94352165..4855a765 100644 --- a/src/components/diary/write/DateRangeModal.tsx +++ b/src/components/diary/write/DatePickerModal.tsx @@ -1,27 +1,19 @@ import "react-date-range/dist/styles.css"; // main css file import "react-date-range/dist/theme/default.css"; // theme css file import { MdClose } from "react-icons/md"; -import { DateRange } from "react-date-range"; -import { Dispatch, SetStateAction } from "react"; +import { Calendar } from "react-date-range"; import { ko } from "date-fns/locale"; -import { addDays, min } from "date-fns"; interface Props { - width: number; - state: { startDate: Date; endDate: Date; key: string }[]; - isStartDateSelected: boolean; - setState: Dispatch>; - setIsStartDateSelected: Dispatch>; + date: Date; + setDate: (date: Date) => void; closeModal: () => void; onChangeDateRange: () => void; } -const DateRangeModal = ({ - width, - state, - isStartDateSelected, - setState, - setIsStartDateSelected, +const DatePickerModal = ({ + date, + setDate, closeModal, onChangeDateRange, }: Props) => { @@ -35,7 +27,14 @@ const DateRangeModal = ({ onClick={() => closeModal()} />
- setDate(date)} + maxDate={new Date()} + locale={ko} + color="#00B488" + /> + {/* { setState([item.selection]); @@ -57,9 +56,9 @@ const DateRangeModal = ({ } locale={ko} rangeColors={["#00B488"]} - /> + /> */} - {formContext.formState.errors.address && ( -

- 모든 날짜의 주소를 입력해 주세요. -

- )} -
- )} + +
+

+ 주소* +

+ + {formContext.formState.errors.address && ( +

+ 모든 날짜의 주소를 입력해 주세요. +

+ )} +
- {diaryEditorStore.days > 0 && ( -
- day-text - {Array.from( - { length: diaryEditorStore.days }, - (_, index) => index + 1, - ).map((value) => ( + + {/*
+ day-text + {Array.from( + { length: diaryEditorStore.days }, + (_, index) => index + 1, + ).map((value) => ( + + ))} +
*/} + +
+

+ 하루 기분은 어땠나요? +

+
+ {["최고", "좋아", "무난", "슬퍼", "화나"].map((value, index) => ( ))}
- )} - {diaryEditorStore.days > 0 && ( -
-

- {`하루 기분은 어땠나요? (Day ${diaryEditorStore.currentDay})`} -

-
- {["최고", "좋아", "무난", "슬퍼", "화나"].map((value, index) => ( - - ))} -
- {formContext.formState.errors.moodLevels && ( -

- 모든 날짜의 기분 정보를 입력해 주세요. -

- )} -
- )} - {diaryEditorStore.days > 0 && } + {formContext.formState.errors.moodLevels && ( +

+ 모든 날짜의 기분 정보를 입력해 주세요. +

+ )} +
+ {formContext.formState.errors.address && (

@@ -133,23 +125,6 @@ const DiaryEditor = ({ )}

- - {/*
- day-text - {Array.from( - { length: diaryEditorStore.days }, - (_, index) => index + 1, - ).map((value) => ( - - ))} -
*/} -
@@ -160,18 +135,10 @@ const DiaryEditor = ({ {["최고", "좋아", "무난", "슬퍼", "화나"].map((value, index) => ( {formContext.formState.errors.address && (

- 모든 날짜의 주소를 입력해 주세요. + {formContext.formState.errors.address.message as String}

)}
@@ -155,7 +155,7 @@ const DiaryEditor = ({ {formContext.formState.errors.moodLevels && (

- 모든 날짜의 기분 정보를 입력해 주세요. + {formContext.formState.errors.moodLevels.message as String}

)} diff --git a/src/containers/diary/write/DiaryEditorContainer.tsx b/src/containers/diary/write/DiaryEditorContainer.tsx index dcfb6347..690f4ab9 100644 --- a/src/containers/diary/write/DiaryEditorContainer.tsx +++ b/src/containers/diary/write/DiaryEditorContainer.tsx @@ -75,7 +75,6 @@ const DiaryEditorContainer = () => { if (!methods.formState.isValid) { methods.trigger(); alert("모든 정보를 입력해 주세요."); - console.log(JSON.stringify(methods.formState.errors)); return; } diff --git a/src/lib/zod/schema/DiaryCreateFormSchema.ts b/src/lib/zod/schema/DiaryCreateFormSchema.ts index 32dd2200..4bb1e5a4 100644 --- a/src/lib/zod/schema/DiaryCreateFormSchema.ts +++ b/src/lib/zod/schema/DiaryCreateFormSchema.ts @@ -44,11 +44,11 @@ export const DiaryCreateFormSchema = z.object({ .min(1, { message: "Day1에 최소 1장의 이미지를 등록해 주세요." }), moodLevels: z .number({ - required_error: "기분 정보를 입력해 주세요.", + required_error: "기분을 선택해 주세요.", invalid_type_error: "MoodLevel must be a integer.", }) - .int({ message: "기분 정보를 입력해 주세요." }) - .positive({ message: "기분 정보를 입력해 주세요." }), + .int({ message: "기분을 선택해 주세요." }) + .positive({ message: "기분을 선택해 주세요." }), contents: z.string({ required_error: "내용을 입력해 주세요.", invalid_type_error: "Content must be a string.", diff --git a/src/lib/zod/schema/DiaryUpdateFormSchema.ts b/src/lib/zod/schema/DiaryUpdateFormSchema.ts index 7871c6f8..051438d9 100644 --- a/src/lib/zod/schema/DiaryUpdateFormSchema.ts +++ b/src/lib/zod/schema/DiaryUpdateFormSchema.ts @@ -44,11 +44,11 @@ export const DiaryUpdateFormSchema = z.object({ .min(1, { message: "Day1에 최소 1장의 이미지를 등록해 주세요." }), moodLevels: z .number({ - required_error: "기분 정보를 입력해 주세요.", + required_error: "기분을 선택해 주세요.", invalid_type_error: "MoodLevel must be a integer.", }) - .int({ message: "기분 정보를 입력해 주세요." }) - .positive({ message: "기분 정보를 입력해 주세요." }), + .int({ message: "기분을 선택해 주세요." }) + .positive({ message: "기분을 선택해 주세요." }), contents: z.string({ required_error: "내용을 입력해 주세요.", invalid_type_error: "Content must be a string.", From a011e563d25bf910953cce087ab6267a1680bbb9 Mon Sep 17 00:00:00 2001 From: HyunJinNo Date: Tue, 17 Sep 2024 20:11:06 +0900 Subject: [PATCH 09/11] =?UTF-8?q?Feat:=20=EC=9D=BC=EA=B8=B0=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EB=AA=A8=EC=84=9C=EB=A6=AC=EC=97=90=20rou?= =?UTF-8?q?nd=20=EA=B0=92=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/diary/list/DiaryCard.tsx | 2 +- src/components/diary/write/DiaryEditor.tsx | 2 +- .../diary/detail/DiaryViewerContainer.tsx | 10 +++++++++- src/containers/diary/edit/DiaryEditorContainer.tsx | 6 +++--- src/containers/diary/write/QuillEditorContainer.tsx | 13 ++++++++++++- src/lib/zod/schema/DiaryCreateFormSchema.ts | 8 +++++--- src/lib/zod/schema/DiaryUpdateFormSchema.ts | 7 ++++--- 7 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/components/diary/list/DiaryCard.tsx b/src/components/diary/list/DiaryCard.tsx index 982f8ac6..424621bb 100644 --- a/src/components/diary/list/DiaryCard.tsx +++ b/src/components/diary/list/DiaryCard.tsx @@ -122,7 +122,7 @@ const DiaryCard = ({

{diaryData.title}

-

{`${new Date(new Date(diaryData.startDatetime).getTime() + 1000 * 60 * 60 * 24).toLocaleDateString("ko-KR")} ~ ${new Date(new Date(diaryData.endDatetime).getTime() + 1000 * 60 * 60 * 24).toLocaleDateString("ko-KR")}`}

+

{`${new Date(new Date(diaryData.startDatetime).getTime() + 1000 * 60 * 60 * 24).toLocaleDateString("ko-KR")}`}

); diff --git a/src/components/diary/write/DiaryEditor.tsx b/src/components/diary/write/DiaryEditor.tsx index 45e86b78..16b662a2 100644 --- a/src/components/diary/write/DiaryEditor.tsx +++ b/src/components/diary/write/DiaryEditor.tsx @@ -58,7 +58,7 @@ const DiaryEditor = ({ { diff --git a/src/containers/diary/detail/DiaryViewerContainer.tsx b/src/containers/diary/detail/DiaryViewerContainer.tsx index a3b00ba9..1c5e3854 100644 --- a/src/containers/diary/detail/DiaryViewerContainer.tsx +++ b/src/containers/diary/detail/DiaryViewerContainer.tsx @@ -4,7 +4,7 @@ import DiaryViewer from "@/components/diary/detail/DiaryViewer"; import useModalBackHandler from "@/hooks/useModalBackHandler"; import usePreventBodyScroll from "@/hooks/usePreventBodyScroll"; import { GetDiaryResponseDto } from "@/types/DiaryDto"; -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; interface Props { data: GetDiaryResponseDto; @@ -30,6 +30,14 @@ const DiaryViewerContainer = ({ data }: Props) => { usePreventBodyScroll(modalVisible); useModalBackHandler(modalVisible, () => setModalVisible(false)); + useEffect(() => { + setTimeout(() => { + document.querySelectorAll("img").forEach((img) => { + img.style.borderRadius = "1rem"; + }); + }, 100); + }, []); + return ( { const data: UpdateDiaryRequestDto = { title: title, - deleteTitleImage: ![image, ...contentImagesUrl[0].split(",")].includes( + deleteTitleImage: [image, ...contentImagesUrl.split(",")].includes( originalThumbnailUrl, ) - ? originalThumbnailUrl - : "", + ? "" + : originalThumbnailUrl, saveTitleImage: image, startDatetime: startDate!, endDatetime: endDate!, diff --git a/src/containers/diary/write/QuillEditorContainer.tsx b/src/containers/diary/write/QuillEditorContainer.tsx index ea7f959a..ad548002 100644 --- a/src/containers/diary/write/QuillEditorContainer.tsx +++ b/src/containers/diary/write/QuillEditorContainer.tsx @@ -4,7 +4,7 @@ import QuillEditor from "@/components/diary/write/QuillEditor"; import useAuthStore from "@/store/authStore"; import { fetchWithAuth } from "@/utils/fetchWithAuth"; import ImageDropAndPaste, { ImageData } from "quill-image-drop-and-paste"; -import { useMemo, useRef, useState } from "react"; +import { useEffect, useMemo, useRef, useState } from "react"; import { useFormContext } from "react-hook-form"; import ReactQuill, { Quill } from "react-quill"; @@ -58,6 +58,7 @@ const QuillEditorContainer = () => { const imageElement = document.querySelector(`img[src="${url}"]`); if (imageElement) { (imageElement as HTMLElement).style.borderRadius = "1rem"; + onContentChange(quillRef.current!.getEditorContents().toString()); } }, 100); } @@ -129,6 +130,16 @@ const QuillEditorContainer = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + useEffect(() => { + setTimeout(() => { + document.querySelectorAll("img").forEach((img) => { + img.style.borderRadius = "1rem"; + }); + onContentChange(quillRef.current!.getEditorContents().toString()); + }, 100); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + return ( Date: Tue, 17 Sep 2024 20:20:13 +0900 Subject: [PATCH 10/11] =?UTF-8?q?Refactor:=20DiaryViewer=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/diary/detail/DiaryViewer.tsx | 35 ++++--------------- .../diary/detail/DiaryViewerContainer.tsx | 28 ++++----------- 2 files changed, 13 insertions(+), 50 deletions(-) diff --git a/src/components/diary/detail/DiaryViewer.tsx b/src/components/diary/detail/DiaryViewer.tsx index bdf2cdb1..833cb062 100644 --- a/src/components/diary/detail/DiaryViewer.tsx +++ b/src/components/diary/detail/DiaryViewer.tsx @@ -9,23 +9,12 @@ import { TiLocation } from "react-icons/ti"; interface Props { data: GetDiaryResponseDto; - days: number; - currentDay: number; modalVisible: boolean; - changeDay: (day: number) => void; openModal: () => void; closeModal: () => void; } -const DiaryViewer = ({ - data, - days, - currentDay, - modalVisible, - changeDay, - openModal, - closeModal, -}: Props) => { +const DiaryViewer = ({ data, modalVisible, openModal, closeModal }: Props) => { return (
{modalVisible && ( @@ -34,21 +23,9 @@ const DiaryViewer = ({ closeModal={closeModal} /> )} -
- day-text - {Array.from({ length: days }, (_, index) => index + 1).map((day) => ( - - ))} -
mood-icon {new Date( new Date(data.diaryContentResponse.startDatetime).getTime() + - (1000 * 60 * 60 * 24 * currentDay - 1), + (1000 * 60 * 60 * 24 - 1), ).toLocaleDateString("ko-KR")}

@@ -69,17 +46,17 @@ const DiaryViewer = ({

{ data.diaryContentResponse.diaryDayContentResponses - .diaryDayContentDetail[currentDay - 1].place + .diaryDayContentDetail[0].place }

diff --git a/src/containers/diary/detail/DiaryViewerContainer.tsx b/src/containers/diary/detail/DiaryViewerContainer.tsx index 1c5e3854..e09e7335 100644 --- a/src/containers/diary/detail/DiaryViewerContainer.tsx +++ b/src/containers/diary/detail/DiaryViewerContainer.tsx @@ -4,47 +4,33 @@ import DiaryViewer from "@/components/diary/detail/DiaryViewer"; import useModalBackHandler from "@/hooks/useModalBackHandler"; import usePreventBodyScroll from "@/hooks/usePreventBodyScroll"; import { GetDiaryResponseDto } from "@/types/DiaryDto"; -import { useEffect, useMemo, useState } from "react"; +import { useEffect, useState } from "react"; interface Props { data: GetDiaryResponseDto; } const DiaryViewerContainer = ({ data }: Props) => { - const [currentDay, setCurrentDay] = useState(1); - const days = useMemo( - () => - (new Date(data.diaryContentResponse.endDatetime).getTime() - - new Date(data.diaryContentResponse.startDatetime).getTime()) / - (1000 * 60 * 60 * 24) + - 1, - // eslint-disable-next-line react-hooks/exhaustive-deps - [], - ); const [modalVisible, setModalVisible] = useState(false); - const changeDay = (day: number) => { - setCurrentDay(day); - }; - usePreventBodyScroll(modalVisible); useModalBackHandler(modalVisible, () => setModalVisible(false)); useEffect(() => { setTimeout(() => { - document.querySelectorAll("img").forEach((img) => { - img.style.borderRadius = "1rem"; - }); + document + .querySelector(".diaryViewerContent") + ?.querySelectorAll("img") + .forEach((img) => { + img.style.borderRadius = "1rem"; + }); }, 100); }, []); return ( setModalVisible(true)} closeModal={() => { window.history.back(); From c3defc72b903bf0dfa6e6d9ee9429ecc5a4234cc Mon Sep 17 00:00:00 2001 From: HyunJinNo Date: Tue, 17 Sep 2024 21:22:19 +0900 Subject: [PATCH 11/11] =?UTF-8?q?Rename:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=ED=8C=8C=EC=9D=BC=20=EC=82=AD=EC=A0=9C=20=EB=B0=8F?= =?UTF-8?q?=20=ED=8C=8C=EC=9D=BC=EC=9D=84=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EB=B3=84=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/PostImage.svg | 16 -- public/PostImage2.svg | 9 - public/PostImage3.svg | 9 - public/{ => auth}/google-icon.svg | 0 public/{ => auth}/kakao-icon.svg | 0 public/auth_brand_image.svg | 116 --------- public/banner-image1.png | Bin 230830 -> 0 bytes public/banner-image2.png | Bin 266194 -> 0 bytes public/banner-image3.png | Bin 289212 -> 0 bytes public/banner2-image.svg | 176 -------------- public/{ => common}/bookmark-icon-marked.svg | 0 public/{ => common}/bookmark-icon.svg | 0 public/{ => common}/eyes-icon.svg | 0 public/{ => common}/home-icon.svg | 0 public/{ => common}/loading-icon.png | Bin public/{ => common}/pencil-icon.png | Bin public/{ => common}/search-icon.png | Bin .../solitour-logo.svg} | 0 public/day-text-dark-mode.svg | 3 - public/diary-image1.svg | 9 - public/diary-image2.svg | 9 - public/{ => diary}/day-text.svg | 0 public/{ => diary}/mood-icon1.svg | 0 public/{ => diary}/mood-icon2.svg | 0 public/{ => diary}/mood-icon3.svg | 0 public/{ => diary}/mood-icon4.svg | 0 public/{ => diary}/mood-icon5.svg | 0 public/{ => diary}/pencil-green-icon.svg | 0 public/{ => error}/error_sign.svg | 0 public/example/diary/detail/diary-image1.svg | 11 - public/example/diary/detail/diary-image2.svg | 9 - public/example/diary/detail/diary-image3.svg | 9 - public/{ => gathering}/calendar-gray-icon.svg | 0 public/{ => gathering}/calendar-icon.svg | 0 public/{ => gathering}/clock-gray-icon.svg | 0 public/{ => gathering}/clock-icon.svg | 0 public/{ => gathering}/close-icon.svg | 0 public/{ => gathering}/location-gray-icon.svg | 0 public/{ => gathering}/location-icon.svg | 0 public/{ => gathering}/minus-icon.svg | 0 public/{ => gathering}/people-gray-icon.svg | 0 public/{ => gathering}/people-icon.svg | 0 public/{ => gathering}/pin-gray-icon.svg | 0 public/{ => gathering}/pin-icon.svg | 0 public/{ => gathering}/plus-icon.svg | 0 public/{ => gathering}/search-icon.svg | 0 public/{ => home}/background1.png | Bin public/{ => home}/background2.png | Bin public/{ => home}/background3.png | Bin public/{ => home}/background4.png | Bin .../trip-search-icon.svg} | 0 public/{ => information}/banner-image.png | Bin public/loading.png | Bin 17166 -> 0 bytes public/{ => mypage}/camera-icon.svg | 0 public/{ => mypage}/setting-icon.svg | 0 public/next.svg | 1 - public/{ => not-found}/404.svg | 0 public/pin-icon.png | Bin 590 -> 0 bytes public/restaurant1.svg | 14 -- public/restaurant2.svg | 14 -- public/restaurant3.svg | 14 -- public/restaurant4.svg | 14 -- public/restaurant5.svg | 14 -- public/restaurant6.svg | 14 -- public/restaurant7.svg | 14 -- public/restaurant8.svg | 14 -- public/search-icon-dark-mode.png | Bin 707 -> 0 bytes public/solitour-logo-dark-mode.png | Bin 2734 -> 0 bytes public/test.png | Bin 199923 -> 0 bytes public/user_sex_man_default_image.svg | 61 ----- public/user_sex_woman_default_image.svg | 71 ------ public/vercel.svg | 1 - src/app/error.tsx | 8 +- src/app/not-found.tsx | 2 +- src/components/auth/SignIn.tsx | 8 +- src/components/auth/SignUp.tsx | 8 +- src/components/common/Banner.tsx | 2 +- src/components/common/Breadcrumb.tsx | 2 +- src/components/common/FloatingButton.tsx | 2 +- src/components/common/Footer.tsx | 2 +- src/components/common/GatheringItem.tsx | 12 +- src/components/common/GatheringItemHome.tsx | 10 +- src/components/common/Header.tsx | 2 +- src/components/common/InformationItem.tsx | 9 +- src/components/common/modal/Modal.tsx | 14 +- src/components/diary/detail/DiaryViewer.tsx | 2 +- src/components/diary/list/DiaryCard.tsx | 9 +- .../diary/list/DiaryWriteButton.tsx | 2 +- src/components/diary/write/DiaryEditor.tsx | 6 +- .../createUpdate/editor/GatheringEditor.tsx | 6 +- .../editor/modal/GatheringCategoryModal.tsx | 12 +- .../editor/modal/GatheringDeadlineModal.tsx | 14 +- .../GatheringParticipantsFilterModal.tsx | 21 +- .../editor/modal/GatheringPeriodModal.tsx | 2 +- .../editor/modal/GatheringPlaceModal.tsx | 30 ++- .../editor/modal/GatheringTimeModal.tsx | 223 +++++++++--------- .../gathering/read/GatheringKakaoMap.tsx | 79 +++---- .../gathering/read/GatheringPlace.tsx | 23 +- .../gathering/read/GatheringSearch.tsx | 2 +- .../gathering/read/detail/GatheringViewer.tsx | 20 +- .../read/modal/GatheringFilterModal.tsx | 83 +++---- src/components/home/TabList.tsx | 4 +- .../informations/list/InformationSearch.tsx | 2 +- .../informations/write/InformationEditor.tsx | 2 +- .../mypage/MyBookMarkFolderList.tsx | 18 +- src/components/mypage/MyPageHeader.tsx | 4 +- src/components/mypage/MyPageUserImage.tsx | 12 +- src/components/mypage/MyProfile.tsx | 2 +- src/components/support/SupportContact.tsx | 12 +- src/components/support/SupportSearch.tsx | 45 ++-- .../read/GatheringBookmarkContainer.tsx | 109 ++++----- src/containers/home/HomeCarouselContainer.tsx | 8 +- .../mypage/MyBookmarkListContainer.tsx | 37 +-- src/styles/globals.css | 2 +- 114 files changed, 440 insertions(+), 1054 deletions(-) delete mode 100644 public/PostImage.svg delete mode 100644 public/PostImage2.svg delete mode 100644 public/PostImage3.svg rename public/{ => auth}/google-icon.svg (100%) rename public/{ => auth}/kakao-icon.svg (100%) delete mode 100644 public/auth_brand_image.svg delete mode 100644 public/banner-image1.png delete mode 100644 public/banner-image2.png delete mode 100644 public/banner-image3.png delete mode 100644 public/banner2-image.svg rename public/{ => common}/bookmark-icon-marked.svg (100%) rename public/{ => common}/bookmark-icon.svg (100%) rename public/{ => common}/eyes-icon.svg (100%) rename public/{ => common}/home-icon.svg (100%) rename public/{ => common}/loading-icon.png (100%) rename public/{ => common}/pencil-icon.png (100%) rename public/{ => common}/search-icon.png (100%) rename public/{Solitour-logo.svg => common/solitour-logo.svg} (100%) delete mode 100644 public/day-text-dark-mode.svg delete mode 100644 public/diary-image1.svg delete mode 100644 public/diary-image2.svg rename public/{ => diary}/day-text.svg (100%) rename public/{ => diary}/mood-icon1.svg (100%) rename public/{ => diary}/mood-icon2.svg (100%) rename public/{ => diary}/mood-icon3.svg (100%) rename public/{ => diary}/mood-icon4.svg (100%) rename public/{ => diary}/mood-icon5.svg (100%) rename public/{ => diary}/pencil-green-icon.svg (100%) rename public/{ => error}/error_sign.svg (100%) delete mode 100644 public/example/diary/detail/diary-image1.svg delete mode 100644 public/example/diary/detail/diary-image2.svg delete mode 100644 public/example/diary/detail/diary-image3.svg rename public/{ => gathering}/calendar-gray-icon.svg (100%) rename public/{ => gathering}/calendar-icon.svg (100%) rename public/{ => gathering}/clock-gray-icon.svg (100%) rename public/{ => gathering}/clock-icon.svg (100%) rename public/{ => gathering}/close-icon.svg (100%) rename public/{ => gathering}/location-gray-icon.svg (100%) rename public/{ => gathering}/location-icon.svg (100%) rename public/{ => gathering}/minus-icon.svg (100%) rename public/{ => gathering}/people-gray-icon.svg (100%) rename public/{ => gathering}/people-icon.svg (100%) rename public/{ => gathering}/pin-gray-icon.svg (100%) rename public/{ => gathering}/pin-icon.svg (100%) rename public/{ => gathering}/plus-icon.svg (100%) rename public/{ => gathering}/search-icon.svg (100%) rename public/{ => home}/background1.png (100%) rename public/{ => home}/background2.png (100%) rename public/{ => home}/background3.png (100%) rename public/{ => home}/background4.png (100%) rename public/{Trip-search-icon.svg => home/trip-search-icon.svg} (100%) rename public/{ => information}/banner-image.png (100%) delete mode 100644 public/loading.png rename public/{ => mypage}/camera-icon.svg (100%) rename public/{ => mypage}/setting-icon.svg (100%) delete mode 100644 public/next.svg rename public/{ => not-found}/404.svg (100%) delete mode 100644 public/pin-icon.png delete mode 100644 public/restaurant1.svg delete mode 100644 public/restaurant2.svg delete mode 100644 public/restaurant3.svg delete mode 100644 public/restaurant4.svg delete mode 100644 public/restaurant5.svg delete mode 100644 public/restaurant6.svg delete mode 100644 public/restaurant7.svg delete mode 100644 public/restaurant8.svg delete mode 100644 public/search-icon-dark-mode.png delete mode 100644 public/solitour-logo-dark-mode.png delete mode 100644 public/test.png delete mode 100644 public/user_sex_man_default_image.svg delete mode 100644 public/user_sex_woman_default_image.svg delete mode 100644 public/vercel.svg diff --git a/public/PostImage.svg b/public/PostImage.svg deleted file mode 100644 index 96cfc4be..00000000 --- a/public/PostImage.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/public/PostImage2.svg b/public/PostImage2.svg deleted file mode 100644 index 876f69e5..00000000 --- a/public/PostImage2.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/PostImage3.svg b/public/PostImage3.svg deleted file mode 100644 index a58c9ae2..00000000 --- a/public/PostImage3.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/google-icon.svg b/public/auth/google-icon.svg similarity index 100% rename from public/google-icon.svg rename to public/auth/google-icon.svg diff --git a/public/kakao-icon.svg b/public/auth/kakao-icon.svg similarity index 100% rename from public/kakao-icon.svg rename to public/auth/kakao-icon.svg diff --git a/public/auth_brand_image.svg b/public/auth_brand_image.svg deleted file mode 100644 index fefa6693..00000000 --- a/public/auth_brand_image.svg +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/banner-image1.png b/public/banner-image1.png deleted file mode 100644 index 73cada2f10eddd4c38f10387612e2b582c771e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230830 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