"use client"; import React, { useCallback, useEffect, useState } from "react"; import { createClient } from "@/utils/supabase/client"; import { getCreditsRemaining } from "@/lib/utils"; import PickPersonality from "./PickPersonality"; import { updateUser } from "@/db/users"; import _ from "lodash"; import HomePageSubtitles from "../HomePageSubtitles"; import PersonalityFilters from "./PersonalityFilters"; import { TranscriptProvider } from "../Realtime/contexts/TranscriptContext"; import { EventProvider } from "../Realtime/contexts/EventContext"; import App from "../Realtime/App"; import { checkIfUserHasApiKey } from "@/app/actions"; import { defaultPersonalityId } from "@/lib/data"; interface PlaygroundProps { currentUser: IUser; allPersonalities: IPersonality[]; myPersonalities: IPersonality[]; } const Playground: React.FC = ({ currentUser, allPersonalities, myPersonalities, }) => { const [hasApiKey, setHasApiKey] = useState(false); const isDoctor = currentUser.user_info.user_type === "doctor"; useEffect(() => { const checkApiKey = async () => { const hasApiKey = await checkIfUserHasApiKey(currentUser.user_id); setHasApiKey(hasApiKey); }; checkApiKey(); }, [currentUser.user_id]); const supabase = createClient(); // Remove userState entirely and just use personalityState const [personalityIdState, setPersonalityIdState] = useState( currentUser.personality!.personality_id ?? defaultPersonalityId // Initial value from props ); const [selectedFilters, setSelectedFilters] = useState( [] ); const creditsRemaining = getCreditsRemaining(currentUser); const outOfCredits = creditsRemaining <= 0 && !currentUser.is_premium; // const ref: any = useRef | null>(null); const onPersonalityPicked = async (personalityIdPicked: string) => { // Instantaneously update the state variable setPersonalityIdState(personalityIdPicked); await updateUser( supabase, { personality_id: personalityIdPicked, }, currentUser.user_id ); }; return (

{"Playground"}

p.is_story || p.is_doctor) : allPersonalities} myPersonalities={myPersonalities} />
{/* */}
); }; export default Playground;