Files
kandev/apps/web/hooks/use-session-model.ts
T
2026-01-21 20:54:41 +00:00

34 lines
1.1 KiB
TypeScript

import { useMemo } from 'react';
import { useAppStore } from '@/components/state-provider';
export function useSessionModel(
resolvedSessionId: string | null,
agentProfileId: string | null | undefined
) {
// Get model from agent profile using agent_profile_id
const settingsAgents = useAppStore((state) => state.settingsAgents.items);
const sessionProfile = useMemo(() => {
if (!agentProfileId) return null;
for (const agent of settingsAgents) {
const profile = agent.profiles.find((p) => p.id === agentProfileId);
if (profile) return profile;
}
return null;
}, [agentProfileId, settingsAgents]);
const sessionModel = sessionProfile?.model ?? null;
// Get pending model state for this session
const pendingModels = useAppStore((state) => state.pendingModel.bySessionId);
const clearPendingModel = useAppStore((state) => state.clearPendingModel);
const setActiveModel = useAppStore((state) => state.setActiveModel);
const pendingModel = resolvedSessionId ? pendingModels[resolvedSessionId] : null;
return {
sessionModel,
pendingModel,
clearPendingModel,
setActiveModel,
};
}