import { Container, Stack } from "@mantine/core"; import { usePubSub } from "create-pubsub/react"; import { lazy, Suspense } from "react"; import { imageSearchStatePubSub, queryPubSub, settingsPubSub, textGenerationStatePubSub, textSearchStatePubSub, } from "../../../modules/pubSub"; import { searchAndRespond } from "../../../modules/textGeneration"; import SearchForm from "../../Search/Form/SearchForm"; import MenuButton from "./Menu/MenuButton"; const AiResponseSection = lazy( () => import("../../AiResponse/AiResponseSection"), ); const SearchResultsSection = lazy( () => import("../../Search/Results/SearchResultsSection"), ); const EnableAiResponsePrompt = lazy( () => import("../../AiResponse/EnableAiResponsePrompt"), ); export default function MainPage() { const [query, updateQuery] = usePubSub(queryPubSub); const [textSearchState] = usePubSub(textSearchStatePubSub); const [imageSearchState] = usePubSub(imageSearchStatePubSub); const [textGenerationState] = usePubSub(textGenerationStatePubSub); const [settings, setSettings] = usePubSub(settingsPubSub); const isQueryEmpty = query.length === 0; return ( } /> {!isQueryEmpty && ( <> {settings.showEnableAiResponsePrompt && ( { setSettings({ ...settings, showEnableAiResponsePrompt: false, enableAiResponse: true, }); searchAndRespond(); }} onDecline={() => { setSettings({ ...settings, showEnableAiResponsePrompt: false, enableAiResponse: false, }); }} /> )} {!settings.showEnableAiResponsePrompt && textGenerationState !== "idle" && ( )} {(textSearchState !== "idle" || imageSearchState !== "idle") && ( )} )} ); }