diff --git a/src/lib/components/EmojiButton.svelte b/src/lib/components/EmojiButton.svelte
index abdf3d7..1a5171b 100644
--- a/src/lib/components/EmojiButton.svelte
+++ b/src/lib/components/EmojiButton.svelte
@@ -18,10 +18,12 @@
}
const onMouseMove = throttle(300, ({clientX, clientY}: any) => {
- const {x, y, width, height} = popover.popper.getBoundingClientRect()
+ if (popover) {
+ const {x, y, width, height} = popover.popper.getBoundingClientRect()
- if (!between([x, x + width], clientX) || !between([y - 30, y + height + 30], clientY)) {
- popover.hide()
+ if (!between([x, x + width], clientX) || !between([y - 30, y + height + 30], clientY)) {
+ popover.hide()
+ }
}
})
diff --git a/src/lib/components/Link.svelte b/src/lib/components/Link.svelte
index 7919163..11fa7d7 100644
--- a/src/lib/components/Link.svelte
+++ b/src/lib/components/Link.svelte
@@ -3,12 +3,13 @@
export let href
export let external = false
+ export let replaceState = false
const go = (e: Event) => {
if (!external) {
e.preventDefault()
- goto(href)
+ goto(href, {replaceState})
}
}
diff --git a/src/routes/spaces/[relay]/+layout.svelte b/src/routes/spaces/[relay]/+layout.svelte
index 7691385..61cb51f 100644
--- a/src/routes/spaces/[relay]/+layout.svelte
+++ b/src/routes/spaces/[relay]/+layout.svelte
@@ -1,20 +1,26 @@
diff --git a/src/routes/spaces/[relay]/+page.svelte b/src/routes/spaces/[relay]/+page.svelte
index 9115cc0..bc22b39 100644
--- a/src/routes/spaces/[relay]/+page.svelte
+++ b/src/routes/spaces/[relay]/+page.svelte
@@ -13,15 +13,18 @@
import MenuSpace from "@app/components/MenuSpace.svelte"
import ThreadItem from "@app/components/ThreadItem.svelte"
import ThreadCreate from "@app/components/ThreadCreate.svelte"
- import {deriveEventsForUrl, decodeRelay} from "@app/state"
+ import {REPLY, deriveEventsForUrl, decodeRelay} from "@app/state"
import {pushModal, pushDrawer} from "@app/modal"
const url = decodeRelay($page.params.relay)
- const kinds = [NOTE]
- const feed = makeIntersectionFeed(makeRelayFeed(url), feedFromFilter({kinds}))
- const events = deriveEventsForUrl(url, kinds)
- const loader = feedLoader.getLoader(feed, {})
+ const events = deriveEventsForUrl(url, [NOTE])
const mutedPubkeys = getPubkeyTagValues(getListTags($userMutes))
+ const feed = makeIntersectionFeed(makeRelayFeed(url), feedFromFilter({kinds: [NOTE, REPLY]}))
+ const loader = feedLoader.getLoader(feed, {
+ onExhausted: () => {
+ loading = false
+ },
+ })
const openMenu = () => pushDrawer(MenuSpace, {url})
@@ -32,22 +35,21 @@
let element: Element
onMount(() => {
- const scroller = createScroller({
- element,
- onScroll: async () => {
- const $loader = await loader
+ // Why is element not defined sometimes? SVELTEKIT
+ if (element) {
+ const scroller = createScroller({
+ element,
+ onScroll: async () => {
+ const $loader = await loader
- await $loader(5)
- limit += 5
- },
- })
+ await $loader(5)
+ limit += 5
+ },
+ })
- return () => scroller.stop()
+ return () => scroller.stop()
+ }
})
-
- setTimeout(() => {
- loading = false
- }, 3000)
diff --git a/src/routes/spaces/[relay]/[room]/+page.svelte b/src/routes/spaces/[relay]/[room]/+page.svelte
index c7c0b79..adf6cdc 100644
--- a/src/routes/spaces/[relay]/[room]/+page.svelte
+++ b/src/routes/spaces/[relay]/[room]/+page.svelte
@@ -97,7 +97,7 @@
setTimeout(() => {
loading = false
- }, 3000)
+ }, 5000)
diff --git a/src/routes/spaces/[relay]/calendar/+page.svelte b/src/routes/spaces/[relay]/calendar/+page.svelte
index aca87fb..eda8952 100644
--- a/src/routes/spaces/[relay]/calendar/+page.svelte
+++ b/src/routes/spaces/[relay]/calendar/+page.svelte
@@ -63,7 +63,7 @@
setTimeout(() => {
loading = false
- }, 3000)
+ }, 5000)
diff --git a/src/routes/spaces/[relay]/threads/[id]/+page.svelte b/src/routes/spaces/[relay]/threads/[id]/+page.svelte
index 2acbba2..e51ed89 100644
--- a/src/routes/spaces/[relay]/threads/[id]/+page.svelte
+++ b/src/routes/spaces/[relay]/threads/[id]/+page.svelte
@@ -1,10 +1,12 @@
- {#if !showReply}
-
-
-
- {/if}
- {#each sortBy(e => -e.created_at, $replies) as reply (reply.id)}
-
-
-
+ {#if $event}
+ {#if !showReply}
+
+
-
+ {/if}
+ {#each sortBy(e => -e.created_at, $replies) as reply (reply.id)}
+
+
+
+
+
+
+ {/each}
+
+
+
+
+
- {/each}
-
-
-
-
-
-
+ {:else}
+ {#await sleep(5000)}
+
Loading thread...
+ {:then}
+
Failed to load thread.
+ {/await}
+ {/if}