Parcourir la source

修改首页加载Skeletion

xyh il y a 2 ans
Parent
commit
f1b99fe6b1

+ 2 - 1
packages/app/__tests__/hooks/usePageContext.ts

@@ -1,5 +1,6 @@
 import {usePage, createPageContext} from '@hooks';
 import {renderHook} from '@testing-library/react';
+import {PAGE_SIZE_LIST} from '@utils';
 
 describe('usePageContext', function() {
   it('usePage, createContext 类型正确', function() {
@@ -17,7 +18,7 @@ describe('usePageContext', function() {
       return usePage(context);
     });
 
-    expect(result.current[0]).toEqual({page: 1, pageSize: 10});
+    expect(result.current[0]).toEqual({page: 1, pageSize: Number(PAGE_SIZE_LIST[1])});
     expect(result.current[1]).toBeInstanceOf(Function);
   });
 });

+ 1 - 1
packages/app/package.json

@@ -13,7 +13,7 @@
     "@hookform/resolvers": "^2.9.10",
     "@tanstack/react-query": "^4.23.0",
     "ahooks": "^3.7.4",
-    "antd": "^5.1.7",
+    "antd": "^5.2.0",
     "axios": "^1.2.6",
     "classnames": "^2.3.2",
     "fast-deep-equal": "^3.1.3",

+ 2 - 2
packages/app/src/pages/department/index.tsx

