import { type ThreadId } from "@t3tools/contracts";import { useMemo } from "react";import { selectProjectById, selectSidebarThreadSummaryById, selectThreadById, useStore,} from "./store";import { type Project, type SidebarThreadSummary, type Thread } from "./types"; export function useProjectById(projectId: Project["id"] | null | undefined): Project | undefined { const selector = useMemo(() => selectProjectById(projectId), [projectId]); return useStore(selector);} export function useThreadById(threadId: ThreadId | null | undefined): Thread | undefined { const selector = useMemo(() => selectThreadById(threadId), [threadId]); return useStore(selector);} export function useSidebarThreadSummaryById( threadId: ThreadId | null | undefined,): SidebarThreadSummary | undefined { const selector = useMemo(() => selectSidebarThreadSummaryById(threadId), [threadId]); return useStore(selector);}import { type ThreadId } from "@t3tools/contracts";
import { useMemo } from "react";
import {
selectProjectById,
selectSidebarThreadSummaryById,
selectThreadById,
useStore,
} from "./store";
import { type Project, type SidebarThreadSummary, type Thread } from "./types";
export function useProjectById(projectId: Project["id"] | null | undefined): Project | undefined {
const selector = useMemo(() => selectProjectById(projectId), [projectId]);
return useStore(selector);
}
export function useThreadById(threadId: ThreadId | null | undefined): Thread | undefined {
const selector = useMemo(() => selectThreadById(threadId), [threadId]);
return useStore(selector);
}
export function useSidebarThreadSummaryById(
threadId: ThreadId | null | undefined,
): SidebarThreadSummary | undefined {
const selector = useMemo(() => selectSidebarThreadSummaryById(threadId), [threadId]);
return useStore(selector);
}