vlibras-player-webjs
Version:
Biblioteca JavaScript moderna para integração do VLibras Player com React, Vue, Angular e vanilla JS
62 lines • 2.28 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, useState, useEffect } from 'react';
import { VLibrasPlayer as CorePlayer } from '../../../../core/player/VLibrasPlayer';
const VLibrasContext = createContext(undefined);
const defaultConfig = {
targetPath: '/assets/vlibras',
theme: 'auto',
autoInitialize: true,
enableCache: true,
debug: false,
playbackSpeed: 1,
language: 'pt-BR',
enableAccessibility: true
};
export function VLibrasProvider({ children, config: userConfig = {} }) {
const [config, setConfig] = useState({ ...defaultConfig, ...userConfig });
const [player, setPlayer] = useState(null);
const [isLoaded, setIsLoaded] = useState(false);
const [isPlaying, setIsPlaying] = useState(false);
const [error, setError] = useState(null);
useEffect(() => {
if (config.autoInitialize && !player) {
try {
const playerInstance = new CorePlayer({
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 (_jsx(VLibrasContext.Provider, { value: value, children: children }));
}
export function useVLibrasContext() {
const context = useContext(VLibrasContext);
if (context === undefined) {
throw new Error('useVLibrasContext must be used within a VLibrasProvider');
}
return context;
}
//# sourceMappingURL=VLibrasProvider.js.map