@@ -15,10 +15,10 @@ const Department: FC = function() {
   return (
     <DepartmentProvider>
       <PageProvider context={pageContext}>
-        <main className='content-main'>
+        <section className='content-main'>
           <Filter />
           <TableList />
-        </main>
+        </section>
       </PageProvider>
     </DepartmentProvider>
   );

+ 2 - 2
packages/app/src/pages/goods/index.tsx

@@ -16,10 +16,10 @@ const Goods: FC = function() {
   return (
     <GoodsProvider>
       <PageProvider context={pageContext}>
-        <main className='content-main'>
+        <section className='content-main'>
           <Filter />
           <TableList />
-        </main>
+        </section>
       </PageProvider>
     </GoodsProvider>
   );

+ 41 - 0
packages/app/src/pages/home/Skeleton.tsx

@@ -0,0 +1,41 @@
+import {Layout, Skeleton} from 'antd';
+import {CSSProperties, FC} from 'react';
+
+const style: CSSProperties = {
+  width: '100%', height: '100%', display: 'block',
+};
+
+const HomeSkeleton: FC = function() {
+  return (
+    <Layout className='container' style={{padding: '16px'}}>
+      <Layout.Header style={{background: 'transparent', padding: '0'}}>
+        <Skeleton.Input
+          rootClassName='height-full'
+          style={{height: '100%', marginTop: '5px'}}
+          block
+          active
+        />
+      </Layout.Header>
+
+      <Layout style={{marginTop: '20px'}}>
+        <Layout.Sider style={{background: 'transparent'}}>
+          <Skeleton.Input
+            block
+            active
+            style={style}
+            rootClassName='height-full'
+          />
+        </Layout.Sider>
+
+        <Layout.Content style={{marginLeft: '20px'}}>
+          <Skeleton active />
+          <Skeleton active style={{marginTop: '20px'}} />
+          <Skeleton active style={{marginTop: '20px'}} />
+          <Skeleton active style={{marginTop: '20px'}} />
+        </Layout.Content>
+      </Layout>
+    </Layout>
+  );
+};
+
+export default HomeSkeleton;

+ 5 - 5
packages/app/src/pages/home/index.tsx

@@ -4,12 +4,12 @@ import {Layout} from 'antd';
 import logo from '@assets/images/logo.png';
 import Menu from './menu';
 import User from './user';
-import {useOutlet} from 'react-router-dom';
-import {Auth, ErrorBoundary, Footer, Jurisdiction, Loading} from '@components';
+import {Outlet} from 'react-router-dom';
+import {Auth, ErrorBoundary, Footer, Jurisdiction} from '@components';
 import {useMenu} from './hooks';
+import HomeSkeleton from './Skeleton';
 
 const Home: FC = function() {
-  const Outlet = useOutlet();
   const menus = useMenu();
 
   return (
@@ -27,7 +27,7 @@ const Home: FC = function() {
         <Layout.Content>
           <Suspense>
             <Jurisdiction>
-              {Outlet}
+              <Outlet />
             </Jurisdiction>
           </Suspense>
           <Footer color='#666' />
@@ -42,7 +42,7 @@ const HomeSuspense: FC = function() {
     <Auth>
       <main className='container'>
         <ErrorBoundary>
-          <Suspense fallback={<Loading tip='正在加载' />}>
+          <Suspense fallback={<HomeSkeleton />}>
             <Home />
           </Suspense>
         </ErrorBoundary>

+ 1 - 1
packages/app/src/pages/home/user/hook.tsx

@@ -1,5 +1,5 @@
 import {MenuProps, Modal} from 'antd';
-import {LogoutOutlined, ProfileOutlined} from '@ant-design/icons';
+import {LogoutOutlined} from '@ant-design/icons';
 import {useStore} from 'zustand';
 import {userStore} from '@stores';
 import {useNavigate} from 'react-router-dom';

+ 2 - 2
packages/app/src/pages/menu-id/index.tsx

@@ -35,10 +35,10 @@ const ChildMenu: FC<Props> = function({id, onClose}) {
     <PIdProvider id={id}>
       <MenuProvider onClose={onClose}>
         <PageProvider context={pageContext}>
-          <main className='content-main'>
+          <section className='content-main'>
             <Filter />
             <TableList />
-          </main>
+          </section>
         </PageProvider>
       </MenuProvider>
     </PIdProvider>

+ 2 - 2
packages/app/src/pages/menu/index.tsx

@@ -16,10 +16,10 @@ const Menu: FC = function() {
   return (
     <MenuProvider>
       <PageProvider context={pageContext}>
-        <main className='content-main'>
+        <section className='content-main'>
           <Filter />
           <TableList />
-        </main>
+        </section>
       </PageProvider>
     </MenuProvider>
   );

+ 2 - 2
packages/app/src/pages/role/index.tsx

@@ -16,10 +16,10 @@ const Role: FC = function() {
   return (
     <RoleProvider>
       <PageProvider context={pageContext}>
-        <main className='content-main'>
+        <section className='content-main'>
           <Filter />
           <TableList />
-        </main>
+        </section>
       </PageProvider>
     </RoleProvider>
   );

+ 2 - 2
packages/app/src/pages/storage/index.tsx

@@ -17,10 +17,10 @@ const Storage: FC = function() {
     <>
       <StorageProvider>
         <PageProvider context={pageContext}>
-          <main className='content-main'>
+          <section className='content-main'>
             <Filter />
             <TableList />
-          </main>
+          </section>
         </PageProvider>
       </StorageProvider>
     </>

+ 2 - 2
packages/app/src/pages/user/index.tsx

@@ -16,10 +16,10 @@ const User: FC = function() {
   return (
     <UserProvider>
       <PageProvider context={pageContext}>
-        <main className='content-main'>
+        <section className='content-main'>
           <Filter />
           <TableList />
-        </main>
+        </section>
       </PageProvider>
     </UserProvider>
   );

+ 1 - 1
packages/app/src/routes/routes.tsx

@@ -32,7 +32,7 @@ const NoPermision = lazy(() => import(
 ));
 const User = lazy(() => import(/* webpackChunkName: "userPage" */'@pages/user'));
 const Storage = lazy(() => import(/* webpackChunkName: "storagePage" */'@pages/storage'));
-const Goods = lazy(() => import(/** webpackChunkName: "goods" */'@pages/goods'));
+const Goods = lazy(() => import(/* webpackChunkName: "goods" */'@pages/goods'));
 
 const routes: RouteObject[] = [
   {

+ 5 - 1
packages/app/src/styles/index.css

@@ -105,10 +105,14 @@ img {
 }
 
 .height-full {
-  width: 100%;
+  height: 100%;
 }
 
 .content-full {
   width: 100%;
   height: 100%;
 }
+
+.display-block {
+  display: block;
+}

+ 6 - 8
packages/app/src/utils/sortMenu.ts

@@ -17,19 +17,17 @@ export function sortMenu(menus: TreeRoleMenuData[]) {
   menus.forEach(function({id, pId, name, url}) {
     const data = {key: id, title: name, label: name, pid: pId, url};
 
-    if (pId === '0')
-      topMenu.push(data);
-    else
-      childMenu.push(data);
+    pId === '0'
+      ? topMenu.push(data)
+      : childMenu.push(data);
   });
 
   // 填充一级菜单
   childMenu.forEach(function(data) {
     const index = topMenu.findIndex(val => val.key === data.pid);
-    if (topMenu[index]?.children)
-      topMenu[index]!.children!.push(data);
-    else
-      topMenu[index] = {...topMenu[index], children: [data]};
+    topMenu[index]?.children
+      ? topMenu[index]!.children!.push(data)
+      : topMenu[index] = {...topMenu[index], children: [data]};
   });
 
   return topMenu;

+ 1 - 0
packages/app/src/utils/types.ts

@@ -1,4 +1,5 @@
 import {FC, ReactNode} from 'react';
 
 /** 有子组件的FC */
+// eslint-disable-next-line @typescript-eslint/ban-types
 export type ChildrenFC<T = {}> = FC<{children: ReactNode} & T>;

+ 5 - 0
packages/webpack/config/plugins.js

@@ -27,6 +27,11 @@ const plugins = [
     async: isDevelopment,
     typescript: {
       configFile: resolve(rootPath, './tsconfig.json'),
+      mode: 'write-references',
+      tsBuildInfoFile: resolve(rootPath, '.temp-cache/tsconfig.tsbuildinfo'),
+      diagnosticOptions: {
+        syntactic: true,
+      },
     },
     issue: {
       include: [

+ 1 - 1
packages/webpack/package.json

@@ -28,7 +28,7 @@
     "esbuild-loader": "^2.20.0",
     "eslint-webpack-plugin": "^3.2.0",
     "file-loader": "^6.2.0",
-    "fork-ts-checker-webpack-plugin": "^7.2.13",
+    "fork-ts-checker-webpack-plugin": "7.3.0",
     "html-webpack-plugin": "^5.5.0",
     "identity-obj-proxy": "^3.0.0",
     "ip": "^1.1.8",

+ 93 - 94
pnpm-lock.yaml

@@ -52,7 +52,7 @@ importers:
       '@types/react-dom': ^18.0.10
       '@types/react-modal': ^3.13.1
       ahooks: ^3.7.4
-      antd: ^5.1.7
+      antd: ^5.2.0
       axios: ^1.2.6
       classnames: ^2.3.2
       fast-deep-equal: ^3.1.3
@@ -73,7 +73,7 @@ importers:
       '@hookform/resolvers': 2.9.10_react-hook-form@7.43.0
       '@tanstack/react-query': 4.23.0_biqbaboplfbrettd7655fr4n2y
       ahooks: 3.7.4_react@18.2.0
-      antd: 5.1.7_biqbaboplfbrettd7655fr4n2y
+      antd: 5.2.0_biqbaboplfbrettd7655fr4n2y
       axios: 1.2.6
       classnames: 2.3.2
       fast-deep-equal: 3.1.3
@@ -118,7 +118,7 @@ importers:
       esbuild-loader: ^2.20.0
       eslint-webpack-plugin: ^3.2.0
       file-loader: ^6.2.0
-      fork-ts-checker-webpack-plugin: ^7.2.13
+      fork-ts-checker-webpack-plugin: 7.3.0
       html-webpack-plugin: ^5.5.0
       identity-obj-proxy: ^3.0.0
       ip: ^1.1.8
@@ -158,7 +158,7 @@ importers:
       esbuild-loader: 2.20.0_webpack@5.75.0
       eslint-webpack-plugin: 3.2.0_webpack@5.75.0
       file-loader: 6.2.0_webpack@5.75.0
-      fork-ts-checker-webpack-plugin: 7.2.13_webpack@5.75.0
+      fork-ts-checker-webpack-plugin: 7.3.0_webpack@5.75.0
       html-webpack-plugin: 5.5.0_webpack@5.75.0
       identity-obj-proxy: 3.0.0
       ip: 1.1.8
@@ -207,7 +207,7 @@ packages:
       react: '>=16.0.0'
       react-dom: '>=16.0.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       '@emotion/hash': 0.8.0
       '@emotion/unitless': 0.7.5
       classnames: 2.3.2
@@ -243,7 +243,7 @@ packages:
     peerDependencies:
       react: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       json2mq: 0.2.0
       react: 18.2.0
@@ -2199,7 +2199,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
@@ -2220,14 +2220,14 @@ packages:
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /@rc-component/tour/1.1.0_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-Cy45VnNEDq6DLF5eKonIflObDfofbPq7AJpSf18qLN+j9+wW+sNlRv3JnCMDUsCdhSlnM4+yJ1RMokKp9GCpOQ==}
+  /@rc-component/tour/1.6.0_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-b/s7LCb7bW4wxpWfZyNpl7khHUzSyObSlsLaIScRGd+W/v1wFVk8F7gRytl/z8ik9ZSXbLWx9EvexIuHoO/RcQ==}
     engines: {node: '>=8.x'}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       '@rc-component/portal': 1.1.0_biqbaboplfbrettd7655fr4n2y
       classnames: 2.3.2
       rc-trigger: 5.3.4_biqbaboplfbrettd7655fr4n2y
@@ -2390,7 +2390,7 @@ packages:
     dependencies:
       '@svgr/core': 6.5.1
       cosmiconfig: 7.1.0
-      deepmerge: 4.2.2
+      deepmerge: 4.3.0
       svgo: 2.8.0
     dev: true
 
@@ -3448,8 +3448,8 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  /antd/5.1.7_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-rz7wrUPWfE1WAt7o8vlTmjfxVmbV0Vyh00PEO8F837Gq0wugvOiWVPJ4BI/piIxUIpKXASYmCYWOczoHCkwBMQ==}
+  /antd/5.2.0_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-FZDgV60I2sZ0ZpxcP1vq+lwNM+OwMESjT1A2Zs9mgyK1P3X4JILugD+m05IZoUqkjWO80IKNUo9qkE1S1rEB6A==}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
@@ -3458,42 +3458,42 @@ packages:
       '@ant-design/cssinjs': 1.5.6_biqbaboplfbrettd7655fr4n2y
       '@ant-design/icons': 5.0.1_biqbaboplfbrettd7655fr4n2y
       '@ant-design/react-slick': 1.0.0_react@18.2.0
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       '@ctrl/tinycolor': 3.5.0
       '@rc-component/mutate-observer': 1.0.0_biqbaboplfbrettd7655fr4n2y
-      '@rc-component/tour': 1.1.0_biqbaboplfbrettd7655fr4n2y
+      '@rc-component/tour': 1.6.0_biqbaboplfbrettd7655fr4n2y
       classnames: 2.3.2
       copy-to-clipboard: 3.3.3
       dayjs: 1.11.7
       qrcode.react: 3.1.0_react@18.2.0
       rc-cascader: 3.8.0_biqbaboplfbrettd7655fr4n2y
       rc-checkbox: 2.3.2_biqbaboplfbrettd7655fr4n2y
-      rc-collapse: 3.4.2_biqbaboplfbrettd7655fr4n2y
+      rc-collapse: 3.5.2_biqbaboplfbrettd7655fr4n2y
       rc-dialog: 9.0.2_biqbaboplfbrettd7655fr4n2y
       rc-drawer: 6.1.2_biqbaboplfbrettd7655fr4n2y
       rc-dropdown: 4.0.1_biqbaboplfbrettd7655fr4n2y
-      rc-field-form: 1.27.3_biqbaboplfbrettd7655fr4n2y
+      rc-field-form: 1.27.4_biqbaboplfbrettd7655fr4n2y
       rc-image: 5.13.0_biqbaboplfbrettd7655fr4n2y
-      rc-input: 0.1.4_biqbaboplfbrettd7655fr4n2y
+      rc-input: 0.2.2_biqbaboplfbrettd7655fr4n2y
       rc-input-number: 7.4.0_biqbaboplfbrettd7655fr4n2y
-      rc-mentions: 1.13.1_biqbaboplfbrettd7655fr4n2y
+      rc-mentions: 2.0.0_biqbaboplfbrettd7655fr4n2y
       rc-menu: 9.8.2_biqbaboplfbrettd7655fr4n2y
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
       rc-notification: 5.0.2_biqbaboplfbrettd7655fr4n2y
       rc-pagination: 3.2.0_biqbaboplfbrettd7655fr4n2y
-      rc-picker: 3.1.4_mlnkrlbros4rghcauwy625gk7y
+      rc-picker: 3.1.5_mlnkrlbros4rghcauwy625gk7y
       rc-progress: 3.4.1_biqbaboplfbrettd7655fr4n2y
       rc-rate: 2.9.2_biqbaboplfbrettd7655fr4n2y
-      rc-resize-observer: 1.2.1_biqbaboplfbrettd7655fr4n2y
-      rc-segmented: 2.1.0_biqbaboplfbrettd7655fr4n2y
+      rc-resize-observer: 1.3.0_biqbaboplfbrettd7655fr4n2y
+      rc-segmented: 2.1.2_biqbaboplfbrettd7655fr4n2y
       rc-select: 14.2.0_biqbaboplfbrettd7655fr4n2y
-      rc-slider: 10.0.1_biqbaboplfbrettd7655fr4n2y
+      rc-slider: 10.1.1_biqbaboplfbrettd7655fr4n2y
       rc-steps: 6.0.0_biqbaboplfbrettd7655fr4n2y
       rc-switch: 4.0.0_biqbaboplfbrettd7655fr4n2y
       rc-table: 7.30.3_biqbaboplfbrettd7655fr4n2y
       rc-tabs: 12.5.6_biqbaboplfbrettd7655fr4n2y
-      rc-textarea: 0.4.7_biqbaboplfbrettd7655fr4n2y
-      rc-tooltip: 5.2.2_biqbaboplfbrettd7655fr4n2y
+      rc-textarea: 1.0.1_biqbaboplfbrettd7655fr4n2y
+      rc-tooltip: 5.3.1_biqbaboplfbrettd7655fr4n2y
       rc-tree: 5.7.2_biqbaboplfbrettd7655fr4n2y
       rc-tree-select: 5.6.0_biqbaboplfbrettd7655fr4n2y
       rc-trigger: 5.3.4_biqbaboplfbrettd7655fr4n2y
@@ -4410,6 +4410,11 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: true
 
+  /deepmerge/4.3.0:
+    resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
+    engines: {node: '>=0.10.0'}
+    dev: true
+
   /default-gateway/6.0.3:
     resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
     engines: {node: '>= 10'}
@@ -5488,8 +5493,8 @@ packages:
       is-callable: 1.2.7
     dev: true
 
-  /fork-ts-checker-webpack-plugin/7.2.13_webpack@5.75.0:
-    resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==}
+  /fork-ts-checker-webpack-plugin/7.3.0_webpack@5.75.0:
+    resolution: {integrity: sha512-IN+XTzusCjR5VgntYFgxbxVx3WraPRnKehBFrf00cMSrtUuW9MsG9dhL6MWpY6MkjC3wVwoujfCDgZZCQwbswA==}
     engines: {node: '>=12.13.0', yarn: '>=1.0.0'}
     peerDependencies:
       typescript: '>3.6.0'
@@ -5505,11 +5510,11 @@ packages:
       chalk: 4.1.2
       chokidar: 3.5.3
       cosmiconfig: 7.1.0
-      deepmerge: 4.2.2
+      deepmerge: 4.3.0
       fs-extra: 10.1.0
-      memfs: 3.4.12
+      memfs: 3.4.13
       minimatch: 3.1.2
-      node-abort-controller: 3.0.1
+      node-abort-controller: 3.1.1
       schema-utils: 3.1.1
       semver: 7.3.8
       tapable: 2.2.1
@@ -7109,8 +7114,8 @@ packages:
     engines: {node: '>= 0.6'}
     dev: true
 
-  /memfs/3.4.12:
-    resolution: {integrity: sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==}
+  /memfs/3.4.13:
+    resolution: {integrity: sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==}
     engines: {node: '>= 4.0.0'}
     dependencies:
       fs-monkey: 1.0.3
@@ -7278,8 +7283,8 @@ packages:
       tslib: 2.4.1
     dev: true
 
-  /node-abort-controller/3.0.1:
-    resolution: {integrity: sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==}
+  /node-abort-controller/3.1.1:
+    resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
     dev: true
 
   /node-forge/1.3.1:
@@ -8198,8 +8203,8 @@ packages:
     resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
     dev: true
 
-  /punycode/2.1.1:
-    resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
+  /punycode/2.3.0:
+    resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
     engines: {node: '>=6'}
     dev: true
 
@@ -8279,7 +8284,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       array-tree-filter: 2.1.0
       classnames: 2.3.2
       rc-select: 14.2.0_biqbaboplfbrettd7655fr4n2y
@@ -8295,25 +8300,24 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-collapse/3.4.2_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-jpTwLgJzkhAgp2Wpi3xmbTbbYExg6fkptL67Uu5LCRVEj6wqmy0DHTjjeynsjOLsppHGHu41t1ELntZ0lEvS/Q==}
+  /rc-collapse/3.5.2_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-/TNiT3DW1t3sUCiVD/DPUYooJZ3BLA93/2rZsB3eM2bGJCCla2X9D2E4tgm7LGMQGy5Atb2lMUn2FQuvQNvavQ==}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
-      shallowequal: 1.1.0
     dev: false
 
   /rc-dialog/9.0.2_biqbaboplfbrettd7655fr4n2y:
@@ -8322,7 +8326,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       '@rc-component/portal': 1.1.0_biqbaboplfbrettd7655fr4n2y
       classnames: 2.3.2
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
@@ -8337,7 +8341,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       '@rc-component/portal': 1.1.0_biqbaboplfbrettd7655fr4n2y
       classnames: 2.3.2
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
@@ -8352,7 +8356,7 @@ packages:
       react: '>=16.11.0'
       react-dom: '>=16.11.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-trigger: 5.3.4_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
@@ -8360,14 +8364,14 @@ packages:
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-field-form/1.27.3_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-HGqxHnmGQgkPApEcikV4qTg3BLPC82uB/cwBDftDt1pYaqitJfSl5TFTTUMKVEJVT5RqJ2Zi68ME1HmIMX2HAw==}
+  /rc-field-form/1.27.4_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-PQColQnZimGKArnOh8V2907+VzDCXcqtFvHgevDLtqWc/P7YASb/FqntSmdS8q3VND5SHX3Y1vgMIzY22/f/0Q==}
     engines: {node: '>=8.x'}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       async-validator: 4.2.5
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
@@ -8380,7 +8384,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       '@rc-component/portal': 1.1.0_biqbaboplfbrettd7655fr4n2y
       classnames: 2.3.2
       rc-dialog: 9.0.2_biqbaboplfbrettd7655fr4n2y
@@ -8396,7 +8400,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       '@rc-component/mini-decimal': 1.0.1
       classnames: 2.3.2
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
@@ -8404,29 +8408,30 @@ packages:
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-input/0.1.4_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-FqDdNz+fV2dKNgfXzcSLKvC+jEs1709t7nD+WdfjrdSaOcefpgc7BUJYadc3usaING+b7ediMTfKxuJBsEFbXA==}
+  /rc-input/0.2.2_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-xgkVcFgtRO0Hl9hmvslZhObNyxbSpTmy3nR1Tk4XrjjZ9lFJ7GcJBy6ss30Pdb0oX36cHzLN8I7VCjBGeRNB9A==}
     peerDependencies:
       react: '>=16.0.0'
       react-dom: '>=16.0.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-mentions/1.13.1_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-FCkaWw6JQygtOz0+Vxz/M/NWqrWHB9LwqlY2RtcuFqWJNFK9njijOOzTSsBGANliGufVUzx/xuPHmZPBV0+Hgw==}
+  /rc-mentions/2.0.0_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-58NSeM6R5MrgYAhR2TH27JgAN7ivp3iBTmty3q6gvrrGHelPMdGxpJ5aH7AIlodCrPWLAm1lT4XoiuI4s9snXA==}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
+      rc-input: 0.2.2_biqbaboplfbrettd7655fr4n2y
       rc-menu: 9.8.2_biqbaboplfbrettd7655fr4n2y
-      rc-textarea: 0.4.7_biqbaboplfbrettd7655fr4n2y
+      rc-textarea: 1.0.1_biqbaboplfbrettd7655fr4n2y
       rc-trigger: 5.3.4_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
@@ -8439,7 +8444,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
       rc-overflow: 1.2.8_biqbaboplfbrettd7655fr4n2y
@@ -8455,7 +8460,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
@@ -8469,7 +8474,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
@@ -8485,7 +8490,7 @@ packages:
     dependencies:
       '@babel/runtime': 7.20.13
       classnames: 2.3.2
-      rc-resize-observer: 1.2.1_biqbaboplfbrettd7655fr4n2y
+      rc-resize-observer: 1.3.0_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
@@ -8497,14 +8502,14 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-picker/3.1.4_mlnkrlbros4rghcauwy625gk7y:
-    resolution: {integrity: sha512-4qANXNc3C02YENNQvun329zf9VLvSQ2W8RkKQRu8k1P+EtSGqe3klcAKCfz/1TuCiDvgRjJlzRmyZAkwvsbI8w==}
+  /rc-picker/3.1.5_mlnkrlbros4rghcauwy625gk7y:
+    resolution: {integrity: sha512-Hh3ml+u+5mxLfl4ahVWlRGiX5+0EJrALR6tSW9yP0eea+6j+YjvjfetbvuVidViMDMweZa38dr8HTfAFLG6GFw==}
     engines: {node: '>=8.x'}
     peerDependencies:
       date-fns: '>= 2.x'
@@ -8520,14 +8525,13 @@ packages:
       moment:
         optional: true
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       dayjs: 1.11.7
       rc-trigger: 5.3.4_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
-      shallowequal: 1.1.0
     dev: false
 
   /rc-progress/3.4.1_biqbaboplfbrettd7655fr4n2y:
@@ -8536,7 +8540,7 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
@@ -8550,15 +8554,15 @@ packages:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-resize-observer/1.2.1_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-g53PnWLeVOmt4XWkt2x+QlIdf/PhJSd7JqHhtMrUY370e7wJ+kxbgXicYqvENUcgFiiOiMCd07YsC2GNsoSbnA==}
+  /rc-resize-observer/1.3.0_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-w6cgP6rKnOqsvVQii2iEPsVq96HqvKMTQk+Hi5MJJSMd6/z4BuCUqwuZuL9fcRcPUcnF7AMM+G/VOFcIirZexg==}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
@@ -8571,13 +8575,13 @@ packages:
       resize-observer-polyfill: 1.5.1
     dev: false
 
-  /rc-segmented/2.1.0_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-hUlonro+pYoZcwrH6Vm56B2ftLfQh046hrwif/VwLIw1j3zGt52p5mREBwmeVzXnSwgnagpOpfafspzs1asjGw==}
+  /rc-segmented/2.1.2_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-qGo1bCr83ESXpXVOCXjFe1QJlCAQXyi9KCiy8eX3rIMYlTeJr/ftySIaTnYsitL18SvWf5ZEHsfqIWoX0EMfFQ==}
     peerDependencies:
       react: '>=16.0.0'
       react-dom: '>=16.0.0'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
@@ -8592,7 +8596,7 @@ packages:
       react: '*'
       react-dom: '*'
     dependencies:
-      '@babel/runtime': 7.20.6
+      '@babel/runtime': 7.20.13
       classnames: 2.3.2
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
       rc-overflow: 1.2.8_biqbaboplfbrettd7655fr4n2y
@@ -8603,8 +8607,8 @@ packages:
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-slider/10.0.1_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-igTKF3zBet7oS/3yNiIlmU8KnZ45npmrmHlUUio8PNbIhzMcsh+oE/r2UD42Y6YD2D/s+kzCQkzQrPD6RY435Q==}
+  /rc-slider/10.1.1_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-gn8oXazZISEhnmRinI89Z/JD/joAaM35jp+gDtIVSTD/JJMCCBqThqLk1SVJmvtfeiEF/kKaFY0+qt4SDHFUDw==}
     engines: {node: '>=8.x'}
     peerDependencies:
       react: '>=16.9.0'
