fix(app): show unread for pending questions (#34684)
Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev>
This commit is contained in:
parent
c48b77d6f9
commit
c5fe32fbb1
1 changed files with 11 additions and 6 deletions
|
|
@ -2,8 +2,8 @@ import { createMemo, type Accessor } from "solid-js"
|
||||||
import { useGlobal } from "@/context/global"
|
import { useGlobal } from "@/context/global"
|
||||||
import { useNotification } from "@/context/notification"
|
import { useNotification } from "@/context/notification"
|
||||||
import { usePermission } from "@/context/permission"
|
import { usePermission } from "@/context/permission"
|
||||||
|
import { sessionPermissionRequest, sessionQuestionRequest } from "@/pages/session/composer/session-request-tree"
|
||||||
import { ServerConnection } from "@/context/server"
|
import { ServerConnection } from "@/context/server"
|
||||||
import { sessionPermissionRequest } from "@/pages/session/composer/session-request-tree"
|
|
||||||
|
|
||||||
export function useSessionTabAvatarState(
|
export function useSessionTabAvatarState(
|
||||||
server: Accessor<ServerConnection.Key>,
|
server: Accessor<ServerConnection.Key>,
|
||||||
|
|
@ -26,15 +26,20 @@ export function useSessionTabAvatarState(
|
||||||
return !permission.autoResponds(item, directory())
|
return !permission.autoResponds(item, directory())
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
const unread = createMemo(() => {
|
const hasQuestions = createMemo(() => {
|
||||||
if (hasPermissions()) return true
|
const serverSync = sync()
|
||||||
if (!connection()) return false
|
if (!serverSync) return false
|
||||||
return notification.ensureServerState(server()).session.unseenCount(sessionId()) > 0
|
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 loading = createMemo(() => {
|
||||||
const serverSync = sync()
|
const serverSync = sync()
|
||||||
if (!serverSync) return false
|
if (!serverSync) return false
|
||||||
if (hasPermissions()) return false
|
if (needsAttention()) return false
|
||||||
return serverSync.session.data.session_working(sessionId())
|
return serverSync.session.data.session_working(sessionId())
|
||||||
})
|
})
|
||||||
return { unread, loading }
|
return { unread, loading }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue