aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/client/pages/StudyPage.tsx
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-15 17:09:51 +0900
committernsfisis <nsfisis@gmail.com>2026-02-15 17:11:00 +0900
commit95bb8c70a98fabae2a60b251489a59065b2978d1 (patch)
treea145f686cc2d84f49979ea97b9054413f9e58306 /src/client/pages/StudyPage.tsx
parent897f22233810919ba01608bffbfa69f2bb926388 (diff)
downloadkioku-95bb8c70a98fabae2a60b251489a59065b2978d1.tar.gz
kioku-95bb8c70a98fabae2a60b251489a59065b2978d1.tar.zst
kioku-95bb8c70a98fabae2a60b251489a59065b2978d1.zip
fix(types): use CardStateType instead of number for card state fields
Card and StudyCard interfaces used generic number for state, causing type errors when indexing Record<CardStateType, ...> maps. Also adds missing FSRS fields to client Card interface to match API response. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/client/pages/StudyPage.tsx')
-rw-r--r--src/client/pages/StudyPage.tsx20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/client/pages/StudyPage.tsx b/src/client/pages/StudyPage.tsx
index 2649069..9127e39 100644
--- a/src/client/pages/StudyPage.tsx
+++ b/src/client/pages/StudyPage.tsx
@@ -20,6 +20,7 @@ import { ApiClientError, apiClient } from "../api";
import { studyDataAtomFamily } from "../atoms";
import { EditNoteModal } from "../components/EditNoteModal";
import { ErrorBoundary } from "../components/ErrorBoundary";
+import type { CardStateType } from "../db";
import { queryClient } from "../queryClient";
import { renderCard } from "../utils/templateRenderer";
@@ -40,7 +41,10 @@ const RatingStyles: Record<Rating, string> = {
4: "bg-easy hover:bg-easy/90 focus:ring-easy/30",
};
-const CardStateBadge: Record<number, { label: string; className: string }> = {
+const CardStateBadge: Record<
+ CardStateType,
+ { label: string; className: string }
+> = {
0: { label: "New", className: "bg-info/10 text-info" },
1: { label: "Learning", className: "bg-warning/10 text-warning" },
2: { label: "Review", className: "bg-success/10 text-success" },
@@ -448,14 +452,12 @@ function StudySession({
/>
</span>
{/* Card state badge */}
- {CardStateBadge[currentCard.state] && (
- <span
- data-testid="card-state-badge"
- className={`absolute top-3 left-3 text-xs font-medium px-2 py-0.5 rounded-full ${CardStateBadge[currentCard.state].className}`}
- >
- {CardStateBadge[currentCard.state].label}
- </span>
- )}
+ <span
+ data-testid="card-state-badge"
+ className={`absolute top-3 left-3 text-xs font-medium px-2 py-0.5 rounded-full ${CardStateBadge[currentCard.state].className}`}
+ >
+ {CardStateBadge[currentCard.state].label}
+ </span>
{!isFlipped ? (
<>
<p