Spaces:
Runtime error
Runtime error
"use client"; | |
import { useEffect, useLayoutEffect, useState } from "react"; | |
import PropTypes from "prop-types"; | |
const useEnhancedEffect = | |
typeof window !== "undefined" && process.env.NODE_ENV !== "test" | |
? useLayoutEffect | |
: useEffect; | |
const NoSSR = ({ | |
children, | |
defer = false, | |
fallback = null, | |
}: { | |
children: React.ReactNode; | |
defer?: boolean; | |
fallback?: React.ReactNode; | |
}) => { | |
const [isMounted, setMountedState] = useState(false); | |
useEnhancedEffect(() => { | |
if (!defer) setMountedState(true); | |
}, [defer]); | |
useEffect(() => { | |
if (defer) setMountedState(true); | |
}, [defer]); | |
return isMounted ? children : fallback; | |
}; | |
export default NoSSR; | |