From c5e778d7d21aa24791faa4c3955e583de793a5fb Mon Sep 17 00:00:00 2001 From: sudacode Date: Thu, 9 Apr 2026 01:55:49 -0700 Subject: [PATCH] feat(stats): use generic title wording for mixed-source library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The stats dashboard now supports both anime series and YouTube videos in the same library, so the anime-only copy no longer fits. Rename user-visible labels ("Active Anime", "Search anime…", "Anime — Per Day", "Episodes per Anime", "Words In Multiple Anime", etc.) to use "Title"/"Library" wording that covers either source. Data-model names (animeId, animeCount, useAnimeLibrary) stay as-is; this pass only touches strings the user actually reads. --- stats/src/components/anime/AnimeTab.tsx | 6 +++--- stats/src/components/overview/HeroStats.tsx | 2 +- .../src/components/overview/TrackingSnapshot.tsx | 6 +++--- stats/src/components/sessions/SessionRow.tsx | 2 +- stats/src/components/trends/TrendsTab.tsx | 16 ++++++++-------- .../vocabulary/CrossAnimeWordsTable.tsx | 8 ++++---- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/stats/src/components/anime/AnimeTab.tsx b/stats/src/components/anime/AnimeTab.tsx index 06bcf924..26d69ac2 100644 --- a/stats/src/components/anime/AnimeTab.tsx +++ b/stats/src/components/anime/AnimeTab.tsx @@ -93,7 +93,7 @@ export function AnimeTab({
setSearch(e.target.value)} className="flex-1 bg-ctp-surface0 border border-ctp-surface1 rounded-lg px-3 py-2 text-sm text-ctp-text placeholder:text-ctp-overlay2 focus:outline-none focus:border-ctp-blue" @@ -125,12 +125,12 @@ export function AnimeTab({ ))}
- {filtered.length} anime · {formatDuration(totalMs)} + {filtered.length} titles · {formatDuration(totalMs)}
{filtered.length === 0 ? ( -
No anime found
+
No titles found
) : (
{filtered.map((item) => ( diff --git a/stats/src/components/overview/HeroStats.tsx b/stats/src/components/overview/HeroStats.tsx index 9c11f182..98015ae7 100644 --- a/stats/src/components/overview/HeroStats.tsx +++ b/stats/src/components/overview/HeroStats.tsx @@ -36,7 +36,7 @@ export function HeroStats({ summary, sessions }: HeroStatsProps) { /> diff --git a/stats/src/components/overview/TrackingSnapshot.tsx b/stats/src/components/overview/TrackingSnapshot.tsx index dd8bde0b..4319002a 100644 --- a/stats/src/components/overview/TrackingSnapshot.tsx +++ b/stats/src/components/overview/TrackingSnapshot.tsx @@ -71,7 +71,7 @@ export function TrackingSnapshot({
- +
Episodes
@@ -79,9 +79,9 @@ export function TrackingSnapshot({
- +
-
Anime
+
Titles
{formatNumber(summary.totalAnimeCompleted)}
diff --git a/stats/src/components/sessions/SessionRow.tsx b/stats/src/components/sessions/SessionRow.tsx index b3aaea99..db03a77a 100644 --- a/stats/src/components/sessions/SessionRow.tsx +++ b/stats/src/components/sessions/SessionRow.tsx @@ -120,7 +120,7 @@ export function SessionRow({ }} aria-label={`View overview for ${session.canonicalTitle ?? 'Unknown Media'}`} className="absolute right-10 top-1/2 -translate-y-1/2 w-5 h-5 rounded border border-ctp-surface2 text-transparent hover:border-ctp-blue/50 hover:text-ctp-blue hover:bg-ctp-blue/10 transition-colors opacity-0 group-hover:opacity-100 focus:opacity-100 flex items-center justify-center" - title="View anime overview" + title="View in Library" > {'\u2197'} diff --git a/stats/src/components/trends/TrendsTab.tsx b/stats/src/components/trends/TrendsTab.tsx index 0010bd57..2fb0d025 100644 --- a/stats/src/components/trends/TrendsTab.tsx +++ b/stats/src/components/trends/TrendsTab.tsx @@ -221,7 +221,7 @@ export function TrendsTab() { type="line" /> - Anime — Per Day + Library — Per Day - - + + - - + + - Anime — Cumulative + Library — Cumulative {'\u25B6'} - Words In Multiple Anime + Words Across Multiple Titles
{hasKnownData && ( @@ -97,8 +97,8 @@ export function CrossAnimeWordsTable({ {collapsed ? null : ranked.length === 0 ? (
{hideKnown - ? 'All multi-anime words are already known!' - : 'No words found across multiple anime.'} + ? 'All words that span multiple titles are already known!' + : 'No words found across multiple titles.'}
) : ( <> @@ -109,7 +109,7 @@ export function CrossAnimeWordsTable({ Word Reading POS - Anime + Titles Seen