"use client"; import React from 'react'; import { useStore } from '@/lib/store'; import { Save, Sparkles, Brain, Settings2, Moon, Sun, Monitor, Check } from 'lucide-react'; import { cn } from '@/lib/utils'; import { useTheme } from '@/components/theme-provider'; import { MobileCookieInstructions } from './MobileCookieInstructions'; type Provider = 'whisk' | 'meta'; const providers: { id: Provider; name: string; icon: any; description: string }[] = [ { id: 'whisk', name: 'Google Whisk', icon: Sparkles, description: 'ImageFX / Imagen 3' }, { id: 'meta', name: 'Meta AI', icon: Brain, description: 'Imagine / Emu' }, ]; export function Settings() { const { settings, setSettings } = useStore(); const { theme, setTheme } = useTheme(); const [mounted, setMounted] = React.useState(false); React.useEffect(() => { setMounted(true); }, []); const ThemeButton = ({ theme: t, icon: Icon, label }: { theme: 'light' | 'dark' | 'system', icon: any, label: string }) => ( ); // Local state for form fields const [provider, setProvider] = React.useState(settings.provider || 'whisk'); const [whiskCookies, setWhiskCookies] = React.useState(settings.whiskCookies || ''); const [useMetaFreeWrapper, setUseMetaFreeWrapper] = React.useState(settings.useMetaFreeWrapper !== undefined ? settings.useMetaFreeWrapper : true); const [metaFreeWrapperUrl, setMetaFreeWrapperUrl] = React.useState(settings.metaFreeWrapperUrl || 'http://localhost:8000'); const [metaCookies, setMetaCookies] = React.useState(settings.metaCookies || ''); const [facebookCookies, setFacebookCookies] = React.useState(settings.facebookCookies || ''); const [saved, setSaved] = React.useState(false); const [whiskVerified, setWhiskVerified] = React.useState(false); const [metaVerified, setMetaVerified] = React.useState(false); const handleSave = () => { setSettings({ provider, whiskCookies, useMetaFreeWrapper, metaFreeWrapperUrl, metaCookies, facebookCookies }); setSaved(true); setTimeout(() => setSaved(false), 2000); }; return (
{/* Header Section */}

Settings

Configure your AI preferences and API credentials.

{/* General Preferences Card */}

Appearance

Default Engine

{providers.map((p) => ( ))}
{/* Provider Credentials Card */}

API Credentials

{/* Whisk Settings */} {provider === 'whisk' && (

Google Whisk Configuration