Skip to content

Commit

Permalink
problem: renderQ doesn't persist across nav changes
Browse files Browse the repository at this point in the history
  • Loading branch information
gsovereignty committed Apr 29, 2024
1 parent 04e8ba7 commit 819ae24
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 13 deletions.
7 changes: 7 additions & 0 deletions src/lib/stores/shortlist.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import type { NostrEvent } from "nostr-tools";
import { writable, type Readable, type Writable } from "svelte/store";

export let shortListLength: Readable<number>;

let _stableShortlist: NostrEvent[] = [];
export let stableShortList: Writable<NostrEvent[]> = writable(_stableShortlist);
15 changes: 6 additions & 9 deletions src/lib/views/messages/Messages.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@
import { currentUser, ndk } from '@/ndk/ndk';
import { PushEvent, FrontendDataStore as feds, viewed } from '@/snort_workers/main';
import { updateRepliesInPlace } from '@/snort_workers/utils';
import { stableShortList } from '@/stores/shortlist';
import { NDKEvent } from '@nostr-dev-kit/ndk';
import { RequestBuilder, type QueryLike } from '@snort/system';
import { BloomFilter } from 'bloomfilter';
import type { NostrEvent } from 'nostr-tools';
import { ArrowTurnUpSolid } from 'svelte-awesome-icons';
import { derived, writable, type Writable } from 'svelte/store';
import { derived, writable } from 'svelte/store';
import RenderKind1 from './RenderKind1.svelte';
import RenderKind1AsThreadHead from './RenderKind1AsThreadHead.svelte';
import { System } from './snort';
Expand Down Expand Up @@ -76,14 +77,12 @@
}
});
let _stableShortlist: NostrEvent[] = [];
let stableShortList: Writable<NostrEvent[]> = writable(_stableShortlist);
let q: QueryLike;
threadParentID.subscribe((parentID) => {
_stableShortlist = [];
stableShortList.set(_stableShortlist);
stableShortList.set([]);
if (parentID != 'root' && parentID.length == 64) {
if (q) {
q.cancel();
Expand Down Expand Up @@ -120,7 +119,7 @@
([$renderQ, $viewed, $parentID]) => {
let dirty = false;
let updated: NostrEvent[] = [];
for (let e of _stableShortlist) {
for (let e of $stableShortList) {
if (!$viewed.has(e.id) || $parentID != 'root') {
//console.log(72, e.id);
updated.push(e);
Expand Down Expand Up @@ -148,14 +147,13 @@
}
}
if (dirty) {
_stableShortlist = updated;
stableShortList.update((c) => {
c = updated;
return c;
});
//console.log(90);
}
return _stableShortlist.length;
return $stableShortList.length;
}
);
Expand All @@ -181,7 +179,6 @@
{#if $stableShortList.length > 0 || $threadParentID != 'root'}
{#if $threadParentID != 'root'}
<RenderKind1AsThreadHead
store={FrontendDataStore}
note={$FrontendDataStore.events.get($threadParentID)}
/>
{/if}
Expand Down
4 changes: 2 additions & 2 deletions src/lib/views/messages/RenderKind1.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import type { NostrEvent } from 'nostr-tools';
import Zap from './Zap.svelte';
import Reply from './Reply.svelte';
import { derived, type Writable } from 'svelte/store';
import { derived, type Readable, type Writable } from 'svelte/store';
import type { FrontendData } from '@/snort_workers/types';
import { inview } from 'svelte-inview';
import { onMount } from 'svelte';
Expand All @@ -14,7 +14,7 @@
export let note: NostrEvent;
export let onClickReply: () => void;
export let store: Writable<FrontendData>;
export let store: Readable<FrontendData>;
export let isTop: boolean = false;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/views/messages/RenderKind1AsThreadHead.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
import { type Writable } from 'svelte/store';
export let note: NostrEvent;
export let store: Writable<FrontendData>;
//export let store: Writable<FrontendData>;
let top: HTMLDivElement;
$: childrenCount = $store?.replies.get(note.id) ? $store.replies.get(note.id)!.size : 0;
//$: childrenCount = $store?.replies.get(note.id) ? $store.replies.get(note.id)!.size : 0;
</script>

<div class="w-full pt-2 pl-2 pr-2">
Expand Down

0 comments on commit 819ae24

Please sign in to comment.