rename conversations to rooms

This commit is contained in:
Jon Staab
2024-08-22 12:21:54 -07:00
parent a911bb5100
commit ae6c03d975
5 changed files with 18 additions and 19 deletions
+1
View File
@@ -1 +1,2 @@
--ignore-dir=.svelte-kit
--ignore-dir=build
-2
View File
@@ -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.
+13 -13
View File
@@ -669,36 +669,36 @@ export const groupMessages = deriveEventsMapped<GroupMessage>(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<SubscribeRequest> = {}) => {
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}]})
+1 -1
View File
@@ -27,7 +27,7 @@
</div>
<div in:fly={{delay: 150}}>
<SecondaryNavHeader>
Conversations
Chats
<div class="cursor-pointer">
<Icon icon="add-circle" />
</div>
@@ -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)