import { useEffect } from "react"; import { useState } from "react"; import { ChainlitAPI, sessionState, useChatSession } from "@chainlit/react-client"; import { Playground } from "./components/playground"; import { useRecoilValue } from "recoil"; import Header from "@/components/header"; import Banner from "@/components/banner"; import AlertComponent from "@/components/alertComponent"; const CHAINLIT_SERVER = "http://localhost:8000"; const userEnv = {}; const apiClient = new ChainlitAPI(CHAINLIT_SERVER); interface Amounts { [key: string]: number; } function App() { const { connect } = useChatSession(); const session = useRecoilValue(sessionState); useEffect(() => { if (session?.socket.connected) { return; } fetch(apiClient.buildEndpoint('/custom-auth')) .then((res) => res.json()) .then((data) => { connect({ client: apiClient, userEnv, accessToken: `Bearer: ${data.token}` }); }); }, [session, connect]); // Initialize state to manage multiple amounts const [amounts, setAmounts] = useState({}); // Function to update individual amount const setAmount = (id: string, value: number) => { setAmounts((prevAmounts) => ({ ...prevAmounts, [id]: value, })); }; return ( <>

Your Personalised Package:

setAmount('publicLiability', value)} /> setAmount('fireDamage', value)} /> setAmount('glass', value)} /> setAmount('personalEquipment', value)} /> setAmount('theft', value)} />
); } export default App;