mirror of
https://github.com/wassname/stampy-chat.git
synced 2026-09-09 11:36:23 +08:00
Set inital question from url
This commit is contained in:
@@ -102,14 +102,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
@@ -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>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user