@arcblock/ux 2.11.30 → 2.11.32

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
- interface ExternalLinkProps extends React.ComponentProps<typeof RouterLink> {
3
- routerLinkComponent: React.ElementType;
4
- to: string | object;
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<ExternalLinkProps, 'routerLinkComponent' | 'className'> {
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 /*#__PURE__*/_jsx("a", {
13
- href: to,
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: () => clsx('layout-sidebar-link', {
27
- 'layout-sidebar-link--active': external ? active : false
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.30",
3
+ "version": "2.11.32",
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": "a4a88b339b04b907c7f76927806324c98d4b2904",
71
+ "gitHead": "965afb3d355e01d89fb90f5e39c6b96389fbbe07",
72
72
  "dependencies": {
73
73
  "@arcblock/did-motif": "^1.1.13",
74
- "@arcblock/icons": "^2.11.30",
75
- "@arcblock/nft-display": "^2.11.30",
76
- "@arcblock/react-hooks": "^2.11.30",
74
+ "@arcblock/icons": "^2.11.32",
75
+ "@arcblock/nft-display": "^2.11.32",
76
+ "@arcblock/react-hooks": "^2.11.32",
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 PropTypes from 'prop-types';
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
- interface ExternalLinkProps extends React.ComponentProps<typeof RouterLink> {
5
- routerLinkComponent: React.ElementType;
6
- to: string | object;
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
- <a href={to as string} {...rest}>
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 Omit<ExternalLinkProps, 'routerLinkComponent'> {}
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<ExternalLinkProps, 'routerLinkComponent' | 'className'> {
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={() => clsx('layout-sidebar-link', { 'layout-sidebar-link--active': external ? active : false })}>
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}
@@ -19,10 +19,11 @@ import AccountCircleOffOutlineRoundedIcon from '@iconify-icons/material-symbols/
19
19
  import InviteIcon from '@iconify-icons/material-symbols/featured-seasonal-and-gifts-rounded';
20
20
  import Copy from 'copy-to-clipboard';
21
21
  import noop from 'lodash/noop';
22
+ import bridge from '@arcblock/bridge';
22
23
 
23
24
  import Toast from '../../Toast';
24
25
  import DidAvatar from '../../Avatar';
25
- import { getUserAvatar } from '../../Util';
26
+ import { getUserAvatar, getVisitorId } from '../../Util';
26
27
  import UserInfo from './user-info';
27
28
  import { temp as colors } from '../../Colors';
28
29
  import { DASHBOARD_URL, PROFILE_URL } from '../../Util/constant';