1import type { ScopedThreadRef } from "@t3tools/contracts";
2import { useParams } from "@tanstack/react-router";
3
4import {
5 resolveThreadRouteRef,
6 resolveThreadRouteTarget,
7 type ThreadRouteTarget,
8} from "../threadRoutes";
9
10function useThreadRouteIds() {
11 const environmentId = useParams({ strict: false, select: (params) => params.environmentId });
12 const threadId = useParams({ strict: false, select: (params) => params.threadId });
13 return { environmentId, threadId };
14}
15
16export function useThreadRouteTarget(): ThreadRouteTarget | null {
17 const { environmentId, threadId } = useThreadRouteIds();
18 const draftId = useParams({ strict: false, select: (params) => params.draftId });
19 return resolveThreadRouteTarget({ environmentId, threadId, draftId });
20}
21
22export function useThreadRouteRef(): ScopedThreadRef | null {
23 return resolveThreadRouteRef(useThreadRouteIds());
24}