import { ActionIcon, Group, Menu, Modal, Text, Tooltip, UnstyledButton, } from "@mantine/core"; import { useDisclosure } from "@mantine/hooks"; import { IconRosetteDiscountCheckFilled, IconShieldCheck, } from "@tabler/icons-react"; import { useTranslation } from "react-i18next"; import i18n from "@/i18n.ts"; import { useParams } from "react-router-dom"; import { extractPageSlugId } from "@/lib"; import { usePageQuery } from "@/features/page/queries/page-query"; import { usePageVerificationInfoQuery } from "@/ee/page-verification/queries/page-verification-query"; import { useHasFeature } from "@/ee/hooks/use-feature"; import { useUpgradeLabel } from "@/ee/hooks/use-upgrade-label"; import { Feature } from "@/ee/features"; import { SetupVerificationForm } from "./setup-verification-form"; import { ManageVerificationForm } from "./manage-verification-form"; import { getStatusColor, getStatusLabel } from "./verification-status"; type PageVerificationModalProps = { pageId: string; opened: boolean; onClose: () => void; }; export function PageVerificationModal({ pageId, opened, onClose, }: PageVerificationModalProps) { const { t } = useTranslation(); const { data: verificationInfo } = usePageVerificationInfoQuery( opened ? pageId : undefined, ); const status = verificationInfo?.status ?? "none"; return ( {status === "none" ? t("Set up verification") : t("Verify page")} } size={520} > {status === "none" ? ( ) : ( )} ); } type PageVerificationBadgeProps = { readOnly?: boolean; }; export function PageVerificationBadge({ readOnly, }: PageVerificationBadgeProps) { const { t } = useTranslation(); const { pageSlug } = useParams(); const pageSlugId = extractPageSlugId(pageSlug); const hasVerificationFeature = useHasFeature(Feature.PAGE_VERIFICATION); const [opened, { open, close }] = useDisclosure(false); const { data: page } = usePageQuery({ pageId: pageSlugId }); const pageId = page?.id; const { data: verificationInfo, isLoading } = usePageVerificationInfoQuery( hasVerificationFeature ? pageId : undefined, ); const upgradeLabel = useUpgradeLabel(); if (!pageId) return null; if (!hasVerificationFeature) { if (readOnly) return null; const lockedLabel = `${t("Add verification")} — ${upgradeLabel}`; // Use ActionIcon (a real