diff --git a/components/PreviewPageMask/PreviewPageMask.tsx b/components/PreviewPageMask/PreviewPageMask.tsx index a93bb1f3..d8484c45 100644 --- a/components/PreviewPageMask/PreviewPageMask.tsx +++ b/components/PreviewPageMask/PreviewPageMask.tsx @@ -1,10 +1,9 @@ -import { useSearchParams } from 'next/navigation'; +import { useMaskParam } from '@/hooks/useMaskParam'; import styles from './PreviewPageMask.module.scss'; export function PreviewPageMask() { - const searchParams = useSearchParams(); - const mask = JSON.parse(searchParams.get('mask') || 'false'); + const mask = useMaskParam(); if (!mask) { return null; diff --git a/hooks/index.ts b/hooks/index.ts index 69099bf3..a48c1bf0 100644 --- a/hooks/index.ts +++ b/hooks/index.ts @@ -1,3 +1,4 @@ export * from './useDevice'; export * from './useIsMounted'; +export * from './useMaskParam'; export * from './useThemeSettings'; diff --git a/hooks/useMaskParam.ts b/hooks/useMaskParam.ts new file mode 100644 index 00000000..ce00a4fb --- /dev/null +++ b/hooks/useMaskParam.ts @@ -0,0 +1,16 @@ +import { useSearchParams } from 'next/navigation'; + +export function useMaskParam(): boolean { + const searchParams = useSearchParams(); + const mask = searchParams.get('mask'); + + if (!mask) { + return false; + } + + try { + return Boolean(JSON.parse(mask)); + } catch { + return false; + } +} diff --git a/modules/Layout/CookieConsentBar/CookieConsentBar.tsx b/modules/Layout/CookieConsentBar/CookieConsentBar.tsx index 3dbf2087..714f7e55 100644 --- a/modules/Layout/CookieConsentBar/CookieConsentBar.tsx +++ b/modules/Layout/CookieConsentBar/CookieConsentBar.tsx @@ -4,12 +4,18 @@ import { useCompanyInformation } from '@prezly/theme-kit-nextjs'; import classNames from 'classnames'; import { FormattedMessage } from 'react-intl'; +import { useMaskParam } from '@/hooks'; import { Button } from '@/ui'; import styles from './CookieConsentBar.module.scss'; function CookieConsentBar() { const { cookie_statement: cookieStatement } = useCompanyInformation(); + const isHidden = useMaskParam(); + + if (isHidden) { + return null; + } return (