From b9b7a07da30447e97e73d24ae545ed3557913526 Mon Sep 17 00:00:00 2001 From: corpi Date: Sat, 31 Jan 2026 16:36:49 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/vcs.xml | 6 ++ .idea/workspace.xml | 67 +++++++++++++++++++ src/app/page.tsx | 160 ++++++++++++++++++++++++++++---------------- 3 files changed, 174 insertions(+), 59 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..cd34ce9 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + 1769761859967 + + + + + + \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index 295f8fd..d29b3b5 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,65 +1,107 @@ -import Image from "next/image"; +// app/page.tsx +"use client"; + +import { useRouter } from "next/navigation"; +import { useCallback } from "react"; + +type Mode = "freeflow" | "sprint" | "deepwork"; + +export default function HomePage() { + const router = useRouter(); + + const startSession = useCallback( + (mode: Mode) => { + try { + localStorage.setItem("last_mode", mode); + } catch {} + router.push(`/session?mode=${mode}`); + }, + [router], + ); -export default function Home() { return ( -
-
- Next.js logo -
-

- To get started, edit the page.tsx file. -

-

- Looking for a starting point or more instructions? Head over to{" "} - - Templates - {" "} - or the{" "} - - Learning - {" "} - center. -

+
+ {/* Top-left logo */} +
+
+ hushroom
-
+ +
+ {/* Section: Freeflow */} +
+
자유 세션
+
+ 시간 제한 없이, 원할 때 종료 +
-
-
+ + + + {/* Divider + Section: Timed sessions */} +
+
+
+ 시간 고정 세션 +
+
+
+ +
+ 한 번 실행되고 끝나면 요약으로 이동 +
+ +
+ startSession("sprint")} + /> + startSession("deepwork")} + /> +
+ +
+ ); +} + +function ModeTile({ + title, + meta, + desc, + onClick, +}: { + title: string; + meta: string; + desc: string; + onClick: () => void; +}) { + return ( + ); }