vlibras-player-webjs
Version:
Biblioteca JavaScript moderna para integração do VLibras Player com React, Vue, Angular e vanilla JS
42 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoSSR = NoSSR;
exports.useIsMounted = useIsMounted;
const jsx_runtime_1 = require("react/jsx-runtime");
/**
* @file Componente NoSSR para renderização apenas no cliente
* @description Impede que componentes sejam renderizados no servidor
*/
const react_1 = require("react");
/**
* Componente que renderiza children apenas no cliente (após hidratação)
* Útil para componentes que dependem de APIs do navegador
*/
function NoSSR({ children, fallback = null, delay = 0 }) {
const [isMounted, setIsMounted] = (0, react_1.useState)(false);
(0, react_1.useEffect)(() => {
if (delay > 0) {
const timer = setTimeout(() => setIsMounted(true), delay);
return () => clearTimeout(timer);
}
else {
setIsMounted(true);
return undefined;
}
}, [delay]);
if (!isMounted) {
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: fallback });
}
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
}
/**
* Hook para verificar se o componente está montado no cliente
*/
function useIsMounted() {
const [isMounted, setIsMounted] = (0, react_1.useState)(false);
(0, react_1.useEffect)(() => {
setIsMounted(true);
}, []);
return isMounted;
}
//# sourceMappingURL=NoSSR.js.map