UNPKG

@keycloakify/keycloak-admin-ui

Version:
36 lines 1.18 kB
import { useState, useEffect } from "react"; export default function useQueryPermission(name) { const [status, setStatus] = useState(null); const [plainStatus, setPlainStatus] = useState(null); function updatePlainStatus(newStatus) { setPlainStatus({ name: newStatus.name, state: newStatus.state, }); } // Query the permission status when the name changes. useEffect(() => { setStatus(null); setPlainStatus(null); navigator.permissions.query({ name }).then((newStatus) => { setStatus(newStatus); updatePlainStatus(newStatus); }); }, [name]); // Update the 'plain' status when the permission status changes. useEffect(() => { if (!status) { return; } function onStatusChange() { if (!status) { return; } updatePlainStatus(status); } status.addEventListener("change", onStatusChange); return () => status.removeEventListener("change", onStatusChange); }, [status]); return plainStatus; } //# sourceMappingURL=useQueryPermission.js.map