@@ -8615,7 +8619,6 @@ packages:
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
-      shallowequal: 1.1.0
     dev: false
 
   /rc-steps/6.0.0_biqbaboplfbrettd7655fr4n2y:
@@ -8655,7 +8658,7 @@ packages:
       '@babel/runtime': 7.20.13
       '@rc-component/context': 1.3.0_biqbaboplfbrettd7655fr4n2y
       classnames: 2.3.2
-      rc-resize-observer: 1.2.1_biqbaboplfbrettd7655fr4n2y
+      rc-resize-observer: 1.3.0_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
@@ -8673,29 +8676,29 @@ packages:
       rc-dropdown: 4.0.1_biqbaboplfbrettd7655fr4n2y
       rc-menu: 9.8.2_biqbaboplfbrettd7655fr4n2y
       rc-motion: 2.6.3_biqbaboplfbrettd7655fr4n2y
-      rc-resize-observer: 1.2.1_biqbaboplfbrettd7655fr4n2y
+      rc-resize-observer: 1.3.0_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /rc-textarea/0.4.7_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-IQPd1CDI3mnMlkFyzt2O4gQ2lxUsnBAeJEoZGJnkkXgORNqyM9qovdrCj9NzcRfpHgLdzaEbU3AmobNFGUznwQ==}
+  /rc-textarea/1.0.1_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-dtIm96apjJpCUcCeTtbnLGJaVlqbOqVgN0P9z+bqMSi7rcV5QVeUtBnG+jQTGk/uD183Z7jbhc8Dx7G3luDCwg==}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
     dependencies:
       '@babel/runtime': 7.20.13
       classnames: 2.3.2
