@symply.io/basic-components 1.4.4-beta.1 → 1.4.4-beta.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/TabGroup/index.d.ts +1 -2
- package/TabGroup/index.js +27 -19
- package/TabGroup/types.d.ts +9 -4
- package/package.json +1 -1
package/TabGroup/index.d.ts
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
/// <reference types="react" />
|
2
1
|
import type { TabGroupProps } from "./types";
|
3
|
-
declare
|
2
|
+
declare function TabGroup(props: TabGroupProps): JSX.Element;
|
4
3
|
export default TabGroup;
|
5
4
|
export type { TabGroupProps };
|
package/TabGroup/index.js
CHANGED
@@ -9,33 +9,41 @@ var __assign = (this && this.__assign) || function () {
|
|
9
9
|
};
|
10
10
|
return __assign.apply(this, arguments);
|
11
11
|
};
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
+
var t = {};
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
+
t[p] = s[p];
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
+
t[p[i]] = s[p[i]];
|
20
|
+
}
|
21
|
+
return t;
|
22
|
+
};
|
12
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
13
|
-
import {
|
24
|
+
import { useCallback } from "react";
|
25
|
+
import { navigate } from "@reach/router";
|
14
26
|
import Tab from "@mui/material/Tab";
|
15
27
|
import Tabs from "@mui/material/Tabs";
|
16
28
|
import useMediaQuery from "@mui/material/useMediaQuery";
|
17
29
|
import ThemeProvider from "@mui/material/styles/ThemeProvider";
|
18
30
|
import useCustomTheme from "../useCustomTheme";
|
19
|
-
|
20
|
-
var tabs = props.tabs, _a = props.textColor, textColor = _a === void 0 ? "primary" : _a, _b = props.variant, variant = _b === void 0 ? "scrollable" : _b, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor,
|
31
|
+
function TabGroup(props) {
|
32
|
+
var tabs = props.tabs, _a = props.textColor, textColor = _a === void 0 ? "primary" : _a, _b = props.variant, variant = _b === void 0 ? "scrollable" : _b, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, currentTabIndex = props.currentTabIndex, onChange = props.onChange, rest = __rest(props, ["tabs", "textColor", "variant", "primaryColor", "secondaryColor", "currentTabIndex", "onChange"]);
|
21
33
|
var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
|
22
34
|
var mobileViewport = useMediaQuery(theme.breakpoints.down("md"));
|
23
|
-
var
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
setCurrentTabIndex(outerTabIndex);
|
35
|
+
var onTabClick = useCallback(function (_, val) {
|
36
|
+
var tab = tabs[val];
|
37
|
+
if (tab) {
|
38
|
+
if (onChange) {
|
39
|
+
onChange({ tabIndex: val, url: tab.url });
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
navigate(tab.url);
|
43
|
+
}
|
33
44
|
}
|
34
|
-
}, [
|
35
|
-
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Tabs, __assign({ value: currentTabIndex, TabIndicatorProps: { hidden: true }, variant: mobileViewport ? "scrollable" : variant, textColor: textColor, onChange: function (
|
36
|
-
onClick(val);
|
37
|
-
onTabChange(val);
|
38
|
-
} }, { children: tabs.map(function (tab, index) {
|
45
|
+
}, [tabs]);
|
46
|
+
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Tabs, __assign({ value: currentTabIndex, TabIndicatorProps: { hidden: true }, variant: mobileViewport ? "scrollable" : variant, textColor: textColor, onChange: onTabClick }, rest, { children: tabs.map(function (tab, index) {
|
39
47
|
var text = tab.text, _a = tab.disabled, disabled = _a === void 0 ? false : _a;
|
40
48
|
var active = currentTabIndex === index;
|
41
49
|
return (_jsx(Tab, { disableFocusRipple: true, disableRipple: true, label: text, disabled: disabled, sx: {
|
@@ -46,5 +54,5 @@ var TabGroup = forwardRef(function (props, ref) {
|
|
46
54
|
boxShadow: active ? "0px 4px 6px #acc1c2" : undefined
|
47
55
|
} }, index));
|
48
56
|
}) })) })));
|
49
|
-
}
|
57
|
+
}
|
50
58
|
export default TabGroup;
|
package/TabGroup/types.d.ts
CHANGED
@@ -1,14 +1,19 @@
|
|
1
1
|
import { CSSProperties } from "react";
|
2
2
|
import { TabsProps } from "@mui/material/Tabs";
|
3
|
-
export interface TabGroupProps {
|
4
|
-
textColor?: TabsProps["textColor"];
|
3
|
+
export interface TabGroupProps extends Omit<TabsProps, "onChange"> {
|
5
4
|
tabs: Array<{
|
6
5
|
text: string;
|
7
6
|
disabled?: boolean;
|
7
|
+
url: string;
|
8
8
|
}>;
|
9
|
-
variant?: TabsProps["variant"];
|
10
9
|
currentTabIndex?: number;
|
11
10
|
primaryColor?: CSSProperties["color"];
|
12
11
|
secondaryColor?: CSSProperties["color"];
|
13
|
-
|
12
|
+
onChange?: (args: {
|
13
|
+
tabIndex: number;
|
14
|
+
url: string;
|
15
|
+
}) => unknown;
|
16
|
+
}
|
17
|
+
export interface TabGroupStates {
|
18
|
+
onChange: TabsProps["onChange"];
|
14
19
|
}
|