alinea
Version:
Headless git-based CMS
30 lines (28 loc) • 625 B
JavaScript
import "../../chunks/chunk-NZLE2WMY.js";
// src/ui/hook/UseTrigger.ts
import { useState } from "react";
function useTrigger() {
const [trigger, setTrigger] = useState(void 0);
return {
options: trigger?.options,
isActive: Boolean(trigger),
request(options) {
return new Promise(
(resolve, reject) => {
setTrigger({ options, resolve, reject });
}
).finally(() => {
setTrigger(void 0);
});
},
resolve(value) {
if (trigger) trigger.resolve(value);
},
reject() {
if (trigger) trigger.reject();
}
};
}
export {
useTrigger
};