@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
JavaScript
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);