@launchmenu/core
Version:
An environment for visual keyboard controlled applets
38 lines • 2.95 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.usePaneIsVisible = void 0;
const model_react_1 = require("model-react");
const react_1 = require("react");
/**
* Checks whether the pane for a viewstack should be visible
* @param stack The stack of items for which to check whether the pane should be visible
* @param defaultTransitionDuration The duration of the open/close transition
* @returns WHether the pane should be open, and possible transition durations
*/
function usePaneIsVisible(stack, defaultTransitionDuration = 150) {
var _a;
const state = react_1.useRef({
open: true,
prevOpen: true,
duration: defaultTransitionDuration,
prevTop: undefined,
});
const [h] = model_react_1.useDataHook();
const items = stack(h);
const top = items[items.length - 1];
state.current.prevOpen = state.current.open;
if (state.current.prevTop != top) {
state.current.prevTop = top;
state.current.open = true;
if (top) {
const topItem = top === null || top === void 0 ? void 0 : top.value;
if (topItem && "close" in topItem) {
state.current.open = false;
state.current.duration = (_a = topItem.closeTransitionDuration) !== null && _a !== void 0 ? _a : defaultTransitionDuration;
}
}
}
return state.current;
}
exports.usePaneIsVisible = usePaneIsVisible;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGFuZUlzVmlzaWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9ob29rcy91c2VQYW5lSXNWaXNpYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFtRDtBQUNuRCxpQ0FBNkI7QUFJN0I7Ozs7O0dBS0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDNUIsS0FBOEQsRUFDOUQseUJBQXlCLEdBQUcsR0FBRzs7SUFFL0IsTUFBTSxLQUFLLEdBQUcsY0FBTSxDQUFDO1FBQ2pCLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLElBQUk7UUFDZCxRQUFRLEVBQUUseUJBQXlCO1FBQ25DLE9BQU8sRUFBRSxTQUF3RDtLQUNwRSxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcseUJBQVcsRUFBRSxDQUFDO0lBQzFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUM1QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtRQUM5QixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksR0FBRyxFQUFFO1lBQ0wsTUFBTSxPQUFPLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssQ0FBQztZQUMzQixJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFO2dCQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxTQUNsQixPQUFPLENBQUMsdUJBQXVCLG1DQUFJLHlCQUF5QixDQUFDO2FBQ3BFO1NBQ0o7S0FDSjtJQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUN6QixDQUFDO0FBM0JELDRDQTJCQyJ9
;