From f99b21c26033b217b6bac7e40f4ab53ce1a6fee1 Mon Sep 17 00:00:00 2001 From: HopeFullee Date: Wed, 10 Dec 2025 17:31:32 +0900 Subject: [PATCH] =?UTF-8?q?style:=20=EB=AA=A8=EC=9E=84=EC=83=9D=EC=84=B1?= =?UTF-8?q?=20time-picker=20=EB=AA=A8=EB=8B=AC=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/post-meetup/page.tsx | 27 ++++---- .../post-meetup/fields/date-field/index.tsx | 38 +++++++++-- .../post-meetup/fields/detail-feild/index.tsx | 6 +- .../index.tsx | 6 +- src/components/pages/post-meetup/index.ts | 2 +- .../calendar/calendar-footer/index.tsx | 27 +++++--- .../calendar/date-picker/index.tsx | 42 +++++------- .../date-picker-modal/calendar/index.tsx | 67 +++++++++++++++++-- .../calendar/time-picker/index.tsx | 46 ++++++++++++- .../modals/date-picker-modal/index.tsx | 11 ++- src/styles/base.css | 4 ++ src/styles/globals.css | 4 -- src/styles/layout.css | 12 ++++ 13 files changed, 216 insertions(+), 76 deletions(-) rename src/components/pages/post-meetup/fields/{address-field => location-field}/index.tsx (86%) diff --git a/src/app/post-meetup/page.tsx b/src/app/post-meetup/page.tsx index bd6502f6..dfb49c95 100644 --- a/src/app/post-meetup/page.tsx +++ b/src/app/post-meetup/page.tsx @@ -3,11 +3,11 @@ import { useForm } from '@tanstack/react-form'; import { - MeetupAddressField, MeetupCapField, MeetupDateField, MeetupDetailField, MeetupImagesField, + MeetupLocationField, MeetupSubmitButton, MeetupTagsField, MeetupTitleField, @@ -17,14 +17,11 @@ const PostMeetupPage = () => { const form = useForm({ defaultValues: { title: '', - address: '', - dateAndTime: { - date: '', - time: '', - }, - cap: 0, + location: '', + startTime: '', + maxParticipants: 0, images: {}, - detail: '', + description: '', tags: [] as string[], }, onSubmit: ({ value }) => { @@ -42,11 +39,17 @@ const PostMeetupPage = () => { >
} name='title' /> - } name='address' /> - } name='dateAndTime' /> - } name='cap' /> + } name='location' /> + } name='startTime' /> + } + name='maxParticipants' + /> } name='images' /> - } name='detail' /> + } + name='description' + /> } name='tags' />
diff --git a/src/components/pages/post-meetup/fields/date-field/index.tsx b/src/components/pages/post-meetup/fields/date-field/index.tsx index 217e3b97..18f5e226 100644 --- a/src/components/pages/post-meetup/fields/date-field/index.tsx +++ b/src/components/pages/post-meetup/fields/date-field/index.tsx @@ -1,6 +1,7 @@ 'use client'; import { AnyFieldApi } from '@tanstack/react-form'; +import clsx from 'clsx'; import { Icon } from '@/components/icon'; import { DatePickerModal } from '@/components/pages/post-meetup/modals/date-picker-modal'; @@ -13,18 +14,21 @@ interface Props { export const MeetupDateField = ({ field }: Props) => { const { open } = useModal(); + const formattedDate = formatDate(new Date(field.state.value), 'YY.MM.DD - HH:mm'); - const value = field.state.value.date + field.state.value.time; + const onInputClick = () => { + open(); + }; return (
-
); }; + +const formatDate = (date: Date, formatString: string) => { + if (isNaN(date.getTime())) return false; + + const year = date.getFullYear().toString().substring(2, 4); + const month = (date.getMonth() + 1).toString().padStart(2, '0'); + const day = date.getDate().toString().padStart(2, '0'); + const hours = date.getHours().toString().padStart(2, '0'); + const minutes = date.getMinutes().toString().padStart(2, '0'); + const seconds = date.getSeconds().toString().padStart(2, '0'); + + return formatString + .replace(/YY/g, year) + .replace(/MM/g, month) + .replace(/DD/g, day) + .replace(/HH/g, hours) + .replace(/mm/g, minutes) + .replace(/ss/g, seconds); +}; diff --git a/src/components/pages/post-meetup/fields/detail-feild/index.tsx b/src/components/pages/post-meetup/fields/detail-feild/index.tsx index a7885726..4e66cc4f 100644 --- a/src/components/pages/post-meetup/fields/detail-feild/index.tsx +++ b/src/components/pages/post-meetup/fields/detail-feild/index.tsx @@ -11,11 +11,11 @@ interface Props { export const MeetupDetailField = ({ field }: Props) => { return (
-