Improve performance a bit

This commit is contained in:
Jon Staab
2024-12-09 14:03:59 -08:00
parent 880093296e
commit ea0e1a6c9a
4 changed files with 35 additions and 48 deletions

View File

@@ -1,17 +1,13 @@
<script lang="ts">
import {fromPairs} from "@welshman/lib"
import {secondsToDate, getLocale, formatTimestamp, formatTimestampAsDate} from "@welshman/app"
import {formatTimestamp, formatTimestampAsDate, formatTimestampAsTime} from "@welshman/app"
import Icon from "@lib/components/Icon.svelte"
export let event
const timeFmt = new Intl.DateTimeFormat(getLocale(), {timeStyle: "short"})
$: meta = fromPairs(event.tags) as Record<string, string>
$: end = parseInt(meta.end)
$: start = parseInt(meta.start)
$: startDate = secondsToDate(start)
$: endDate = secondsToDate(end)
$: startDateDisplay = formatTimestampAsDate(start)
$: endDateDisplay = formatTimestampAsDate(end)
$: isSingleDay = startDateDisplay === endDateDisplay
@@ -21,6 +17,8 @@
<span>{meta.title || meta.name}</span>
<div class="flex items-center gap-2 text-sm">
<Icon icon="clock-circle" size={4} />
{timeFmt.format(startDate)}{isSingleDay ? timeFmt.format(endDate) : formatTimestamp(end)}
{formatTimestampAsTime(start)}{isSingleDay
? formatTimestampAsTime(end)
: formatTimestamp(end)}
</div>
</div>

View File

@@ -46,7 +46,7 @@ import {
getDefaultNetContext,
makeRouter,
tracker,
trackerStore,
makeTrackerStore,
relay,
getSession,
getSigner,
@@ -224,6 +224,8 @@ export const pullConservatively = ({relays, filters}: AppSyncOpts) => {
return Promise.all(promises)
}
export const trackerStore = makeTrackerStore()
export const deriveEvent = (idOrAddress: string, hints: string[] = []) => {
let attempted = false

View File

@@ -150,7 +150,6 @@
setupAnalytics()
ready = initStorage("flotilla", 4, {
events: storageAdapters.fromRepository(repository, {throttle: 300, migrate: migrateEvents}),
relays: {keyPath: "url", store: throttled(1000, relays)},
handles: {keyPath: "nip05", store: throttled(1000, handles)},
checked: storageAdapters.fromObjectStore(checked, {throttle: 1000}),
@@ -162,7 +161,10 @@
throttle: 1000,
migrate: migratePlaintext,
}),
tracker: storageAdapters.fromTracker(tracker, {throttle: 1000}),
events: storageAdapters.fromRepositoryAndTracker(repository, tracker, {
throttle: 3000,
migrate: migrateEvents,
}),
}).then(() => sleep(300))
// Unwrap gift wraps as they come in, but throttled

View File

@@ -1,12 +1,3 @@
<script lang="ts" context="module">
type Element = {
id: string
type: "date" | "note"
value: string | TrustedEvent
showPubkey: boolean
}
</script>
<script lang="ts">
import {nip19} from "nostr-tools"
import {onMount, onDestroy} from "svelte"
@@ -49,7 +40,7 @@
const {room = GENERAL} = $page.params
const content = popKey<string>("content") || ""
const url = decodeRelay($page.params.relay)
const events = deriveChannelMessages(url, room)
const events = throttled(300, deriveChannelMessages(url, room))
const assertEvent = (e: any) => e as TrustedEvent
@@ -76,11 +67,7 @@
let scroller: Scroller
let editor: Readable<Editor>
const elements = throttled(
300,
derived(
events,
$events => {
const elements = derived(events, $events => {
const $elements = []
let previousDate
@@ -106,9 +93,7 @@
}
return $elements.reverse().slice(0, limit)
}
)
)
})
onMount(async () => {
// Sveltekiiit