UNPKG

react-mic-cam-permissions

Version:

Managing camera and microphone permissions with React

47 lines (37 loc) 1.3 kB
import { useState, useEffect } from 'react'; import { PermissionManager, PermissionState } from '../PermissionManager'; export function useCameraPermission() { const [permissionState, setPermissionState] = useState<PermissionState>('prompt'); const permissionManager = PermissionManager.getInstance(); useEffect(() => { if (typeof window === 'undefined') { // SSR case, return early return; } // Mettre à jour l'état initial setPermissionState(permissionManager.getCameraState()); // Fonction de rappel pour les mises à jour const handlePermissionChange = (state: PermissionState) => { setPermissionState(state); }; // Ajouter l'écouteur permissionManager.addCameraListener(handlePermissionChange); // Nettoyer l'écouteur lors du démontage return () => { // Supprimer l'écouteur si nécessaire }; }, [permissionManager]); const requestPermission = async () => { if (typeof window === 'undefined') { // Prevent SSR execution return 'unavailable'; } const state = await permissionManager.requestCameraPermission(); setPermissionState(state); return state; }; return { permissionState, requestPermission, }; }