b7473371b3
Attempt at #12289 (edit Félix: removed fix keyword since I don't think it fixes it) --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com> Co-authored-by: Félix Malfait <felix@twenty.com>
31 lines
843 B
TypeScript
31 lines
843 B
TypeScript
import React, { useMemo } from 'react';
|
|
|
|
import { CaptchaProviderScriptLoaderEffect } from '@/captcha/components/CaptchaProviderScriptLoaderEffect';
|
|
import { isCaptchaRequiredForPath } from '@/captcha/utils/isCaptchaRequiredForPath';
|
|
import { useLocation } from 'react-router-dom';
|
|
|
|
export const CaptchaProvider = React.memo(
|
|
({ children }: React.PropsWithChildren) => {
|
|
const location = useLocation();
|
|
|
|
const isCaptchaRequired = useMemo(
|
|
() => isCaptchaRequiredForPath(location.pathname),
|
|
[location.pathname],
|
|
);
|
|
|
|
return (
|
|
<>
|
|
{isCaptchaRequired && (
|
|
<>
|
|
<div id="captcha-widget" data-size="invisible"></div>
|
|
<CaptchaProviderScriptLoaderEffect />
|
|
</>
|
|
)}
|
|
{children}
|
|
</>
|
|
);
|
|
},
|
|
);
|
|
|
|
CaptchaProvider.displayName = 'CaptchaProvider';
|