diff options
| author | nsfisis <54318333+nsfisis@users.noreply.github.com> | 2026-01-12 18:09:14 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-12 18:09:14 +0900 |
| commit | 188c49e6ae0dfa0af052a001bc40c26d448b1583 (patch) | |
| tree | f0cebd927c2292a40f123a694c6aa561768ad7a3 /src/client | |
| parent | f8e4be9b36a16969ac53bd9ce12ce8064be10196 (diff) | |
| parent | 1732c543f4bc98ec6a4c7ea13c3e4762933421d8 (diff) | |
| download | kioku-188c49e6ae0dfa0af052a001bc40c26d448b1583.tar.gz kioku-188c49e6ae0dfa0af052a001bc40c26d448b1583.tar.zst kioku-188c49e6ae0dfa0af052a001bc40c26d448b1583.zip | |
Display daily card count on deck list page
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/atoms/decks.ts | 1 | ||||
| -rw-r--r-- | src/client/pages/DeckDetailPage.test.tsx | 1 | ||||
| -rw-r--r-- | src/client/pages/HomePage.test.tsx | 4 | ||||
| -rw-r--r-- | src/client/pages/HomePage.tsx | 23 |
4 files changed, 21 insertions, 8 deletions
diff --git a/src/client/atoms/decks.ts b/src/client/atoms/decks.ts index 57abef4..e9b0d03 100644 --- a/src/client/atoms/decks.ts +++ b/src/client/atoms/decks.ts @@ -6,6 +6,7 @@ export interface Deck { name: string; description: string | null; newCardsPerDay: number; + dueCardCount: number; createdAt: string; updatedAt: string; } diff --git a/src/client/pages/DeckDetailPage.test.tsx b/src/client/pages/DeckDetailPage.test.tsx index 402ecd4..b138a0b 100644 --- a/src/client/pages/DeckDetailPage.test.tsx +++ b/src/client/pages/DeckDetailPage.test.tsx @@ -70,6 +70,7 @@ const mockDeck = { name: "Japanese Vocabulary", description: "Common Japanese words", newCardsPerDay: 20, + dueCardCount: 0, createdAt: "2024-01-01T00:00:00Z", updatedAt: "2024-01-01T00:00:00Z", }; diff --git a/src/client/pages/HomePage.test.tsx b/src/client/pages/HomePage.test.tsx index 4921e22..8946fcf 100644 --- a/src/client/pages/HomePage.test.tsx +++ b/src/client/pages/HomePage.test.tsx @@ -84,6 +84,7 @@ const mockDecks = [ name: "Japanese Vocabulary", description: "Common Japanese words", newCardsPerDay: 20, + dueCardCount: 5, createdAt: "2024-01-01T00:00:00Z", updatedAt: "2024-01-01T00:00:00Z", }, @@ -92,6 +93,7 @@ const mockDecks = [ name: "Spanish Verbs", description: null, newCardsPerDay: 10, + dueCardCount: 0, createdAt: "2024-01-02T00:00:00Z", updatedAt: "2024-01-02T00:00:00Z", }, @@ -239,6 +241,7 @@ describe("HomePage", () => { name: "No Description Deck", description: null, newCardsPerDay: 20, + dueCardCount: 0, createdAt: "2024-01-01T00:00:00Z", updatedAt: "2024-01-01T00:00:00Z", }; @@ -312,6 +315,7 @@ describe("HomePage", () => { name: "New Deck", description: "A new deck", newCardsPerDay: 20, + dueCardCount: 0, createdAt: "2024-01-03T00:00:00Z", updatedAt: "2024-01-03T00:00:00Z", }; diff --git a/src/client/pages/HomePage.tsx b/src/client/pages/HomePage.tsx index e0e9e9e..ad6ece4 100644 --- a/src/client/pages/HomePage.tsx +++ b/src/client/pages/HomePage.tsx @@ -57,14 +57,21 @@ function DeckList({ > <div className="flex items-start justify-between gap-4"> <div className="flex-1 min-w-0"> - <Link - href={`/decks/${deck.id}`} - className="block group-hover:text-primary transition-colors" - > - <h3 className="font-display text-lg font-medium text-slate truncate"> - {deck.name} - </h3> - </Link> + <div className="flex items-center gap-3"> + <Link + href={`/decks/${deck.id}`} + className="block group-hover:text-primary transition-colors flex-1 min-w-0" + > + <h3 className="font-display text-lg font-medium text-slate truncate"> + {deck.name} + </h3> + </Link> + {deck.dueCardCount > 0 && ( + <span className="shrink-0 inline-flex items-center justify-center min-w-[1.5rem] h-6 px-2 bg-primary text-white text-sm font-medium rounded-full"> + {deck.dueCardCount} + </span> + )} + </div> {deck.description && ( <p className="text-muted text-sm mt-1 line-clamp-2"> {deck.description} |
