UNPKG

@navikt/ds-react

Version:

React components from the Norwegian Labour and Welfare Administration.

28 lines 1.31 kB
"use strict"; 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