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