From 622abb85bf8df72eb8831a786980bd6c8b3e3cf7 Mon Sep 17 00:00:00 2001 From: Kyo-s-s Date: Thu, 12 Mar 2026 00:48:44 +0900 Subject: [PATCH 1/2] [Feat] randomize reminder message --- components/NumaTimer.tsx | 7 +++++-- lib/messages.ts | 10 ++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 lib/messages.ts diff --git a/components/NumaTimer.tsx b/components/NumaTimer.tsx index e38ddd5..1c68d4f 100644 --- a/components/NumaTimer.tsx +++ b/components/NumaTimer.tsx @@ -1,4 +1,4 @@ -import { useCallback } from "react" +import { useCallback, useMemo } from "react" import { DOMAIN_LABEL, @@ -6,6 +6,7 @@ import { type DomainKey, type NumaTimerUiState } from "~lib/config" +import { pickReminderMessage } from "~lib/messages" import { useTimer } from "~hooks/useTimer" import type { DeepPartial } from "~lib/deepMerge" @@ -40,6 +41,7 @@ const DOMAIN_THEME: Record< } } + export const NumaTimer = ({ domain, uiState, @@ -54,6 +56,7 @@ export const NumaTimer = ({ const { displaySeconds } = useTimer(domain) const theme = DOMAIN_THEME[domain] const isCollapsed = uiState.collapsed[domain] + const reminderMessage = useMemo(() => pickReminderMessage(), []) const handleToggleCollapsed = useCallback(() => { void setUiState((prev) => ({ @@ -160,7 +163,7 @@ export const NumaTimer = ({ fontSize: "14px", color: theme.subText }}> - この時間はもう戻りません + {reminderMessage} )} diff --git a/lib/messages.ts b/lib/messages.ts new file mode 100644 index 0000000..65bb541 --- /dev/null +++ b/lib/messages.ts @@ -0,0 +1,10 @@ +const REMINDER_MESSAGES = [ + "この時間はもう戻りません", + "今日の時間は有限です", + "いまの使い方で未来が決まる", + "今この瞬間も、過去に変わっています", + "一度きりの今日を大切に", +] as const + +export const pickReminderMessage = () => + REMINDER_MESSAGES[Math.floor(Math.random() * REMINDER_MESSAGES.length)] From 97ebcb043642395f4e29b1d42e3d34cab5740de4 Mon Sep 17 00:00:00 2001 From: Kyo-s-s Date: Thu, 12 Mar 2026 00:57:09 +0900 Subject: [PATCH 2/2] [Refactor] stabilize reminder message --- components/NumaTimer.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/NumaTimer.tsx b/components/NumaTimer.tsx index 1c68d4f..7d72b57 100644 --- a/components/NumaTimer.tsx +++ b/components/NumaTimer.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo } from "react" +import { useCallback, useRef } from "react" import { DOMAIN_LABEL, @@ -56,7 +56,7 @@ export const NumaTimer = ({ const { displaySeconds } = useTimer(domain) const theme = DOMAIN_THEME[domain] const isCollapsed = uiState.collapsed[domain] - const reminderMessage = useMemo(() => pickReminderMessage(), []) + const reminderMessageRef = useRef(pickReminderMessage()) const handleToggleCollapsed = useCallback(() => { void setUiState((prev) => ({ @@ -163,7 +163,7 @@ export const NumaTimer = ({ fontSize: "14px", color: theme.subText }}> - {reminderMessage} + {reminderMessageRef.current} )}