"use client"; import { usePathname } from "next/navigation"; import { useLayoutEffect, useState } from "react"; import { QuivrLogo } from "@/lib/assets/QuivrLogo"; import { AddBrainModal } from "@/lib/components/AddBrainModal"; import { useBrainCreationContext } from "@/lib/components/AddBrainModal/brainCreation-provider"; import { OnboardingModal } from "@/lib/components/OnboardingModal/OnboardingModal"; import PageHeader from "@/lib/components/PageHeader/PageHeader"; import { UploadDocumentModal } from "@/lib/components/UploadDocumentModal/UploadDocumentModal"; import { MessageInfoBox } from "@/lib/components/ui/MessageInfoBox/MessageInfoBox"; import QuivrButton from "@/lib/components/ui/QuivrButton/QuivrButton"; import { SearchBar } from "@/lib/components/ui/SearchBar/SearchBar"; import { useSupabase } from "@/lib/context/SupabaseProvider"; import { useUserSettingsContext } from "@/lib/context/UserSettingsProvider/hooks/useUserSettingsContext"; import { useUserData } from "@/lib/hooks/useUserData"; import { redirectToLogin } from "@/lib/router/redirectToLogin"; import { ButtonType } from "@/lib/types/QuivrButton"; import styles from "./page.module.scss"; const Search = (): JSX.Element => { const [isPageLoaded, setIsPageLoaded] = useState(false); const pathname = usePathname(); const { session } = useSupabase(); const { isBrainCreationModalOpened, setIsBrainCreationModalOpened } = useBrainCreationContext(); const { userIdentityData } = useUserData(); const { isDarkMode } = useUserSettingsContext(); useLayoutEffect(() => { if (session === null) { redirectToLogin(); } else { setTimeout(() => setIsPageLoaded(true), 1000); } }, [pathname, session]); const buttons: ButtonType[] = [ { label: "Create brain", color: "primary", onClick: () => { setIsBrainCreationModalOpened(true); }, iconName: "brain", }, ]; return ( <>
Talk to Quivr
Press @ to select a brain
{!isBrainCreationModalOpened && !userIdentityData?.onboarded && !!isPageLoaded && (
Press the following button to create your first brain { setIsBrainCreationModalOpened(true); }} />
)} ); }; export default Search;