UNPKG

@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
"use strict"; 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;