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.

60 lines 1.45 kB
import * as React from "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); }; export const TabProvider = ({ children, index, compact }) => { const value = React.useMemo(() => ({ index, compact }), [index, compact]); return /*#__PURE__*/React.createElement(TabContext.Provider, { value: value }, children); }; export const TabPanelProvider = ({ children, isActive, index }) => { const value = React.useMemo(() => ({ isActive, index }), [isActive, index]); return /*#__PURE__*/React.createElement(TabPanelContext.Provider, { value: value }, children); }; export default TabsProvider; export const useTabs = () => React.useContext(TabsContext); export const useTab = () => React.useContext(TabContext); export const usePanel = () => React.useContext(TabPanelContext);