import { useState, useEffect } from "react"; import { LANGUAGES } from "../utils/i18n"; import { LIGHT_THEMES, DARK_THEMES, getSurface } from "../utils/themes"; import logo from "../assets/images/logo.png"; const LANG_THEMES_LIGHT = { english: { bg: "#EEF4FB", accent: "#5B9BD5", text: "#1A3A5C", card: "#DDEAF7" }, hindi: { bg: "#FDF6E8", accent: "#E8B84B", text: "#3A2A00", card: "#FAE8B8" }, kannada: { bg: "#EEF7EF", accent: "#6BBF7A", text: "#1A3A1C", card: "#D5EDDA" }, }; const LANG_THEMES_DARK = { english: { bg: "#0F1A24", accent: "#5B9BD5", text: "#BFE0FF", card: "#1A2C3D" }, hindi: { bg: "#211B08", accent: "#E8B84B", text: "#FDE9A8", card: "#3A2E0F" }, kannada: { bg: "#10190F", accent: "#6BBF7A", text: "#C9F0CC", card: "#1D2E1B" }, }; export default function LanguageSelect({ onSelect, darkMode }) { const [selected, setSelected] = useState(null); const LANG_THEMES = darkMode ? LANG_THEMES_DARK : LANG_THEMES_LIGHT; const defaultBg = darkMode ? DARK_THEMES.DEFAULT.bgGradient : LIGHT_THEMES.DEFAULT.bgGradient; const theme = selected ? LANG_THEMES[selected] : { bg: defaultBg, accent: "#E8825A", text: darkMode ? "#F0DCCF" : "#3A2E2C", card: darkMode ? "#241D19" : "#FCF7F0" }; useEffect(() => { document.body.style.background = selected ? LANG_THEMES[selected].bg : defaultBg; document.body.style.transition = "background 0.5s ease"; return () => { document.body.style.background = defaultBg; }; }, [selected, darkMode]); return (
{/* Logo / Title */}
Vaakify

Vaakify

Speech for Every Child

{/* Language cards */}
{LANGUAGES.map(lang => { const isSelected = selected === lang.code; const t = LANG_THEMES[lang.code]; return (
setSelected(lang.code)} style={{ background: isSelected ? t.card : getSurface(darkMode, 0.7), border: `2px solid ${isSelected ? t.accent : "rgba(0,0,0,0.08)"}`, borderRadius: "18px", padding: "18px 22px", cursor: "pointer", transition: "all 0.35s ease", display: "flex", alignItems: "center", gap: "16px", boxShadow: isSelected ? `0 4px 20px ${t.accent}33` : "0 2px 8px rgba(0,0,0,0.06)", }}> {lang.flag}

{lang.native}

{lang.label}

{isSelected && (
)}
); })}
{/* Continue button */}
); }