@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
29 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useTab = useTab;
const helpers_1 = require("../../../utils/helpers");
const hooks_1 = require("../../../utils/hooks");
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);
};
const refs = (0, hooks_1.useMergeRefs)(register, ref);
return {
ref: refs,
isSelected,
isFocused: focusedValue === value,
id: makeTabId(id, value),
controlsId: makeTabPanelId(id, value),
onClick: (0, helpers_1.composeEventHandlers)(onClick, () => setSelectedValue(value)),
onFocus: disabled ? undefined : (0, helpers_1.composeEventHandlers)(_onFocus, onFocus),
};
}
//# sourceMappingURL=useTab.js.map