feat(channels): dedicated channel page + ephemeral explore UI
Frontend for the channel-explore feature: - ChannelPage: banner/avatar/stats header, Subscribe/unsubscribe, an "exploring" badge while browsing an un-subscribed channel, Videos/About tabs. Reuses Feed scoped to the channel (scope=all + source=all so the per-user ephemeral videos show). Auto-ingests recent uploads on first visit (background, with a loading note) + "Load more from YouTube" to page deeper; skipped for demo / already-subscribed channels. - App: openChannel/closeChannel as a Back-aware sub-view (history.state._chan, mirrors the YT-search _yt pattern); ChannelPage takes over the content column, nav rail stays. - ChannelLink/cards/player: the channel name now opens our channel page (onChannelFilter → onOpenChannel); the in-card "only this channel" filter button is dropped (the page subsumes it). PlayerModal channel-name wiring follows in the next commit. - api: channelDetail + exploreChannel; ChannelDetail/ExploreResult types. - i18n EN/HU/DE: channel namespace, explore_cleanup scheduler labels, explore config group, channels_explore quota label.
This commit is contained in:
parent
bc4c362423
commit
cc1e670202
18 changed files with 744 additions and 120 deletions
20
frontend/src/i18n/locales/de/channel.json
Normal file
20
frontend/src/i18n/locales/de/channel.json
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"back": "Zurück",
|
||||
"exploringBadge": "Erkunden",
|
||||
"subscribe": "Abonnieren",
|
||||
"subscribedState": "Abonniert",
|
||||
"unsubscribe": "Abbestellen",
|
||||
"unsubTitle": "Abbestellen?",
|
||||
"unsubBody": "{{name}} auf YouTube nicht mehr folgen?",
|
||||
"subscribed": "{{name}} abonniert",
|
||||
"subscribers": "{{formatted}} Abonnenten",
|
||||
"videoCount_one": "{{count}} Video",
|
||||
"videoCount_other": "{{count}} Videos",
|
||||
"totalViews": "{{formatted}} Aufrufe",
|
||||
"joined": "Beigetreten {{date}}",
|
||||
"loadingVideos": "Videos dieses Kanals werden geladen…",
|
||||
"tabVideos": "Videos",
|
||||
"tabAbout": "Info",
|
||||
"loadMore": "Mehr von YouTube laden",
|
||||
"noDescription": "Dieser Kanal hat keine Beschreibung."
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue