mirror of
https://github.com/coracle-social/flotilla.git
synced 2025-12-11 03:17:02 +00:00
Add checked store and set data
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import twColors from "tailwindcss/colors"
|
||||
import {get, derived} from "svelte/store"
|
||||
import {get, derived, writable} from "svelte/store"
|
||||
import {nip19} from "nostr-tools"
|
||||
import type {Maybe} from "@welshman/lib"
|
||||
import {
|
||||
ctx,
|
||||
now,
|
||||
setContext,
|
||||
remove,
|
||||
assoc,
|
||||
@@ -16,6 +17,7 @@ import {
|
||||
nthEq,
|
||||
shuffle,
|
||||
parseJson,
|
||||
prop,
|
||||
} from "@welshman/lib"
|
||||
import {
|
||||
getIdFilters,
|
||||
@@ -259,6 +261,14 @@ export const deriveEventsForUrl = (url: string, filters: Filter[]) =>
|
||||
),
|
||||
)
|
||||
|
||||
// Last checked timestamps, notifications
|
||||
|
||||
export const checked = writable<Record<string, number>>({})
|
||||
|
||||
export const deriveChecked = (key: string) => derived(checked, prop(key))
|
||||
|
||||
export const setChecked = (key: string, ts = now()) => checked.update(assoc(key, ts))
|
||||
|
||||
// Settings
|
||||
|
||||
export const SETTINGS = 38489
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
<script lang="ts">
|
||||
import {onMount} from "svelte"
|
||||
import {page} from "$app/stores"
|
||||
import Chat from "@app/components/Chat.svelte"
|
||||
import {setChecked} from "@app/state"
|
||||
|
||||
onMount(() => {
|
||||
setChecked($page.url.pathname)
|
||||
})
|
||||
</script>
|
||||
|
||||
<Chat id={$page.params.chat} />
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<script lang="ts">
|
||||
import {onMount} from "svelte"
|
||||
import {page} from "$app/stores"
|
||||
import {deriveRelay} from "@welshman/app"
|
||||
import Icon from "@lib/components/Icon.svelte"
|
||||
@@ -10,7 +11,7 @@
|
||||
import ProfileFeed from "@app/components/ProfileFeed.svelte"
|
||||
import RelayName from "@app/components/RelayName.svelte"
|
||||
import RelayDescription from "@app/components/RelayDescription.svelte"
|
||||
import {decodeRelay} from "@app/state"
|
||||
import {decodeRelay, setChecked} from "@app/state"
|
||||
import {pushDrawer} from "@app/modal"
|
||||
import {makeChatPath} from "@app/routes"
|
||||
|
||||
@@ -20,6 +21,10 @@
|
||||
const openMenu = () => pushDrawer(MenuSpace, {url})
|
||||
|
||||
$: pubkey = $relay?.profile?.pubkey
|
||||
|
||||
onMount(() => {
|
||||
setChecked($page.url.pathname)
|
||||
})
|
||||
</script>
|
||||
|
||||
<div class="relative flex flex-col">
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
import {onMount} from "svelte"
|
||||
import {page} from "$app/stores"
|
||||
import {sortBy, append} from "@welshman/lib"
|
||||
import type {TrustedEvent, EventContent} from "@welshman/util"
|
||||
@@ -33,6 +34,7 @@
|
||||
MESSAGE,
|
||||
COMMENT,
|
||||
getMembershipRoomsByUrl,
|
||||
setChecked,
|
||||
} from "@app/state"
|
||||
import {addRoomMembership, removeRoomMembership} from "@app/commands"
|
||||
import {pushDrawer} from "@app/modal"
|
||||
@@ -89,6 +91,10 @@
|
||||
elements.reverse()
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
setChecked($page.url.pathname)
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
loading = false
|
||||
}, 5000)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
import EventItem from "@app/components/EventItem.svelte"
|
||||
import EventCreate from "@app/components/EventCreate.svelte"
|
||||
import {pushModal, pushDrawer} from "@app/modal"
|
||||
import {deriveEventsForUrl, pullConservatively, decodeRelay} from "@app/state"
|
||||
import {deriveEventsForUrl, pullConservatively, decodeRelay, setChecked} from "@app/state"
|
||||
|
||||
const url = decodeRelay($page.params.relay)
|
||||
const kinds = [EVENT_DATE, EVENT_TIME]
|
||||
@@ -54,6 +54,8 @@
|
||||
.slice(0, limit)
|
||||
|
||||
onMount(() => {
|
||||
setChecked($page.url.pathname)
|
||||
|
||||
const sub = subscribe({filters: [{kinds, since: ago(30)}]})
|
||||
|
||||
pullConservatively({filters: [{kinds}], relays: [url]})
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
import MenuSpace from "@app/components/MenuSpace.svelte"
|
||||
import ThreadItem from "@app/components/ThreadItem.svelte"
|
||||
import ThreadCreate from "@app/components/ThreadCreate.svelte"
|
||||
import {THREAD, COMMENT, decodeRelay} from "@app/state"
|
||||
import {THREAD, COMMENT, decodeRelay, setChecked} from "@app/state"
|
||||
import {pushModal, pushDrawer} from "@app/modal"
|
||||
|
||||
const url = decodeRelay($page.params.relay)
|
||||
@@ -33,6 +33,8 @@
|
||||
let events: TrustedEvent[] = []
|
||||
|
||||
onMount(() => {
|
||||
setChecked($page.url.pathname)
|
||||
|
||||
let unmounted = false
|
||||
|
||||
const ctrl = createFeedController({
|
||||
|
||||
Reference in New Issue
Block a user