mirror of
https://github.com/pockethost/pockethost.git
synced 2025-11-24 06:25:48 +00:00
enh: realtime user record updates
This commit is contained in:
parent
95bf887b36
commit
6b9773a23d
@ -99,10 +99,11 @@ export const init = () => {
|
|||||||
const user = authStoreProps.model as UserFields
|
const user = authStoreProps.model as UserFields
|
||||||
userStore.set(isLoggedIn ? user : undefined)
|
userStore.set(isLoggedIn ? user : undefined)
|
||||||
isAuthStateInitialized.set(true)
|
isAuthStateInitialized.set(true)
|
||||||
|
tryUserSubscribe(user?.id)
|
||||||
})
|
})
|
||||||
|
|
||||||
userStore.subscribe((user) => {
|
userStore.subscribe((user) => {
|
||||||
console.log({ user })
|
console.log(`userStore.subscribe`, { user })
|
||||||
isUserPaid.set(
|
isUserPaid.set(
|
||||||
[
|
[
|
||||||
SubscriptionType.Founder,
|
SubscriptionType.Founder,
|
||||||
@ -158,3 +159,31 @@ export const init = () => {
|
|||||||
tryInstanceSubscribe()
|
tryInstanceSubscribe()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const tryUserSubscribe = (() => {
|
||||||
|
let unsub: UnsubscribeFunc | undefined
|
||||||
|
let tid: NodeJS.Timeout | undefined
|
||||||
|
|
||||||
|
const _trySubscribe = (id?: string) => {
|
||||||
|
clearTimeout(tid)
|
||||||
|
unsub?.()
|
||||||
|
unsub = undefined
|
||||||
|
if (!id) return
|
||||||
|
console.log('Subscribing to user', id)
|
||||||
|
client()
|
||||||
|
.client.collection('users')
|
||||||
|
.subscribe<UserFields>(id, (data) => {
|
||||||
|
console.log('User subscribed update', data)
|
||||||
|
userStore.set(data.record)
|
||||||
|
})
|
||||||
|
.then((u) => {
|
||||||
|
unsub = u
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
console.error('Failed to subscribe to user')
|
||||||
|
tid = setTimeout(_trySubscribe, 1000)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return _trySubscribe
|
||||||
|
})()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user