47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "useModalAttributes", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return useModalAttributes;
|
|
}
|
|
});
|
|
const _reactutilities = require("@fluentui/react-utilities");
|
|
const _useTabsterAttributes = require("./useTabsterAttributes");
|
|
const _tabster = require("tabster");
|
|
const _useTabster = require("./useTabster");
|
|
const useModalAttributes = (options = {})=>{
|
|
const { trapFocus, alwaysFocusable, legacyTrapFocus } = options;
|
|
const tabster = (0, _useTabster.useTabster)();
|
|
// Initializes the modalizer and restorer APIs
|
|
if (tabster) {
|
|
(0, _tabster.getModalizer)(tabster);
|
|
(0, _tabster.getRestorer)(tabster);
|
|
}
|
|
const id = (0, _reactutilities.useId)('modal-', options.id);
|
|
const modalAttributes = (0, _useTabsterAttributes.useTabsterAttributes)({
|
|
restorer: {
|
|
type: _tabster.RestorerTypes.Source
|
|
},
|
|
...trapFocus && {
|
|
modalizer: {
|
|
id,
|
|
isOthersAccessible: !trapFocus,
|
|
isAlwaysAccessible: alwaysFocusable,
|
|
isTrapped: legacyTrapFocus && trapFocus
|
|
}
|
|
}
|
|
});
|
|
const triggerAttributes = (0, _useTabsterAttributes.useTabsterAttributes)({
|
|
restorer: {
|
|
type: _tabster.RestorerTypes.Target
|
|
}
|
|
});
|
|
return {
|
|
modalAttributes,
|
|
triggerAttributes
|
|
};
|
|
};
|