Files
kandev/apps/web/hooks/use-session-worktrees.ts
T
2026-01-17 19:02:22 +00:00

25 lines
900 B
TypeScript

import { useMemo } from 'react';
import { useAppStore } from '@/components/state-provider';
import { useSession } from '@/hooks/use-session';
export function useSessionWorktrees(sessionId: string | null) {
const { session } = useSession(sessionId);
const worktrees = useAppStore((state) => state.worktrees.items);
const sessionWorktreesBySessionId = useAppStore(
(state) => state.sessionWorktreesBySessionId.itemsBySessionId
);
return useMemo(() => {
if (!sessionId) return [];
const worktreeIds = sessionWorktreesBySessionId[sessionId];
if (worktreeIds?.length) {
return worktreeIds.map((id) => worktrees[id]).filter(Boolean);
}
if (session?.worktree_id) {
const worktree = worktrees[session.worktree_id];
return worktree ? [worktree] : [];
}
return [];
}, [session?.worktree_id, sessionId, sessionWorktreesBySessionId, worktrees]);
}