From cea7703ac440c38636ce2abd5baab35a23d05843 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 15 Feb 2026 16:45:35 +0900 Subject: feat(deck): display new card count on deck detail page Add newCardCount alongside Total and Due stats in the deck detail view, queried from cards with state=New via a new countNewCards repository method. Co-Authored-By: Claude Opus 4.6 --- src/client/pages/DeckCardsPage.test.tsx | 1 + src/client/pages/DeckDetailPage.test.tsx | 1 + src/client/pages/DeckDetailPage.tsx | 14 ++++++++++++-- src/client/pages/HomePage.test.tsx | 4 ++++ 4 files changed, 18 insertions(+), 2 deletions(-) (limited to 'src/client/pages') diff --git a/src/client/pages/DeckCardsPage.test.tsx b/src/client/pages/DeckCardsPage.test.tsx index 7c3c184..91b0b28 100644 --- a/src/client/pages/DeckCardsPage.test.tsx +++ b/src/client/pages/DeckCardsPage.test.tsx @@ -73,6 +73,7 @@ const mockDeck = { name: "Japanese Vocabulary", description: "Common Japanese words", dueCardCount: 0, + newCardCount: 0, createdAt: "2024-01-01T00:00:00Z", updatedAt: "2024-01-01T00:00:00Z", }; diff --git a/src/client/pages/DeckDetailPage.test.tsx b/src/client/pages/DeckDetailPage.test.tsx index 9dcb152..0b9216b 100644 --- a/src/client/pages/DeckDetailPage.test.tsx +++ b/src/client/pages/DeckDetailPage.test.tsx @@ -60,6 +60,7 @@ const mockDeck = { name: "Japanese Vocabulary", description: "Common Japanese words", dueCardCount: 0, + newCardCount: 0, createdAt: "2024-01-01T00:00:00Z", updatedAt: "2024-01-01T00:00:00Z", }; diff --git a/src/client/pages/DeckDetailPage.tsx b/src/client/pages/DeckDetailPage.tsx index bb8d42a..0a02051 100644 --- a/src/client/pages/DeckDetailPage.tsx +++ b/src/client/pages/DeckDetailPage.tsx @@ -33,11 +33,17 @@ function DeckStats({ deckId }: { deckId: string }) { return (
-
+

Total

{cards.length}

+
+

New

+

+ {deck.newCardCount} +

+

Due

@@ -77,7 +83,11 @@ function DeckContent({ -

+
+
+
+
+
diff --git a/src/client/pages/HomePage.test.tsx b/src/client/pages/HomePage.test.tsx index 179c649..3d15777 100644 --- a/src/client/pages/HomePage.test.tsx +++ b/src/client/pages/HomePage.test.tsx @@ -93,6 +93,7 @@ const mockDecks = [ name: "Japanese Vocabulary", description: "Common Japanese words", dueCardCount: 5, + newCardCount: 0, createdAt: "2024-01-01T00:00:00Z", updatedAt: "2024-01-01T00:00:00Z", }, @@ -101,6 +102,7 @@ const mockDecks = [ name: "Spanish Verbs", description: null, dueCardCount: 0, + newCardCount: 0, createdAt: "2024-01-02T00:00:00Z", updatedAt: "2024-01-02T00:00:00Z", }, @@ -253,6 +255,7 @@ describe("HomePage", () => { name: "No Description Deck", description: null, dueCardCount: 0, + newCardCount: 0, createdAt: "2024-01-01T00:00:00Z", updatedAt: "2024-01-01T00:00:00Z", }; @@ -332,6 +335,7 @@ describe("HomePage", () => { name: "New Deck", description: "A new deck", dueCardCount: 0, + newCardCount: 0, createdAt: "2024-01-03T00:00:00Z", updatedAt: "2024-01-03T00:00:00Z", }; -- cgit v1.3-1-g0d28