mirror of
https://github.com/coracle-social/coracle.git
synced 2024-09-29 00:10:52 +00:00
Fixed slow leaving/joining chat rooms
This commit is contained in:
parent
e42c217f01
commit
57451f120a
@ -65,8 +65,7 @@ If you like Coracle and want to support its development, you can donate sats via
|
||||
|
||||
# Current
|
||||
|
||||
- [ ] Switch from threshold to percentage, make it a setting
|
||||
- [ ] Try switching to rxdb https://rxdb.info/
|
||||
- [ ] Make threshold it a setting, or maybe avoid `load` altogether
|
||||
- [ ] Add modal for follows/followers
|
||||
- [ ] Implement gossip model https://bountsr.org/code/2023/02/03/gossip-model.html
|
||||
- [ ] Make feeds page customizable. This could potentially use the "lists" NIP
|
||||
@ -76,6 +75,11 @@ If you like Coracle and want to support its development, you can donate sats via
|
||||
|
||||
# Changelog
|
||||
|
||||
## 0.2.11
|
||||
|
||||
- [x] Converted threshold to percentage
|
||||
- [x] Fixed slow leaving/joining chat rooms
|
||||
|
||||
## 0.2.10
|
||||
|
||||
- [x] Fixed likes not showing up in alerts
|
||||
|
@ -1,5 +1,5 @@
|
||||
import Dexie, {liveQuery} from 'dexie'
|
||||
import {pick} from 'ramda'
|
||||
import {pick, isEmpty} from 'ramda'
|
||||
import {nip05} from 'nostr-tools'
|
||||
import {writable} from 'svelte/store'
|
||||
import {noop, ensurePlural, createMap, switcherFn} from 'hurdak/lib/hurdak'
|
||||
@ -133,7 +133,9 @@ const processProfileEvents = async events => {
|
||||
}
|
||||
}
|
||||
|
||||
await updatePeople(updates)
|
||||
if (!isEmpty(updates)) {
|
||||
await updatePeople(updates)
|
||||
}
|
||||
}
|
||||
|
||||
const processRoomEvents = async events => {
|
||||
@ -158,7 +160,7 @@ const processRoomEvents = async events => {
|
||||
const room = await db.table('rooms').get(roomId)
|
||||
|
||||
// Merge edits but don't let old ones override new ones
|
||||
if (room?.edited_at > e.created_at) {
|
||||
if (room?.edited_at >= e.created_at) {
|
||||
continue
|
||||
}
|
||||
|
||||
@ -178,7 +180,9 @@ const processRoomEvents = async events => {
|
||||
}
|
||||
}
|
||||
|
||||
await db.table('rooms').bulkPut(Object.values(updates))
|
||||
if (!isEmpty(updates)) {
|
||||
await db.table('rooms').bulkPut(Object.values(updates))
|
||||
}
|
||||
}
|
||||
|
||||
const processMessages = async events => {
|
||||
|
@ -1,10 +1,9 @@
|
||||
<script lang="ts">
|
||||
import {liveQuery} from 'dexie'
|
||||
import {pluck} from 'ramda'
|
||||
import {nip19} from 'nostr-tools'
|
||||
import {now, batch} from 'src/util/misc'
|
||||
import Channel from 'src/partials/Channel.svelte'
|
||||
import {getRelays, user, db, listen, load} from 'src/agent'
|
||||
import {lq, getRelays, user, db, listen, load} from 'src/agent'
|
||||
import {modal} from 'src/app'
|
||||
import loaders from 'src/app/loaders'
|
||||
import cmd from 'src/app/cmd'
|
||||
@ -12,7 +11,7 @@
|
||||
export let entity
|
||||
|
||||
let {data: roomId} = nip19.decode(entity) as {data: string}
|
||||
let room = liveQuery(() => db.table('rooms').where('id').equals(roomId).first())
|
||||
let room = lq(() => db.table('rooms').where('id').equals(roomId).first())
|
||||
|
||||
const getRoomRelays = $room => {
|
||||
let relays = getRelays()
|
||||
|
@ -1,11 +1,10 @@
|
||||
<script lang="ts">
|
||||
import {liveQuery} from 'dexie'
|
||||
import {nip19} from 'nostr-tools'
|
||||
import {sortBy, pluck} from 'ramda'
|
||||
import {personKinds} from 'src/util/nostr'
|
||||
import {batch, now} from 'src/util/misc'
|
||||
import Channel from 'src/partials/Channel.svelte'
|
||||
import {getRelays, user, db, listen, keys} from 'src/agent'
|
||||
import {lq, getRelays, user, db, listen, keys} from 'src/agent'
|
||||
import {messages} from 'src/app'
|
||||
import {routes} from 'src/app/ui'
|
||||
import cmd from 'src/app/cmd'
|
||||
@ -14,7 +13,7 @@
|
||||
|
||||
let crypt = keys.getCrypt()
|
||||
let {data: pubkey} = nip19.decode(entity) as {data: string}
|
||||
let person = liveQuery(() => db.table('people').get(pubkey))
|
||||
let person = lq(() => db.table('people').get(pubkey))
|
||||
|
||||
messages.lastCheckedByPubkey.update($obj => ({...$obj, [pubkey]: now()}))
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
<script>
|
||||
import {liveQuery} from 'dexie'
|
||||
import {pluck} from 'ramda'
|
||||
import {noop, createMap} from 'hurdak/lib/hurdak'
|
||||
import {onMount} from 'svelte'
|
||||
@ -10,7 +9,7 @@
|
||||
import Anchor from "src/partials/Anchor.svelte"
|
||||
import Content from "src/partials/Content.svelte"
|
||||
import RelayCard from "src/partials/RelayCard.svelte"
|
||||
import {pool, db, user, ready} from "src/agent"
|
||||
import {lq, pool, db, user, ready} from "src/agent"
|
||||
import {modal, settings} from "src/app"
|
||||
import defaults from "src/agent/defaults"
|
||||
|
||||
@ -32,7 +31,7 @@
|
||||
db.table('relays').put(relay)
|
||||
}
|
||||
|
||||
const knownRelays = liveQuery(() => db.table('relays').toArray())
|
||||
const knownRelays = lq(() => db.table('relays').toArray())
|
||||
|
||||
$: {
|
||||
const joined = pluck('url', $user?.relays || [])
|
||||
|
@ -1,5 +1,4 @@
|
||||
<script>
|
||||
import {liveQuery} from 'dexie'
|
||||
import {onMount} from "svelte"
|
||||
import {quantify} from 'hurdak/lib/hurdak'
|
||||
import {last, whereEq, find, reject, propEq} from 'ramda'
|
||||
@ -13,7 +12,7 @@
|
||||
import Content from "src/partials/Content.svelte"
|
||||
import Modal from "src/partials/Modal.svelte"
|
||||
import Heading from 'src/partials/Heading.svelte'
|
||||
import {user, db, getRelays} from "src/agent"
|
||||
import {lq, user, db, getRelays} from "src/agent"
|
||||
import {toast, modal} from "src/app"
|
||||
import cmd from "src/app/cmd"
|
||||
|
||||
@ -23,7 +22,7 @@
|
||||
let q = ''
|
||||
let search
|
||||
|
||||
const knownRelays = liveQuery(() => db.table('relays').toArray())
|
||||
const knownRelays = lq(() => db.table('relays').toArray())
|
||||
|
||||
$: {
|
||||
const data = reject(({url}) => find(whereEq({url}), relays), $knownRelays || [])
|
||||
|
Loading…
Reference in New Issue
Block a user