import type { EnvironmentId, ThreadId } from "@t3tools/contracts";import * as Option from "effect/Option"; import { useEnvironmentThread } from "./threads";import { useThreadSelection } from "./use-thread-selection"; export interface ThreadDetailTarget { readonly environmentId: EnvironmentId | null; readonly threadId: ThreadId | null;} export function useThreadDetail(target: ThreadDetailTarget) { return useEnvironmentThread(target.environmentId, target.threadId);} export function useSelectedThreadDetailState() { const { selectedThread } = useThreadSelection(); return useThreadDetail({ environmentId: selectedThread?.environmentId ?? null, threadId: selectedThread?.id ?? null, });} export function useSelectedThreadDetail() { return Option.getOrNull(useSelectedThreadDetailState().data);}
import type { EnvironmentId, ThreadId } from "@t3tools/contracts";
import * as Option from "effect/Option";
import { useEnvironmentThread } from "./threads";
import { useThreadSelection } from "./use-thread-selection";
export interface ThreadDetailTarget {
readonly environmentId: EnvironmentId | null;
readonly threadId: ThreadId | null;
}
export function useThreadDetail(target: ThreadDetailTarget) {
return useEnvironmentThread(target.environmentId, target.threadId);
}
export function useSelectedThreadDetailState() {
const { selectedThread } = useThreadSelection();
return useThreadDetail({
environmentId: selectedThread?.environmentId ?? null,
threadId: selectedThread?.id ?? null,
});
}
export function useSelectedThreadDetail() {
return Option.getOrNull(useSelectedThreadDetailState().data);
}