"use client"; import { useState, useEffect } from "react"; import type { Personality } from "@mosaic/shared"; import { fetchPersonalities } from "@/lib/api/personalities"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Label } from "@/components/ui/label"; import { Badge } from "@/components/ui/badge"; interface PersonalitySelectorProps { value?: string; onChange?: (personalityId: string) => void; label?: string; className?: string; } export function PersonalitySelector({ value, onChange, label = "Select Personality", className, }: PersonalitySelectorProps): React.ReactElement { const [personalities, setPersonalities] = useState([]); const [isLoading, setIsLoading] = useState(true); useEffect(() => { void loadPersonalities(); }, []); async function loadPersonalities(): Promise { try { setIsLoading(true); const response = await fetchPersonalities(); setPersonalities(response.data); } catch (err) { console.error("Failed to load personalities:", err); } finally { setIsLoading(false); } } return (
{label && ( )}
); }