|
|
@@ -2,8 +2,8 @@ import { createMemo, type Accessor } from "solid-js"
|
|
|
import { useGlobal } from "@/context/global"
|
|
|
import { useNotification } from "@/context/notification"
|
|
|
import { usePermission } from "@/context/permission"
|
|
|
+import { sessionPermissionRequest, sessionQuestionRequest } from "@/pages/session/composer/session-request-tree"
|
|
|
import { ServerConnection } from "@/context/server"
|
|
|
-import { sessionPermissionRequest } from "@/pages/session/composer/session-request-tree"
|
|
|
|
|
|
export function useSessionTabAvatarState(
|
|
|
server: Accessor<ServerConnection.Key>,
|
|
|
@@ -26,15 +26,20 @@ export function useSessionTabAvatarState(
|
|
|
return !permission.autoResponds(item, directory())
|
|
|
})
|
|
|
})
|
|
|
- const unread = createMemo(() => {
|
|
|
- if (hasPermissions()) return true
|
|
|
- if (!connection()) return false
|
|
|
- return notification.ensureServerState(server()).session.unseenCount(sessionId()) > 0
|
|
|
+ const hasQuestions = createMemo(() => {
|
|
|
+ const serverSync = sync()
|
|
|
+ if (!serverSync) return false
|
|
|
+ const [store] = serverSync.child(directory(), { bootstrap: false })
|
|
|
+ return !!sessionQuestionRequest(store.session, serverSync.session.data.question, sessionId())
|
|
|
})
|
|
|
+ const needsAttention = createMemo(() => hasPermissions() || hasQuestions())
|
|
|
+ const unread = createMemo(
|
|
|
+ () => needsAttention() || notification.ensureServerState(server()).session.unseenCount(sessionId()) > 0,
|
|
|
+ )
|
|
|
const loading = createMemo(() => {
|
|
|
const serverSync = sync()
|
|
|
if (!serverSync) return false
|
|
|
- if (hasPermissions()) return false
|
|
|
+ if (needsAttention()) return false
|
|
|
return serverSync.session.data.session_working(sessionId())
|
|
|
})
|
|
|
return { unread, loading }
|