@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com's products.
70 lines (69 loc) • 1.89 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
exports.__esModule = true;
exports.useTabs = exports.useTab = exports.usePanel = exports.default = exports.TabProvider = exports.TabPanelProvider = void 0;
var React = _interopRequireWildcard(require("react"));
const TabsContext = /*#__PURE__*/React.createContext({
defaultSelected: 0,
onChange: () => {},
selected: 0,
setSelected: () => {}
});
const TabContext = /*#__PURE__*/React.createContext({
index: 0,
compact: false
});
const TabPanelContext = /*#__PURE__*/React.createContext({
isActive: false,
index: 0
});
const TabsProvider = ({
children,
defaultSelected = 0,
onChange
}) => {
const [selected, setSelected] = React.useState(defaultSelected);
const value = React.useMemo(() => ({
selected,
onChange,
setSelected
}), [onChange, selected]);
return /*#__PURE__*/React.createElement(TabsContext.Provider, {
value: value
}, children);
};
const TabProvider = ({
children,
index,
compact
}) => {
const value = React.useMemo(() => ({
index,
compact
}), [index, compact]);
return /*#__PURE__*/React.createElement(TabContext.Provider, {
value: value
}, children);
};
exports.TabProvider = TabProvider;
const TabPanelProvider = ({
children,
isActive,
index
}) => {
const value = React.useMemo(() => ({
isActive,
index
}), [isActive, index]);
return /*#__PURE__*/React.createElement(TabPanelContext.Provider, {
value: value
}, children);
};
exports.TabPanelProvider = TabPanelProvider;
var _default = exports.default = TabsProvider;
const useTabs = () => React.useContext(TabsContext);
exports.useTabs = useTabs;
const useTab = () => React.useContext(TabContext);
exports.useTab = useTab;
const usePanel = () => React.useContext(TabPanelContext);
exports.usePanel = usePanel;