diff --git a/.ackrc b/.ackrc index 970f0c32..a9981c13 100644 --- a/.ackrc +++ b/.ackrc @@ -1 +1,2 @@ --ignore-dir=.svelte-kit +--ignore-dir=build diff --git a/README.md b/README.md index 37a35e6b..c90081b9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ # Flotilla A discord-like nostr client. WIP. - -Figure out state management. Add fetched_at to all events. `fetch` batches and loads, `get` gets the value, `derive` returns a store. For optimization, create getters for everything that uses `get` a lot. diff --git a/src/app/state.ts b/src/app/state.ts index b6992cbb..c5b51402 100644 --- a/src/app/state.ts +++ b/src/app/state.ts @@ -669,36 +669,36 @@ export const groupMessages = deriveEventsMapped(repository, { itemToEvent: item => item.event, }) -// Group Conversations +// Group Chats -export type GroupConversation = { +export type GroupChat = { nom: string messages: GroupMessage[] } -export const groupConversations = derived(groupMessages, $groupMessages => { +export const groupChats = derived(groupMessages, $groupMessages => { const groupMessagesByNom = groupBy($groupMessage => $groupMessage.nom, $groupMessages) return Array.from(groupMessagesByNom.entries()).map(([nom, messages]) => ({nom, messages})) }) export const { - indexStore: groupConversationByNom, - getIndex: getGroupConversationsByNom, - deriveItem: deriveGroupConversation, - loadItem: loadGroupConversation, + indexStore: groupChatByNom, + getIndex: getGroupChatsByNom, + deriveItem: deriveGroupChat, + loadItem: loadGroupChat, } = createCollection({ - name: "groupConversations", - store: groupConversations, - getKey: groupConversation => groupConversation.nom, + name: "groupChats", + store: groupChats, + getKey: groupChat => groupChat.nom, load: (nom: string, hints = [], request: Partial = {}) => { const relays = [...hints, ...(get(relayUrlsByNom).get(nom) || [])] - const conversation = get(groupConversations).find(c => c.nom === nom) - const timestamps = conversation?.messages.map(m => m.event.created_at) || [] + const chat = get(groupChats).find(c => c.nom === nom) + const timestamps = chat?.messages.map(m => m.event.created_at) || [] const since = Math.max(0, max(timestamps) - 3600) if (relays.length === 0) { - console.warn(`Attempted to load conversation for ${nom} with no qualified groups`) + console.warn(`Attempted to load chat for ${nom} with no qualified groups`) } return load({...request, relays, filters: [{"#h": [nom], since}]}) diff --git a/src/routes/home/+layout.svelte b/src/routes/home/+layout.svelte index ea138ca6..045a15fa 100644 --- a/src/routes/home/+layout.svelte +++ b/src/routes/home/+layout.svelte @@ -27,7 +27,7 @@
- Conversations + Chats
diff --git a/src/routes/spaces/[nom]/[[room]]/+page.svelte b/src/routes/spaces/[nom]/[[room]]/+page.svelte index 3d78c599..866eb1e4 100644 --- a/src/routes/spaces/[nom]/[[room]]/+page.svelte +++ b/src/routes/spaces/[nom]/[[room]]/+page.svelte @@ -16,10 +16,10 @@ import Spinner from "@lib/components/Spinner.svelte" import GroupNote from "@app/components/GroupNote.svelte" import GroupCompose from "@app/components/GroupCompose.svelte" - import {deriveGroupConversation} from "@app/state" + import {deriveGroupChat} from "@app/state" const {nom} = $page.params - const conversation = deriveGroupConversation(nom) + const chat = deriveGroupChat(nom) const assertEvent = (e: any) => e as TrustedEvent @@ -32,7 +32,7 @@ let previousDate let previousPubkey - for (const {event} of sortBy(m => m.event.created_at, $conversation?.messages || [])) { + for (const {event} of sortBy(m => m.event.created_at, $chat?.messages || [])) { const {id, pubkey, created_at} = event const date = formatTimestampAsDate(created_at)