import { setWindowTitle } from '@yaakapp-internal/mac-window'; import { settingsAtom } from '@yaakapp-internal/models'; import { useAtomValue } from 'jotai'; import { useEffect } from 'react'; import { appInfo } from '../lib/appInfo'; import { jotaiStore } from '../lib/jotai'; import { resolvedModelName } from '../lib/resolvedModelName'; import { useActiveEnvironment } from './useActiveEnvironment'; import { activeRequestAtom } from './useActiveRequest'; import { activeWorkspaceAtom } from './useActiveWorkspace'; export function useSyncWorkspaceRequestTitle() { const activeWorkspace = useAtomValue(activeWorkspaceAtom); const activeEnvironment = useActiveEnvironment(); const activeRequest = useAtomValue(activeRequestAtom); useEffect(() => { const settings = jotaiStore.get(settingsAtom); let newTitle = activeWorkspace ? activeWorkspace.name : 'Yaak'; if (activeEnvironment) { newTitle += ` (${activeEnvironment.name})`; } if (!settings.useNativeTitlebar && activeRequest) { newTitle += ` › ${resolvedModelName(activeRequest)}`; } if (appInfo.isDev) { newTitle = `[DEV] ${newTitle}`; } setWindowTitle(newTitle); }, [activeEnvironment, activeRequest, activeWorkspace]); }