recaptcha-2.tsx 793 B

123456789101112131415161718192021222324252627282930313233
  1. import ReCAPTCHA from 'react-google-recaptcha'
  2. import getMeta from '@/utils/meta'
  3. import { ExposedSettings } from '../../../../types/exposed-settings'
  4. interface ReCaptcha2Props
  5. extends Pick<React.ComponentProps<typeof ReCAPTCHA>, 'onChange'> {
  6. page: keyof ExposedSettings['recaptchaDisabled']
  7. recaptchaRef: React.LegacyRef<ReCAPTCHA>
  8. }
  9. export function ReCaptcha2({
  10. page: site,
  11. onChange,
  12. recaptchaRef,
  13. }: ReCaptcha2Props) {
  14. const { recaptchaSiteKey, recaptchaDisabled } = getMeta('ol-ExposedSettings')
  15. if (!recaptchaSiteKey) {
  16. return null
  17. }
  18. if (site && recaptchaDisabled[site]) {
  19. return null
  20. }
  21. return (
  22. <ReCAPTCHA
  23. ref={recaptchaRef}
  24. size="invisible"
  25. sitekey={recaptchaSiteKey}
  26. onChange={onChange}
  27. badge="inline"
  28. />
  29. )
  30. }