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