feat(channels): add a Hidden tab; move hidden channels out of Subscriptions (R13 S2)
Hidden subscriptions get their own tab (mirroring Blocked): a flat list with an Unhide action, instead of dimmed rows scattered through the Subscriptions table. - ChannelsView += "hidden"; the subscribed table now EXCLUDES hidden channels, so hiding a channel (the eye button) moves it to the Hidden tab and unhiding (Eye) returns it — both via the existing patch mutation. - The "Hidden" top-level status chip is dropped (ChannelStatusFilter loses "hidden"); the status row is now purely sync-status (all/needs_full/fully_synced). - Bilingual i18n (en/hu): channels.tabs.hidden + a channels.hidden block; the now unused channels.filters.hidden removed. Hidden = out of the personal (Mine) feed only, still in the shared Library — a softer exclusion than Blocked (hidden everywhere). Gate green: tsc/eslint-0/ prettier/vitest 106. Self-E2E'd: hide → appears in Hidden tab → unhide → back, all /api 200.
This commit is contained in:
@@ -27,18 +27,13 @@ import type { ChannelStatusFilter, ChannelsView } from "./Channels";
|
||||
// per-account persisted (localStorage); search / focus / the reset token are ephemeral. An account
|
||||
// switch does a full reload, so init-from-storage is all the hydration the persisted ones need.
|
||||
|
||||
const STATUS_FILTERS: readonly ChannelStatusFilter[] = [
|
||||
"needs_full",
|
||||
"fully_synced",
|
||||
"hidden",
|
||||
"all",
|
||||
];
|
||||
const STATUS_FILTERS: readonly ChannelStatusFilter[] = ["needs_full", "fully_synced", "all"];
|
||||
|
||||
function clampStatus(v: string | null): ChannelStatusFilter {
|
||||
return STATUS_FILTERS.includes(v as ChannelStatusFilter) ? (v as ChannelStatusFilter) : "all";
|
||||
}
|
||||
function clampView(v: string | null): ChannelsView {
|
||||
return v === "discovery" ? "discovery" : v === "blocked" ? "blocked" : "subscribed";
|
||||
return v === "discovery" || v === "blocked" || v === "hidden" ? v : "subscribed";
|
||||
}
|
||||
|
||||
type ChannelsState = {
|
||||
|
||||
Reference in New Issue
Block a user