@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
28 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useTab = useTab;
const composeEventHandlers_1 = require("../../../util/composeEventHandlers");
const useMergeRefs_1 = require("../../../util/hooks/useMergeRefs");
const Tabs_context_1 = require("../../Tabs.context");
function useTab({ value, disabled = false, onFocus: _onFocus, onClick }, ref) {
const { id, setSelectedValue, selectionFollowsFocus, focusedValue, setFocusedValue, selectedValue, makeTabId, makeTabPanelId, } = (0, Tabs_context_1.useTabsContext)();
const { register } = (0, Tabs_context_1.useTabsDescendant)({
disabled,
value,
});
const isSelected = value === selectedValue;
const onFocus = () => {
setFocusedValue(value);
selectionFollowsFocus && setSelectedValue(value);
};
return {
ref: (0, useMergeRefs_1.mergeRefs)([register, ref]),
isSelected,
isFocused: focusedValue === value,
id: makeTabId(id, value),
controlsId: makeTabPanelId(id, value),
onClick: (0, composeEventHandlers_1.composeEventHandlers)(onClick, () => setSelectedValue(value)),
onFocus: disabled ? undefined : (0, composeEventHandlers_1.composeEventHandlers)(_onFocus, onFocus),
};
}
//# sourceMappingURL=useTab.js.map