import { useEffect, useState } from "react" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Settings, Palette, Users, Loader2, MailCheck, Crown, SlidersHorizontal, Mails } from "lucide-react" import { toast } from "sonner" import { FeatureHeader } from "@/components/feature-header" import { useEmailVerification } from "../hooks/use-email-verification" import { SettingsTab } from "./tabs/settings-tab" import { CustomizationTab } from "./tabs/customization-tab" import { VerificationEmailTab } from "./tabs/verification-email-tab" import { PendingUsersTab } from "./tabs/pending-users-tab" import { EmailVerificationUpgradeTab } from "./tabs/upgrade-tab" import { AdvancedTab } from "./tabs/advanced-tab" import { usePro } from "@/contexts/pro-context" import { defaultSettings } from "../config" const EMAIL_VERIFICATION_DOCS_URL = "https://www.swiftcommerce.io/help/spam/email-verification/" export function EmailVerificationSettings() { const { isPro } = usePro() const { settings, updateSettings, toggleRole, saveSettings, saving, loading, hasChanges, } = useEmailVerification() const [activeTab, setActiveTab] = useState("settings") useEffect(() => { if (!isPro && ['advanced', 'emails', 'pending-users'].includes(activeTab)) { setActiveTab('settings') } else if (activeTab === 'emails' && settings.verificationMode !== 'admin_approval') { setActiveTab('advanced') } }, [activeTab, isPro, settings.verificationMode]) const handleSave = async () => { const result = await saveSettings() if (result.success) { toast.success("Settings saved", { description: "Your email verification settings have been saved successfully." }) } else { toast.error("Failed to save settings", { description: "Please try again or check your connection." }) } } const handleReset = () => { // Reset to defaults Object.keys(defaultSettings).forEach(key => { updateSettings(key as keyof typeof defaultSettings, defaultSettings[key as keyof typeof defaultSettings]) }) toast.success("Settings reset", { description: "All settings have been reset to their defaults. Don't forget to save." }) } if (loading) { return (
Loading settings...