Rename daily quiz to check-in and add collapsible journal calendar.

Replace user-facing quiz wording with daily check-in, add journal history on the Bit page with month browsing and read-only entry modals, and keep legacy quiz routes redirecting to the new anchor.
This commit is contained in:
2026-05-24 10:20:03 -06:00
parent e41fc10c77
commit 93af01dec1
14 changed files with 610 additions and 30 deletions

View File

@@ -247,13 +247,13 @@ export function ProfilePreferencesForm({ email }: ProfilePreferencesFormProps) {
try {
await resetTodaysDailyQuiz();
setQuizResetMessage(
"Today's quiz was reset. Open the Quiz tab to take it again.",
"Today's check-in was reset. Open the Bit page to complete it again.",
);
} catch (resetError) {
setError(
resetError instanceof Error
? resetError.message
: "Could not reset today's quiz.",
: "Could not reset today's check-in.",
);
} finally {
setIsResettingQuiz(false);
@@ -337,7 +337,7 @@ export function ProfilePreferencesForm({ email }: ProfilePreferencesFormProps) {
<CardHeader>
<CardTitle className="text-base">Notification preferences</CardTitle>
<CardDescription>
Control reminders for your daily quiz and habits.
Control reminders for your daily check-in and habits.
</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
@@ -425,7 +425,7 @@ export function ProfilePreferencesForm({ email }: ProfilePreferencesFormProps) {
</CardHeader>
<CardContent className="space-y-4">
<p className="text-xs text-muted-foreground">
Reset clears today&apos;s wellness quiz entry so you can complete it
Reset clears today&apos;s wellness check-in entry so you can complete it
again immediately. Demo points are for testing the shop only.
</p>
<Button
@@ -449,7 +449,7 @@ export function ProfilePreferencesForm({ email }: ProfilePreferencesFormProps) {
disabled={isSaving || isResettingQuiz}
onClick={() => void handleResetDailyQuiz()}
>
{isResettingQuiz ? "Resetting..." : "Reset today's quiz"}
{isResettingQuiz ? "Resetting..." : "Reset today's check-in"}
</Button>
{quizResetMessage ? (
<p className="text-xs text-emerald-600">{quizResetMessage}</p>