codev / desktop /src /lib /desktopNotificationNavigation.ts
chenbhao's picture
feat: desktop
1f21206
Raw
History Blame
1.03 kB
import { useChatStore } from '../stores/chatStore'
import { useSessionStore } from '../stores/sessionStore'
import { SCHEDULED_TAB_ID, useTabStore } from '../stores/tabStore'
import {
installDesktopNotificationClickListener,
type DesktopNotificationTarget,
} from './desktopNotifications'
const SCHEDULED_TAB_TITLE = 'Scheduled Tasks'
export function openDesktopNotificationTarget(target: DesktopNotificationTarget): void {
if (target.type === 'scheduled') {
useTabStore.getState().openTab(SCHEDULED_TAB_ID, SCHEDULED_TAB_TITLE, 'scheduled')
return
}
const knownTitle = useSessionStore
.getState()
.sessions
.find((session) => session.id === target.sessionId)
?.title
useTabStore.getState().openTab(target.sessionId, target.title || knownTitle || 'Session', 'session')
useChatStore.getState().connectToSession(target.sessionId)
}
export function installDesktopNotificationNavigation(): Promise<() => void> {
return installDesktopNotificationClickListener(openDesktopNotificationTarget)
}