Merge pull request #139 from StampyAI/question-in-url

Set inital question from url
This commit is contained in:
Daniel O'Connell
2024-02-20 20:19:37 +01:00
committed by GitHub
2 changed files with 22 additions and 4 deletions
+9 -2
View File
@@ -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<Entry[]>([]);
const [query, setQuery] = useState(() => randomQuestion());
const [query, setQuery] = useState(() => initialQuery || randomQuestion());
const [current, setCurrent] = useState<CurrentSearch>();
const [followups, setFollowups] = useState<Followup[]>([]);
const [controller, setController] = useState(() => new AbortController());
+13 -2
View File
@@ -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 (
<Page page="index">
@@ -30,7 +35,13 @@ const Home: NextPage = () => {
welcomed.
</h2>
<Chat sessionId={sessionId} settings={{ mode: settings.mode }} />
{router.isReady && (
<Chat
sessionId={sessionId}
settings={{ mode: settings.mode }}
initialQuery={initialQuery}
/>
)}
</Page>
);
};