From 90223a4d907652a434f5fe136d83036c6a47f286 Mon Sep 17 00:00:00 2001 From: kimminna Date: Mon, 13 Jul 2026 00:08:00 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat(web):=20=EB=A9=94=EB=AA=A8=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20300=EC=9E=90=20=EC=A0=9C=ED=95=9C=20=EC=8A=A4?= =?UTF-8?q?=ED=82=A4=EB=A7=88=20=EA=B2=80=EC=A6=9D=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?(#157)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 메모 필드에 최대 300자 zod 검증을 추가했습니다 --- apps/timo-web/api/todo/todo-schema.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/timo-web/api/todo/todo-schema.ts b/apps/timo-web/api/todo/todo-schema.ts index f1516663..ec98b4e4 100644 --- a/apps/timo-web/api/todo/todo-schema.ts +++ b/apps/timo-web/api/todo/todo-schema.ts @@ -42,7 +42,7 @@ export const createTodoRequestSchema = z repeatType: todoRepeatTypeSchema, repeatWeekdays: z.array(todoRepeatWeekdaySchema).nullable(), repeatDayOfMonth: z.number().int().min(1).max(31).nullable(), - memo: z.string().nullable(), + memo: z.string().max(300).nullable(), }) .superRefine((value, ctx) => { if ( From 9e9c6ce9e72cd12c5f0ade26ba05f6edb35fb458 Mon Sep 17 00:00:00 2001 From: kimminna Date: Mon, 13 Jul 2026 00:08:57 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat(web):=20=EB=A9=94=EB=AA=A8=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EC=9E=90=EB=8F=99=20=EB=86=92=EC=9D=B4=20=EC=A1=B0?= =?UTF-8?q?=EC=A0=88=20=EB=B0=8F=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20(#157)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 입력 시 scrollHeight 기준으로 자동 높이 조절 기능을 추가했습니다 - 뷰포트의 40%를 넘으면 내부 스크롤되도록 max-height와 overflow 처리를 추가했습니다 --- .../_components/todo-modal/CreateTodoMemoField.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_components/todo-modal/CreateTodoMemoField.tsx b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_components/todo-modal/CreateTodoMemoField.tsx index b12a565a..5f80837c 100644 --- a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_components/todo-modal/CreateTodoMemoField.tsx +++ b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_components/todo-modal/CreateTodoMemoField.tsx @@ -1,3 +1,11 @@ +const MEMO_MAX_LENGTH = 300; + +const resizeTextarea = (element: HTMLTextAreaElement | null) => { + if (!element) return; + element.style.height = "auto"; + element.style.height = `${element.scrollHeight}px`; +}; + export interface CreateTodoMemoFieldProps { value: string; placeholder: string; @@ -12,10 +20,13 @@ export const CreateTodoMemoField = ({ return (