From eb47da04176b85c1d4290ea0ad2f52d451d99cff Mon Sep 17 00:00:00 2001 From: Kieran Date: Tue, 14 Nov 2023 11:43:40 +0000 Subject: [PATCH] fix: context --- packages/app/src/Element/Feed/TimelineFollows.tsx | 9 ++++++--- packages/app/src/Element/Feed/TimelineFragment.tsx | 5 ++++- packages/system/src/nostr.ts | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/app/src/Element/Feed/TimelineFollows.tsx b/packages/app/src/Element/Feed/TimelineFollows.tsx index 4953ca23..119bf4f4 100644 --- a/packages/app/src/Element/Feed/TimelineFollows.tsx +++ b/packages/app/src/Element/Feed/TimelineFollows.tsx @@ -66,9 +66,7 @@ const TimelineFollows = (props: TimelineFollowsProps) => { const findHashTagContext = (a: NostrEvent) => { const tag = a.tags.filter(a => a[0] === "t").find(a => login.tags.item.includes(a[1].toLowerCase()))?.[1]; - if (tag) { - return {`#${tag}`}; - } + return tag; }; const mixinFiltered = useMemo(() => { const mainFeedIds = new Set(mainFeed.map(a => a.id)); @@ -114,6 +112,11 @@ const TimelineFollows = (props: TimelineFollowsProps) => { showLatest={t => onShowLatest(t)} noteOnClick={props.noteOnClick} noteRenderer={props.noteRenderer} + noteContext={e => { + if (typeof e.context === "string") { + return {`#${e.context}`}; + } + }} /> {sortedFeed.length > 0 && ( await FollowsFeed.loadMore(system, login, oldest ?? unixNow())} /> diff --git a/packages/app/src/Element/Feed/TimelineFragment.tsx b/packages/app/src/Element/Feed/TimelineFragment.tsx index f7b4cde6..175372ab 100644 --- a/packages/app/src/Element/Feed/TimelineFragment.tsx +++ b/packages/app/src/Element/Feed/TimelineFragment.tsx @@ -24,6 +24,7 @@ export interface TimelineRendererProps { showLatest: (toTop: boolean) => void; noteRenderer?: (ev: TaggedNostrEvent) => ReactNode; noteOnClick?: (ev: TaggedNostrEvent) => void; + noteContext?: (ev: TaggedNostrEvent) => ReactNode; } export function TimelineRenderer(props: TimelineRendererProps) { @@ -65,6 +66,7 @@ export function TimelineRenderer(props: TimelineRendererProps) { related={props.related} noteRenderer={props.noteRenderer} noteOnClick={props.noteOnClick} + noteContext={props.noteContext} /> ))} @@ -76,6 +78,7 @@ export interface TimelineFragProps { related: Array; noteRenderer?: (ev: TaggedNostrEvent) => ReactNode; noteOnClick?: (ev: TaggedNostrEvent) => void; + noteContext?: (ev: TaggedNostrEvent) => ReactNode; } export function TimelineFragment(props: TimelineFragProps) { @@ -97,7 +100,7 @@ export function TimelineFragment(props: TimelineFragProps) { key={e.id} depth={0} onClick={props.noteOnClick} - context={e.context} + context={props.noteContext?.(e)} /> ), )} diff --git a/packages/system/src/nostr.ts b/packages/system/src/nostr.ts index ed592dc4..6b74e16f 100644 --- a/packages/system/src/nostr.ts +++ b/packages/system/src/nostr.ts @@ -19,7 +19,7 @@ export interface TaggedNostrEvent extends NostrEvent { /** * Additional context */ - context?: never; + context?: object; } /**