import { useState } from "react"; import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; import { Badge, Meta, SkeletonButton, SkeletonContainer, SkeletonText, Alert, SettingsToggle, } from "@calcom/ui"; import PageWrapper from "@components/PageWrapper"; import DisableTwoFactorModal from "@components/settings/DisableTwoFactorModal"; import EnableTwoFactorModal from "@components/settings/EnableTwoFactorModal"; const SkeletonLoader = ({ title, description }: { title: string; description: string }) => { return (
); }; const TwoFactorAuthView = () => { const utils = trpc.useContext(); const { t } = useLocale(); const { data: user, isLoading } = trpc.viewer.me.useQuery(); const [enableModalOpen, setEnableModalOpen] = useState(false); const [disableModalOpen, setDisableModalOpen] = useState(false); if (isLoading) return ; const isCalProvider = user?.identityProvider === "CAL"; const canSetupTwoFactor = !isCalProvider && !user?.twoFactorEnabled; return ( <> {canSetupTwoFactor && } user?.twoFactorEnabled ? setDisableModalOpen(true) : setEnableModalOpen(true) } Badge={ {user?.twoFactorEnabled ? t("enabled") : t("disabled")} } switchContainerClassName="border-subtle rounded-b-xl border border-t-0 px-5 py-6 sm:px-6" /> setEnableModalOpen(!enableModalOpen)} onEnable={() => { setEnableModalOpen(false); utils.viewer.me.invalidate(); }} onCancel={() => { setEnableModalOpen(false); }} /> setDisableModalOpen(!disableModalOpen)} onDisable={() => { setDisableModalOpen(false); utils.viewer.me.invalidate(); }} onCancel={() => { setDisableModalOpen(false); }} /> ); }; TwoFactorAuthView.getLayout = getLayout; TwoFactorAuthView.PageWrapper = PageWrapper; export default TwoFactorAuthView;