-      rc-resize-observer: 1.2.1_biqbaboplfbrettd7655fr4n2y
+      rc-input: 0.2.2_biqbaboplfbrettd7655fr4n2y
+      rc-resize-observer: 1.3.0_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
-      shallowequal: 1.1.0
     dev: false
 
-  /rc-tooltip/5.2.2_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==}
+  /rc-tooltip/5.3.1_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-e6H0dMD38EPaSPD2XC8dRfct27VvT2TkPdoBSuNl3RRZ5tspiY/c5xYEmGC0IrABvMBgque4Mr2SMZuliCvoiQ==}
     peerDependencies:
       react: '>=16.9.0'
       react-dom: '>=16.9.0'
@@ -8788,7 +8791,7 @@ packages:
     dependencies:
       '@babel/runtime': 7.20.13
       classnames: 2.3.2
-      rc-resize-observer: 1.2.1_biqbaboplfbrettd7655fr4n2y
+      rc-resize-observer: 1.3.0_biqbaboplfbrettd7655fr4n2y
       rc-util: 5.27.2_biqbaboplfbrettd7655fr4n2y
       react: 18.2.0
       react-dom: 18.2.0_react@18.2.0
@@ -9277,10 +9280,6 @@ packages:
       kind-of: 6.0.3
     dev: true
 
-  /shallowequal/1.1.0:
-    resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
-    dev: false
-
   /shebang-command/2.0.0:
     resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
     engines: {node: '>=8'}
@@ -9870,7 +9869,7 @@ packages:
     engines: {node: '>=6'}
     dependencies:
       psl: 1.9.0
-      punycode: 2.1.1
+      punycode: 2.3.0
       universalify: 0.2.0
       url-parse: 1.5.10
     dev: true
@@ -9879,7 +9878,7 @@ packages:
     resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
     engines: {node: '>=12'}
     dependencies:
-      punycode: 2.1.1
+      punycode: 2.3.0
     dev: true
 
   /trim-newlines/3.0.1:
@@ -10040,7 +10039,7 @@ packages:
   /uri-js/4.4.1:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
-      punycode: 2.1.1
+      punycode: 2.3.0
     dev: true
 
   /url-parse/1.5.10:
@@ -10218,7 +10217,7 @@ packages:
       webpack: ^4.0.0 || ^5.0.0
     dependencies:
       colorette: 2.0.19
-      memfs: 3.4.12
+      memfs: 3.4.13
       mime-types: 2.1.35
       range-parser: 1.2.1
       schema-utils: 4.0.0