vlibras-player-webjs
Version:
Biblioteca JavaScript moderna para integração do VLibras Player com React, Vue, Angular e vanilla JS
66 lines • 2.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VLibrasProvider = VLibrasProvider;
exports.useVLibrasContext = useVLibrasContext;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const VLibrasPlayer_1 = require("../../../../core/player/VLibrasPlayer");
const VLibrasContext = (0, react_1.createContext)(undefined);
const defaultConfig = {
targetPath: '/assets/vlibras',
theme: 'auto',
autoInitialize: true,
enableCache: true,
debug: false,
playbackSpeed: 1,
language: 'pt-BR',
enableAccessibility: true
};
function VLibrasProvider({ children, config: userConfig = {} }) {
const [config, setConfig] = (0, react_1.useState)({ ...defaultConfig, ...userConfig });
const [player, setPlayer] = (0, react_1.useState)(null);
const [isLoaded, setIsLoaded] = (0, react_1.useState)(false);
const [isPlaying, setIsPlaying] = (0, react_1.useState)(false);
const [error, setError] = (0, react_1.useState)(null);
(0, react_1.useEffect)(() => {
if (config.autoInitialize && !player) {
try {
const playerInstance = new VLibrasPlayer_1.VLibrasPlayer({
targetPath: config.targetPath,
theme: config.theme,
enableCache: config.enableCache,
debug: config.debug,
onReady: () => setIsLoaded(true),
onError: (err) => setError(err),
onPlay: () => setIsPlaying(true),
onPause: () => setIsPlaying(false),
onStop: () => setIsPlaying(false)
});
setPlayer(playerInstance);
}
catch (err) {
setError(err instanceof Error ? err : new Error('Erro ao inicializar VLibras'));
}
}
}, [config, player]);
const updateConfig = (newConfig) => {
setConfig(prev => ({ ...prev, ...newConfig }));
};
const value = {
player,
isLoaded,
isPlaying,
error,
config,
updateConfig
};
return ((0, jsx_runtime_1.jsx)(VLibrasContext.Provider, { value: value, children: children }));
}
function useVLibrasContext() {
const context = (0, react_1.useContext)(VLibrasContext);
if (context === undefined) {
throw new Error('useVLibrasContext must be used within a VLibrasProvider');
}
return context;
}
//# sourceMappingURL=VLibrasProvider.js.map