@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
36 lines • 1.18 kB
JavaScript
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