import HCaptcha from "@hcaptcha/react-hcaptcha"; import useHasMounted from "../../hooks/useHasMounted"; import useTheme from "../../hooks/useTheme"; export type CaptchaProps = { size?: "normal" | "compact" | "invisible"; theme?: "light" | "dark"; className?: string; // callbacks pulled verbatim from node_modules/@hcaptcha/react-hcaptcha/types/index.d.ts /* eslint-disable @typescript-eslint/no-explicit-any */ onExpire?: () => any; onOpen?: () => any; onClose?: () => any; onChalExpired?: () => any; onError?: (event: string) => any; onVerify?: (token: string, ekey: string) => any; onLoad?: () => any; /* eslint-enable @typescript-eslint/no-explicit-any */ }; const Captcha = ({ size = "normal", theme, className, ...rest }: CaptchaProps) => { const hasMounted = useHasMounted(); const { activeTheme } = useTheme(); return (
{hasMounted && ( )}
); }; export default Captcha;