wex-ui-lib 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +23 -15
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +23 -15
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/Tabs/Tabs.d.ts +2 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
@@ -190,12 +190,13 @@ type EntrySelectorProps = {
|
|
190
190
|
declare function EntrySelector(props: EntrySelectorProps): React$1.JSX.Element;
|
191
191
|
|
192
192
|
interface TabsProps {
|
193
|
+
activeTabId?: string;
|
193
194
|
tabPadding?: string;
|
194
195
|
accentColor?: string;
|
195
196
|
displayMode?: DisplayMode;
|
196
197
|
font?: Font;
|
197
198
|
tabs: {
|
198
|
-
id
|
199
|
+
id: string;
|
199
200
|
label: string;
|
200
201
|
content: React$1.ReactNode;
|
201
202
|
}[];
|
package/dist/index.esm.js
CHANGED
@@ -2536,29 +2536,37 @@ var ItemContent = newStyled.div(templateObject_5$1 || (templateObject_5$1 = __ma
|
|
2536
2536
|
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
|
2537
2537
|
|
2538
2538
|
var Tabs = function (_a) {
|
2539
|
-
var
|
2540
|
-
var
|
2541
|
-
var
|
2539
|
+
var _b, _c;
|
2540
|
+
var tabs = _a.tabs, font = _a.font, _d = _a.displayMode, displayMode = _d === undefined ? "dark" : _d, accentColor = _a.accentColor, tabPadding = _a.tabPadding, onTabChange = _a.onTabChange, activeTabId = _a.activeTabId;
|
2541
|
+
var _e = useState((_b = tabs[0]) === null || _b === undefined ? undefined : _b.id), internalActiveTabId = _e[0], setInternalActiveTabId = _e[1];
|
2542
|
+
var isControlled = activeTabId !== undefined;
|
2543
|
+
var activeTab = isControlled ? activeTabId : internalActiveTabId;
|
2544
|
+
var _f = useState({ left: 0, width: 0 }), indicatorStyle = _f[0], setIndicatorStyle = _f[1];
|
2542
2545
|
var tabRefs = useRef([]);
|
2543
2546
|
useEffect(function () {
|
2544
|
-
onTabChange && onTabChange(
|
2545
|
-
var updateIndicator = function (
|
2546
|
-
var
|
2547
|
-
if (
|
2548
|
-
|
2547
|
+
onTabChange && onTabChange(activeTab);
|
2548
|
+
var updateIndicator = function () {
|
2549
|
+
var index = tabs.findIndex(function (tab) { return tab.id === activeTab; });
|
2550
|
+
if (index !== -1) {
|
2551
|
+
var tab = tabRefs.current[index];
|
2552
|
+
if (tab) {
|
2553
|
+
setIndicatorStyle({ left: tab.offsetLeft, width: tab.offsetWidth });
|
2554
|
+
}
|
2549
2555
|
}
|
2550
2556
|
};
|
2551
|
-
updateIndicator(
|
2557
|
+
updateIndicator();
|
2552
2558
|
}, [activeTab]);
|
2559
|
+
var handleTabClick = function (id) {
|
2560
|
+
if (!isControlled) {
|
2561
|
+
setInternalActiveTabId(id);
|
2562
|
+
}
|
2563
|
+
onTabChange === null || onTabChange === undefined ? undefined : onTabChange(id);
|
2564
|
+
};
|
2553
2565
|
return (React__default.createElement(TabsContainer, null,
|
2554
2566
|
React__default.createElement(TabsList, null,
|
2555
|
-
tabs.map(function (tab, index) { return (React__default.createElement(Tab
|
2556
|
-
// @ts-ignore
|
2557
|
-
, {
|
2558
|
-
// @ts-ignore
|
2559
|
-
ref: function (el) { return (tabRefs.current[index] = el); }, key: index, active: activeTab === index, onClick: function () { return setActiveTab(index); }, font: font, accentColor: accentColor, displayMode: displayMode, tabPadding: tabPadding }, (font === null || font === undefined ? undefined : font.casing) ? formatText(tab.label, font.casing) : tab.label)); }),
|
2567
|
+
tabs.map(function (tab, index) { return (React__default.createElement(Tab, { ref: function (el) { tabRefs.current[index] = el; }, key: tab.id, active: activeTab === tab.id, onClick: function () { return handleTabClick(tab.id); }, font: font, accentColor: accentColor, displayMode: displayMode, tabPadding: tabPadding }, (font === null || font === undefined ? undefined : font.casing) ? formatText(tab.label, font.casing) : tab.label)); }),
|
2560
2568
|
React__default.createElement(ActiveIndicator, { accentColor: accentColor, left: indicatorStyle.left, width: indicatorStyle.width })),
|
2561
|
-
React__default.createElement(TabPanel, null, tabs
|
2569
|
+
React__default.createElement(TabPanel, null, (_c = tabs.find(function (tab) { return tab.id === activeTab; })) === null || _c === undefined ? undefined : _c.content)));
|
2562
2570
|
};
|
2563
2571
|
var TabsContainer = newStyled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n position: relative;\n"], ["\n width: 100%;\n position: relative;\n"])));
|
2564
2572
|
var TabsList = newStyled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n position: relative;\n"], ["\n display: flex;\n justify-content: center;\n position: relative;\n"])));
|