"use client";
import { useState } from "react";
import { Globe, MapPin, ChevronRight, Shield, Heart } from "lucide-react";
import {
t,
LANGUAGE_NAMES,
getCountryName,
getEmergencyNumber,
type SupportedLanguage,
} from "@/lib/i18n";
interface WelcomeScreenProps {
detectedLanguage: SupportedLanguage;
detectedCountry: string;
onComplete: (language: SupportedLanguage, country: string) => void;
}
export function WelcomeScreen({
detectedLanguage,
detectedCountry,
onComplete,
}: WelcomeScreenProps) {
const [step, setStep] = useState<"detected" | "language" | "region">("detected");
const [selectedLang, setSelectedLang] = useState(detectedLanguage);
const [selectedCountry, setSelectedCountry] = useState(detectedCountry);
const lang = selectedLang;
if (step === "language") {
return (
{t("choose_language", lang)}
{(Object.entries(LANGUAGE_NAMES) as [SupportedLanguage, string][]).map(
([code, name]) => (
)
)}
);
}
if (step === "region") {
const countries = [
"US", "CA", "GB", "AU", "NZ", "IT", "DE", "FR", "ES", "PT", "NL", "PL",
"IN", "CN", "JP", "KR", "BR", "MX", "AR", "CO", "ZA", "NG", "KE", "TZ",
"EG", "MA", "TR", "RU", "SA", "AE", "PK", "BD", "VN", "TH", "PH", "ID", "MY",
];
return (
{t("welcome_change_region", lang)}
{countries.map((code) => (
))}
);
}
// Main detected screen
return (
{/* Logo */}
{t("welcome_title", lang)}
{t("welcome_subtitle", lang)}
{/* Detection card */}
{t("welcome_detected", lang)}
{LANGUAGE_NAMES[selectedLang]}
{getCountryName(selectedCountry)}
{t("emergency_call", lang)}: {getEmergencyNumber(selectedCountry)}
{/* Continue button */}
{/* Change buttons */}
|
{/* Trust badges */}
{t("badge_private", lang)}
{t("badge_no_signup", lang)}
{t("badge_free", lang)}
);
}