Spaces:
Runtime error
Runtime error
File size: 683 Bytes
17f8f56 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
"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;
|