feat(feed): shared-library scope toggle in the header

Add a "Mine / Library" segmented toggle (shown on the feed page) that switches
FeedFilters.scope between the user's own subscriptions and the whole shared
catalog. A read-scope-less user (signed in but no YouTube grant) can now browse
and manage the shared library on their own account — the empty "my feed" state
offers a "browse the shared library" shortcut alongside the connect-YouTube CTA.
scope is preserved across "Clear all" (it's a mode, not a filter) and kept out
of the URL state. Trilingual strings (HU/EN/DE) for the toggle and the CTA.
This commit is contained in:
npeter83 2026-06-15 04:06:22 +02:00
parent 95a18dfcc1
commit eb58f436b6
11 changed files with 71 additions and 5 deletions

View file

@ -4,6 +4,7 @@
"emptyTitle": "Dein Feed ist leer",
"emptyBody": "Verbinde dein YouTube-Konto, um deine Abos zu importieren und deinen Feed aufzubauen.",
"setUp": "Meinen Feed einrichten",
"browseShared": "Oder einfach die gemeinsame Bibliothek durchsuchen",
"noMatches": "Keine Videos entsprechen diesen Filtern.",
"videoCount_one": "{{formattedCount}} Video",
"videoCount_other": "{{formattedCount}} Videos",

View file

@ -3,6 +3,13 @@
"searchPlaceholder": "Deine Abos durchsuchen…",
"channelManager": "Kanalverwaltung",
"usageStats": "Nutzung & Statistik",
"scope": {
"label": "Feed-Quelle",
"my": "Meine",
"myTip": "Nur Videos aus deinen eigenen Abos",
"all": "Bibliothek",
"allTip": "Alle Videos im gemeinsamen Katalog"
},
"account": {
"admin": "Admin",
"feed": "Feed",

View file

@ -4,6 +4,7 @@
"emptyTitle": "Your feed is empty",
"emptyBody": "Connect your YouTube account to import your subscriptions and build your feed.",
"setUp": "Set up my feed",
"browseShared": "Or just browse the shared library",
"noMatches": "No videos match these filters.",
"videoCount_one": "{{formattedCount}} video",
"videoCount_other": "{{formattedCount}} videos",

View file

@ -3,6 +3,13 @@
"searchPlaceholder": "Search your subscriptions…",
"channelManager": "Channel manager",
"usageStats": "Usage & stats",
"scope": {
"label": "Feed source",
"my": "Mine",
"myTip": "Only videos from your own subscriptions",
"all": "Library",
"allTip": "Every video in the shared catalog"
},
"account": {
"admin": "Admin",
"feed": "Feed",

View file

@ -4,6 +4,7 @@
"emptyTitle": "A hírfolyamod üres",
"emptyBody": "Kösd össze a YouTube-fiókodat, hogy importáld a feliratkozásaidat, és felépítsd a hírfolyamodat.",
"setUp": "Hírfolyam beállítása",
"browseShared": "Vagy csak böngészd a közös könyvtárat",
"noMatches": "Egy videó sem felel meg ezeknek a szűrőknek.",
"videoCount_one": "{{formattedCount}} videó",
"videoCount_other": "{{formattedCount}} videó",

View file

@ -3,6 +3,13 @@
"searchPlaceholder": "Keresés a feliratkozásaid között…",
"channelManager": "Csatornakezelő",
"usageStats": "Használat és statisztika",
"scope": {
"label": "Hírfolyam forrása",
"my": "Sajátom",
"myTip": "Csak a saját feliratkozásaid videói",
"all": "Könyvtár",
"allTip": "A közös könyvtár összes videója"
},
"account": {
"admin": "Adminisztrátor",
"feed": "Hírfolyam",