@arcblock/ux 2.11.31 → 2.11.33
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.
@@ -1,14 +1,13 @@
|
|
1
|
-
import { Link as RouterLink } from 'react-router-dom';
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
import { type NavLinkRenderProps, Link as RouterLink, NavLink as RouterNavLink } from 'react-router-dom';
|
2
|
+
type RouterLinkProps = React.ComponentProps<typeof RouterLink>;
|
3
|
+
type RouterNavLinkProps = React.ComponentProps<typeof RouterNavLink>;
|
4
|
+
export interface LinkProps extends RouterLinkProps {
|
5
5
|
external?: false | true;
|
6
6
|
}
|
7
|
-
export interface LinkProps extends Omit<ExternalLinkProps, 'routerLinkComponent'> {
|
8
|
-
}
|
9
7
|
export declare function Link(props: LinkProps): import("react/jsx-runtime").JSX.Element;
|
10
|
-
export interface NavLinkProps extends Omit<
|
11
|
-
className?: string | (() => string);
|
8
|
+
export interface NavLinkProps extends Omit<RouterNavLinkProps, 'className'> {
|
9
|
+
className?: string | ((props: Partial<NavLinkRenderProps>) => string | undefined);
|
10
|
+
external?: false | true;
|
12
11
|
}
|
13
12
|
export declare function NavLink({ className, ...rest }: NavLinkProps): import("react/jsx-runtime").JSX.Element;
|
14
13
|
export {};
|
@@ -9,17 +9,25 @@ function ExternalLink({
|
|
9
9
|
...rest
|
10
10
|
}) {
|
11
11
|
if (external) {
|
12
|
-
return
|
13
|
-
|
12
|
+
return (
|
13
|
+
/*#__PURE__*/
|
14
|
+
// @ts-expect-error
|
15
|
+
_jsx("a", {
|
16
|
+
href: to,
|
17
|
+
...rest,
|
18
|
+
children: children
|
19
|
+
})
|
20
|
+
);
|
21
|
+
}
|
22
|
+
return (
|
23
|
+
/*#__PURE__*/
|
24
|
+
// @ts-ignore
|
25
|
+
_jsx(RouterLinkComponent, {
|
26
|
+
to: to,
|
14
27
|
...rest,
|
15
28
|
children: children
|
16
|
-
})
|
17
|
-
|
18
|
-
return /*#__PURE__*/_jsx(RouterLinkComponent, {
|
19
|
-
to: to,
|
20
|
-
...rest,
|
21
|
-
children: children
|
22
|
-
});
|
29
|
+
})
|
30
|
+
);
|
23
31
|
}
|
24
32
|
export function Link(props) {
|
25
33
|
return /*#__PURE__*/_jsx(ExternalLink, {
|
@@ -32,7 +40,7 @@ export function NavLink({
|
|
32
40
|
...rest
|
33
41
|
}) {
|
34
42
|
// NavLink#className 支持 function
|
35
|
-
const classes = typeof className === 'function' ? className() : className;
|
43
|
+
const classes = rest.external && typeof className === 'function' ? className({}) : className;
|
36
44
|
return /*#__PURE__*/_jsx(ExternalLink, {
|
37
45
|
routerLinkComponent: RouterNavLink,
|
38
46
|
className: classes,
|
@@ -23,8 +23,10 @@ function renderItem(item, index) {
|
|
23
23
|
children: /*#__PURE__*/_jsxs(NavLink, {
|
24
24
|
external: external,
|
25
25
|
to: url,
|
26
|
-
className: (
|
27
|
-
|
26
|
+
className: ({
|
27
|
+
isActive
|
28
|
+
}) => clsx('layout-sidebar-link', {
|
29
|
+
'layout-sidebar-link--active': external ? active : isActive
|
28
30
|
}),
|
29
31
|
children: [icon && /*#__PURE__*/_jsx("span", {
|
30
32
|
className: `layout-sidebar-icon ${showBadge ? 'layout-sidebar-badge' : ''}`,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@arcblock/ux",
|
3
|
-
"version": "2.11.
|
3
|
+
"version": "2.11.33",
|
4
4
|
"description": "Common used react components for arcblock products",
|
5
5
|
"keywords": [
|
6
6
|
"react",
|
@@ -68,12 +68,12 @@
|
|
68
68
|
"react": ">=18.2.0",
|
69
69
|
"react-router-dom": ">=6.22.3"
|
70
70
|
},
|
71
|
-
"gitHead": "
|
71
|
+
"gitHead": "96db26b284912b24165e233da62fb5e50091bf41",
|
72
72
|
"dependencies": {
|
73
73
|
"@arcblock/did-motif": "^1.1.13",
|
74
|
-
"@arcblock/icons": "^2.11.
|
75
|
-
"@arcblock/nft-display": "^2.11.
|
76
|
-
"@arcblock/react-hooks": "^2.11.
|
74
|
+
"@arcblock/icons": "^2.11.33",
|
75
|
+
"@arcblock/nft-display": "^2.11.33",
|
76
|
+
"@arcblock/react-hooks": "^2.11.33",
|
77
77
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
78
78
|
"@fontsource/inter": "^5.0.16",
|
79
79
|
"@fontsource/ubuntu-mono": "^5.0.18",
|
@@ -1,11 +1,17 @@
|
|
1
|
-
import
|
2
|
-
import { Link as RouterLink, NavLink as RouterNavLink } from 'react-router-dom';
|
1
|
+
import { type NavLinkRenderProps, Link as RouterLink, NavLink as RouterNavLink } from 'react-router-dom';
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
type RouterLinkProps = React.ComponentProps<typeof RouterLink>;
|
4
|
+
type RouterNavLinkProps = React.ComponentProps<typeof RouterNavLink>;
|
5
|
+
type ExternalLinkProps = {
|
7
6
|
external?: false | true;
|
8
|
-
}
|
7
|
+
} & (
|
8
|
+
| ({
|
9
|
+
routerLinkComponent: typeof RouterLink;
|
10
|
+
} & RouterLinkProps)
|
11
|
+
| ({
|
12
|
+
routerLinkComponent: typeof RouterNavLink;
|
13
|
+
} & RouterNavLinkProps)
|
14
|
+
);
|
9
15
|
|
10
16
|
// 包裹 router Link/NavLink 组件, 支持 external link (external 为 true 时渲染为 a 标签)
|
11
17
|
function ExternalLink({
|
@@ -17,30 +23,37 @@ function ExternalLink({
|
|
17
23
|
}: ExternalLinkProps) {
|
18
24
|
if (external) {
|
19
25
|
return (
|
20
|
-
|
26
|
+
// @ts-expect-error
|
27
|
+
<a href={to} {...rest}>
|
28
|
+
{/* @ts-expect-error */}
|
21
29
|
{children}
|
22
30
|
</a>
|
23
31
|
);
|
24
32
|
}
|
25
33
|
return (
|
34
|
+
// @ts-ignore
|
26
35
|
<RouterLinkComponent to={to} {...rest}>
|
36
|
+
{/* @ts-expect-error */}
|
27
37
|
{children}
|
28
38
|
</RouterLinkComponent>
|
29
39
|
);
|
30
40
|
}
|
31
41
|
|
32
|
-
export interface LinkProps extends
|
42
|
+
export interface LinkProps extends RouterLinkProps {
|
43
|
+
external?: false | true;
|
44
|
+
}
|
33
45
|
|
34
46
|
export function Link(props: LinkProps) {
|
35
47
|
return <ExternalLink routerLinkComponent={RouterLink} {...props} />;
|
36
48
|
}
|
37
49
|
|
38
|
-
export interface NavLinkProps extends Omit<
|
39
|
-
className?: string | (() => string);
|
50
|
+
export interface NavLinkProps extends Omit<RouterNavLinkProps, 'className'> {
|
51
|
+
className?: string | ((props: Partial<NavLinkRenderProps>) => string | undefined);
|
52
|
+
external?: false | true;
|
40
53
|
}
|
41
54
|
|
42
55
|
export function NavLink({ className = '', ...rest }: NavLinkProps) {
|
43
56
|
// NavLink#className 支持 function
|
44
|
-
const classes = typeof className === 'function' ? className() : className;
|
57
|
+
const classes = rest.external && typeof className === 'function' ? className({}) : className;
|
45
58
|
return <ExternalLink routerLinkComponent={RouterNavLink} className={classes} {...rest} />;
|
46
59
|
}
|
@@ -28,7 +28,9 @@ function renderItem(item: LinkItem, index: number) {
|
|
28
28
|
<NavLink
|
29
29
|
external={external}
|
30
30
|
to={url}
|
31
|
-
className={(
|
31
|
+
className={({ isActive }) =>
|
32
|
+
clsx('layout-sidebar-link', { 'layout-sidebar-link--active': external ? active : isActive })
|
33
|
+
}>
|
32
34
|
{icon && <span className={`layout-sidebar-icon ${showBadge ? 'layout-sidebar-badge' : ''}`}>{icon}</span>}
|
33
35
|
<Typography component="span" className="layout-sidebar-link-text">
|
34
36
|
{title}
|