projects/deliberation_at_scale/packages/frontend/components/NoPrerender.tsx (8 lines of code) (raw):

import { PropsWithChildren, useEffect, useState } from 'react'; /** * Prevent any underlying components from being pre-rendered by Next.js. This * prevent errors such as `ReferenceError: document is not defined`. */ export default function NoPreRender({ children }: PropsWithChildren) { const [isClient, setIsClient] = useState(false); useEffect(() => { setIsClient(true); }, []); return isClient ? children : null; }