Files
welshman/packages/app/src/user.ts
T
2024-10-02 11:51:22 -07:00

67 lines
1.7 KiB
TypeScript

import {derived} from 'svelte/store'
import {pubkey} from './session'
import {profilesByPubkey, loadProfile} from './profiles'
import {followsByPubkey, loadFollows} from './follows'
import {mutesByPubkey, loadMutes} from './mutes'
import {relaySelectionsByPubkey, inboxRelaySelectionsByPubkey, loadRelaySelections, loadInboxRelaySelections} from './relaySelections'
import {wotGraph} from './wot'
export const userProfile = derived(
[profilesByPubkey, pubkey],
([$profilesByPubkey, $pubkey]) => {
if (!$pubkey) return undefined
loadProfile($pubkey)
return $profilesByPubkey.get($pubkey)
}
)
export const userFollows = derived(
[followsByPubkey, pubkey],
([$followsByPubkey, $pubkey]) => {
if (!$pubkey) return undefined
loadFollows($pubkey)
return $followsByPubkey.get($pubkey)
}
)
export const userMutes = derived(
[mutesByPubkey, pubkey],
([$mutesByPubkey, $pubkey]) => {
if (!$pubkey) return undefined
loadMutes($pubkey)
return $mutesByPubkey.get($pubkey)
}
)
export const userRelaySelections = derived(
[relaySelectionsByPubkey, pubkey],
([$relaySelectionsByPubkey, $pubkey]) => {
if (!$pubkey) return undefined
loadRelaySelections($pubkey)
return $relaySelectionsByPubkey.get($pubkey)
}
)
export const userInboxRelaySelections = derived(
[inboxRelaySelectionsByPubkey, pubkey],
([$inboxRelaySelectionsByPubkey, $pubkey]) => {
if (!$pubkey) return undefined
loadInboxRelaySelections($pubkey)
return $inboxRelaySelectionsByPubkey.get($pubkey)
}
)
export const getUserWotScore = (tpk: string) => wotGraph.get().get(tpk) || 0
export const deriveUserWotScore = (tpk: string) => derived(wotGraph, $g => $g.get(tpk) || 0)