commit 88cd288250ae49ee3a56c61eca4220dfaa31917f
parent bb9e2de80439b6b207fac458f6643c51f30ca73a
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Thu, 2 Jul 2026 09:41:33 -0400
Phase 6b: provenance accent in the channel filter
Carry each federated site's accent into the channel-filter group headers so
origin is legible while refining a search (the filter already groups by site;
this colors each group by its source). ChannelGroup gains an optional accent,
set by MultiSiteDataProvider (group = origin → site accent) and rendered as a
small swatch before the group name.
Single-site mode is unaffected: its groups come from the manifest and carry no
accent, so no swatch renders (site-mode profile-row e2e green; hub e2e green).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat:
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/common/components/SearchDataContext.tsx b/common/components/SearchDataContext.tsx
@@ -231,6 +231,7 @@ export function MultiSiteDataProvider({
name: s.siteTitle,
selectedByDefault: true,
order: i,
+ ...(s.accent ? { accent: s.accent } : {}),
})),
[sites],
);
diff --git a/common/components/TranscriptSearch.tsx b/common/components/TranscriptSearch.tsx
@@ -1465,7 +1465,14 @@ export default function TranscriptSearch() {
>
<summary className="cursor-pointer select-none flex flex-wrap items-center gap-x-3 gap-y-1 px-3 py-1.5 text-sm">
{group.name && (
- <span className="font-medium text-foreground">
+ <span className="font-medium text-foreground inline-flex items-center gap-1.5">
+ {group.accent && (
+ <span
+ aria-hidden="true"
+ className="inline-block size-2 shrink-0 rounded-full"
+ style={{ background: group.accent }}
+ />
+ )}
{group.name}
</span>
)}
diff --git a/common/lib/channelGroups.ts b/common/lib/channelGroups.ts
@@ -10,6 +10,11 @@ export type ChannelGroup = {
description?: string;
selectedByDefault: boolean;
order?: number;
+ // Provenance accent, set only in hub mode where each group is a federated
+ // site (id = origin): the site's own accent, rendered as a swatch on the
+ // group header so origin is legible in the channel filter. Absent in
+ // single-site mode.
+ accent?: string;
};
export const DEFAULT_GROUP_FALLBACK_ID = "default";