"use client"; import { useEffect, useState } from "react"; import { observer } from "mobx-react"; import useSWR from "swr"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { Loader, ToggleSwitch } from "@plane/ui"; // hooks import { useInstance } from "@/hooks/store"; // components import { InstanceEmailForm } from "./email-config-form"; const InstanceEmailPage: React.FC = observer(() => { // store const { fetchInstanceConfigurations, formattedConfig, disableEmail } = useInstance(); const { isLoading } = useSWR("INSTANCE_CONFIGURATIONS", () => fetchInstanceConfigurations()); const [isSubmitting, setIsSubmitting] = useState(false); const [isSMTPEnabled, setIsSMTPEnabled] = useState(false); const handleToggle = async () => { if (isSMTPEnabled) { setIsSubmitting(true); try { await disableEmail(); setIsSMTPEnabled(false); setToast({ title: "Email feature disabled", message: "Email feature has been disabled", type: TOAST_TYPE.SUCCESS, }); } catch (_error) { setToast({ title: "Error disabling email", message: "Failed to disable email feature. Please try again.", type: TOAST_TYPE.ERROR, }); } finally { setIsSubmitting(false); } return; } setIsSMTPEnabled(true); }; useEffect(() => { if (formattedConfig) { setIsSMTPEnabled(formattedConfig.ENABLE_SMTP === "1"); } }, [formattedConfig]); return ( <>