diff --git a/web/src/components/chat.tsx b/web/src/components/chat.tsx index 4944f1c..df5db56 100644 --- a/web/src/components/chat.tsx +++ b/web/src/components/chat.tsx @@ -104,14 +104,21 @@ const makeHistory = (query: string, entries: Entry[]): HistoryEntry[] => { type ChatParams = { sessionId: string; settings: LLMSettings; + initialQuery?: string; onQuery?: (q: string) => any; onNewEntry?: (history: Entry[]) => any; }; -const Chat = ({ sessionId, settings, onQuery, onNewEntry }: ChatParams) => { +const Chat = ({ + initialQuery, + sessionId, + settings, + onQuery, + onNewEntry, +}: ChatParams) => { const [entries, setEntries] = useState([]); - const [query, setQuery] = useState(() => randomQuestion()); + const [query, setQuery] = useState(() => initialQuery || randomQuestion()); const [current, setCurrent] = useState(); const [followups, setFollowups] = useState([]); const [controller, setController] = useState(() => new AbortController()); diff --git a/web/src/pages/index.tsx b/web/src/pages/index.tsx index 17865f0..65c4a22 100644 --- a/web/src/pages/index.tsx +++ b/web/src/pages/index.tsx @@ -1,5 +1,6 @@ -import { type NextPage } from "next"; import { useState, useEffect } from "react"; +import { type NextPage } from "next"; +import { useRouter } from "next/router"; import Link from "next/link"; import useSettings from "../hooks/useSettings"; @@ -12,11 +13,15 @@ const MAX_FOLLOWUPS = 4; const Home: NextPage = () => { const [sessionId, setSessionId] = useState(""); const { settings, setMode } = useSettings(); + const router = useRouter(); // initial load useEffect(() => { setSessionId(crypto.randomUUID()); }, []); + const initialQuery = Array.isArray(router?.query?.question) + ? router?.query?.question[0] + : router?.query?.question; return ( @@ -30,7 +35,13 @@ const Home: NextPage = () => { welcomed. - + {router.isReady && ( + + )} ); };