"use client"; import { useParams, usePathname, useSearchParams } from "next/navigation"; import { useEffect, useState } from "react"; import { uuid } from "@/core/utils/uuid"; export function useThreadChat() { const { thread_id: threadIdFromPath } = useParams<{ thread_id: string }>(); const pathname = usePathname(); const searchParams = useSearchParams(); const [threadId, setThreadId] = useState(() => { return threadIdFromPath === "new" ? uuid() : threadIdFromPath; }); const [isNewThread, setIsNewThread] = useState( () => threadIdFromPath === "new", ); useEffect(() => { if (pathname.endsWith("/new")) { setIsNewThread(true); setThreadId(uuid()); return; } setIsNewThread(false); setThreadId(threadIdFromPath); }, [pathname, threadIdFromPath]); const isMock = searchParams.get("mock") === "true"; return { threadId, setThreadId, isNewThread, setIsNewThread, isMock }; }