UNPKG

@atlaskit/editor-plugin-extension

Version:

editor-plugin-extension plugin for @atlaskit/editor-core

55 lines (53 loc) 1.71 kB
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; /** * @jsxRuntime classic * @jsx jsx */ import React, { useState } from 'react'; // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766 import { css, jsx } from '@emotion/react'; import { injectIntl } from 'react-intl'; import Tabs, { Tab, TabList, TabPanel } from '@atlaskit/tabs'; var panelWrapperStyles = css({ flexGrow: 1, maxWidth: '100%' }); var TabGroupImpl = function TabGroupImpl(props) { var field = props.field, renderPanel = props.renderPanel; var fields = field.fields; var _useState = useState(function () { var activeTabName = field.defaultTab || fields[0].name; var index = fields.findIndex(function (f) { return f.name === activeTabName; }); return Math.max(index, 0); }), _useState2 = _slicedToArray(_useState, 2), activeTab = _useState2[0], setActiveTab = _useState2[1]; var onChange = React.useCallback(function (index) { setActiveTab(index); }, [setActiveTab]); return jsx(Tabs, { id: "configPanelTabs-".concat(field.name), onChange: onChange, selected: activeTab }, jsx(TabList, null, fields.map(function (_ref) { var name = _ref.name, label = _ref.label; return jsx(Tab, { key: "tab-".concat(name) }, label); })), fields.map(function (field) { return jsx(TabPanel, { key: "panel-".concat(field.name) }, jsx("div", { css: panelWrapperStyles }, renderPanel(field))); })); }; TabGroupImpl.displayName = 'TabGroup'; // eslint-disable-next-line @typescript-eslint/ban-types var TabGroup = injectIntl(TabGroupImpl); export default TabGroup;