fix(app): defer unavailable notification state (#38186)
Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com>
This commit is contained in:
co-authored by
Luke Parker
parent
4438f69aac
commit
130038eb63
@@ -13,7 +13,6 @@ export function useSessionTabAvatarState(
|
|||||||
const global = useGlobal()
|
const global = useGlobal()
|
||||||
const notification = useNotification()
|
const notification = useNotification()
|
||||||
const permission = usePermission()
|
const permission = usePermission()
|
||||||
const permissionState = createMemo(() => permission.ensureServerState(server()))
|
|
||||||
const connection = createMemo(() => global.servers.list().find((item) => ServerConnection.key(item) === server()))
|
const connection = createMemo(() => global.servers.list().find((item) => ServerConnection.key(item) === server()))
|
||||||
const sync = createMemo(() => {
|
const sync = createMemo(() => {
|
||||||
const conn = connection()
|
const conn = connection()
|
||||||
@@ -22,9 +21,10 @@ export function useSessionTabAvatarState(
|
|||||||
const hasPermissions = createMemo(() => {
|
const hasPermissions = createMemo(() => {
|
||||||
const serverSync = sync()
|
const serverSync = sync()
|
||||||
if (!serverSync) return false
|
if (!serverSync) return false
|
||||||
|
const permissionState = permission.ensureServerState(server())
|
||||||
const [store] = serverSync.child(directory(), { bootstrap: false })
|
const [store] = serverSync.child(directory(), { bootstrap: false })
|
||||||
return !!sessionPermissionRequest(store.session, serverSync.session.data.permission, sessionId(), (item) => {
|
return !!sessionPermissionRequest(store.session, serverSync.session.data.permission, sessionId(), (item) => {
|
||||||
return !permissionState().autoResponds(item, directory())
|
return !permissionState.autoResponds(item, directory())
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
const hasQuestions = createMemo(() => {
|
const hasQuestions = createMemo(() => {
|
||||||
@@ -34,9 +34,11 @@ export function useSessionTabAvatarState(
|
|||||||
return !!sessionQuestionRequest(store.session, serverSync.session.data.question, sessionId())
|
return !!sessionQuestionRequest(store.session, serverSync.session.data.question, sessionId())
|
||||||
})
|
})
|
||||||
const needsAttention = createMemo(() => hasPermissions() || hasQuestions())
|
const needsAttention = createMemo(() => hasPermissions() || hasQuestions())
|
||||||
const unread = createMemo(
|
const notificationState = createMemo(() => {
|
||||||
() => needsAttention() || notification.ensureServerState(server()).session.unseenCount(sessionId()) > 0,
|
if (!connection()) return
|
||||||
)
|
return notification.ensureServerState(server())
|
||||||
|
})
|
||||||
|
const unread = createMemo(() => needsAttention() || (notificationState()?.session.unseenCount(sessionId()) ?? 0) > 0)
|
||||||
const loading = createMemo(() => {
|
const loading = createMemo(() => {
|
||||||
const serverSync = sync()
|
const serverSync = sync()
|
||||||
if (!serverSync) return false
|
if (!serverSync) return false
|
||||||
|
|||||||
Reference in New Issue
Block a user