Browse Source

chore: prettier code, lint, test case (#11323)

pull/11325/head
afc163 2 years ago
committed by GitHub
parent
commit
5b5afc7f08
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      .github/workflows/ci.yml
  2. 2
      README.es-ES.md
  3. 2
      config/defaultSettings.ts
  4. 2
      jest.config.ts
  5. 2
      mock/listTableList.ts
  6. 12
      package.json
  7. 6246
      pnpm-lock.yaml
  8. 7
      src/app.tsx
  9. 4
      src/components/HeaderDropdown/index.tsx
  10. 11
      src/components/RightContent/AvatarDropdown.tsx
  11. 2
      src/components/index.ts
  12. 1
      src/pages/TableList/index.tsx
  13. 61
      src/pages/User/Login/__snapshots__/login.test.tsx.snap
  14. 6
      src/pages/User/Login/index.tsx
  15. 6
      src/pages/User/Login/login.test.tsx
  16. 6
      src/services/ant-design-pro/api.ts

6
.github/workflows/ci.yml

@ -10,12 +10,12 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node_version: [16.x, 14.x]
node_version: [20, 16]
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
- run: echo ${{github.ref}}

2
README.es-ES.md

@ -87,6 +87,7 @@ Proporcionamos `pro-cli` para inicializar rápidamente la estructura del proyect
npm i @ant-design/pro-cli -g
pro create myapp
```
Selecciona la versión de umi
```
@ -95,6 +96,7 @@ Selecciona la versión de umi
umi@3
```
> Si seleccionas la versión umi@4, los bloques completos aún no son compatibles.
Si eliges umi@3, también puedes elegir la plantilla "pro". "Pro" es la plantilla básica, que solo proporciona el contenido básico de la operación del marco. "Complete" contiene todos los bloques, lo cual no es adecuado para el desarrollo secundario como una plantilla básica.

2
config/defaultSettings.ts

@ -1,4 +1,4 @@
import { ProLayoutProps } from '@ant-design/pro-components';
import type { ProLayoutProps } from '@ant-design/pro-components';
/**
* @name

2
jest.config.ts

@ -6,8 +6,6 @@ export default async () => {
target: 'browser',
}),
});
console.log(JSON.stringify(config));
return {
...config,
testEnvironmentOptions: {

2
mock/listTableList.ts

@ -1,5 +1,5 @@
import { Request, Response } from 'express';
import dayjs from 'dayjs';
import { Request, Response } from 'express';
import { parse } from 'url';
// mock tableListDataSource

12
package.json

@ -3,6 +3,7 @@
"version": "6.0.0",
"private": true,
"description": "An out-of-box UI solution for enterprise applications",
"repository": "git@github.com:ant-design/ant-design-pro.git",
"scripts": {
"analyze": "cross-env ANALYZE=1 max build",
"build": "max build",
@ -48,21 +49,18 @@
"dependencies": {
"@ant-design/icons": "^4.8.3",
"@ant-design/pro-components": "^2.7.9",
"@umijs/route-utils": "^2.2.2",
"@testing-library/dom": "^10.4.0",
"antd": "^5.18.0",
"antd-style": "^3.6.2",
"classnames": "^2.5.1",
"omit.js": "^2.0.2",
"dayjs": "^1.11.13",
"querystring": "^0.2.1",
"rc-menu": "^9.14.0",
"rc-util": "^5.41.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-helmet-async": "^1.3.0"
"react-dom": "^18.3.1"
},
"devDependencies": {
"@ant-design/pro-cli": "^3.3.0",
"@testing-library/react": "^13.4.0",
"@testing-library/react": "^16.0.1",
"@types/classnames": "^2.3.1",
"@types/express": "^4.17.21",
"@types/history": "^4.7.11",

6246
pnpm-lock.yaml

File diff suppressed because it is too large

7
src/app.tsx

@ -1,13 +1,14 @@
import { Footer, Question, SelectLang, AvatarDropdown, AvatarName } from '@/components';
import { AvatarDropdown, AvatarName, Footer, Question, SelectLang } from '@/components';
import { currentUser as queryCurrentUser } from '@/services/ant-design-pro/api';
import { LinkOutlined } from '@ant-design/icons';
import type { Settings as LayoutSettings } from '@ant-design/pro-components';
import { SettingDrawer } from '@ant-design/pro-components';
import type { RunTimeLayoutConfig } from '@umijs/max';
import { history, Link } from '@umijs/max';
import React from 'react';
import defaultSettings from '../config/defaultSettings';
import { errorConfig } from './requestErrorConfig';
import { currentUser as queryCurrentUser } from '@/services/ant-design-pro/api';
import React from 'react';
const isDev = process.env.NODE_ENV === 'development';
const loginPath = '/user/login';

4
src/components/HeaderDropdown/index.tsx

@ -1,8 +1,8 @@
import { Dropdown } from 'antd';
import type { DropDownProps } from 'antd/es/dropdown';
import React from 'react';
import { createStyles } from 'antd-style';
import type { DropDownProps } from 'antd/es/dropdown';
import classNames from 'classnames';
import React from 'react';
const useStyles = createStyles(({ token }) => {
return {

11
src/components/RightContent/AvatarDropdown.tsx

@ -2,10 +2,10 @@ import { outLogin } from '@/services/ant-design-pro/api';
import { LogoutOutlined, SettingOutlined, UserOutlined } from '@ant-design/icons';
import { history, useModel } from '@umijs/max';
import { Spin } from 'antd';
import type { MenuProps } from 'antd';
import { createStyles } from 'antd-style';
import { stringify } from 'querystring';
import type { MenuInfo } from 'rc-menu/lib/interface';
import React, { useCallback } from 'react';
import React from 'react';
import { flushSync } from 'react-dom';
import HeaderDropdown from '../HeaderDropdown';
@ -62,8 +62,7 @@ export const AvatarDropdown: React.FC<GlobalHeaderRightProps> = ({ menu, childre
const { initialState, setInitialState } = useModel('@@initialState');
const onMenuClick = useCallback(
(event: MenuInfo) => {
const onMenuClick: MenuProps['onClick'] = (event) => {
const { key } = event;
if (key === 'logout') {
flushSync(() => {
@ -73,9 +72,7 @@ export const AvatarDropdown: React.FC<GlobalHeaderRightProps> = ({ menu, childre
return;
}
history.push(`/account/${key}`);
},
[setInitialState],
);
};
const loading = (
<span className={styles.action}>

2
src/components/index.ts

@ -9,4 +9,4 @@ import Footer from './Footer';
import { Question, SelectLang } from './RightContent';
import { AvatarDropdown, AvatarName } from './RightContent/AvatarDropdown';
export { Footer, Question, SelectLang, AvatarDropdown, AvatarName };
export { AvatarDropdown, AvatarName, Footer, Question, SelectLang };

1
src/pages/TableList/index.tsx

@ -116,7 +116,6 @@ const TableList: React.FC = () => {
/>
),
dataIndex: 'name',
tip: 'The rule name is the unique key',
render: (dom, entity) => {
return (
<a

61
src/pages/User/Login/__snapshots__/login.test.tsx.snap

@ -26,11 +26,11 @@ exports[`Login Page should login success 1`] = `
style="min-height: 100%; flex-direction: row;"
>
<div
style="width: 256px; overflow: hidden; max-width: 256px; min-width: 256px; transition: all 0.2s ease 0s; flex: 0 0 256px;"
style="width: 256px; overflow: hidden; flex: 0 0 256px; max-width: 256px; min-width: 256px; transition: all 0.2s ease 0s;"
/>
<aside
class="ant-layout-sider ant-layout-sider-dark ant-pro-sider ant-pro-sider-fixed ant-pro-sider-fixed-mix ant-pro-sider-layout-mix ant-pro-sider-light ant-pro-sider-mix"
style="max-width: 256px; min-width: 256px; width: 256px; flex: 0 0 256px;"
style="flex: 0 0 256px; max-width: 256px; min-width: 256px; width: 256px;"
>
<div
class="ant-layout-sider-children"
@ -289,7 +289,7 @@ exports[`Login Page should login success 1`] = `
>
<span
class="ant-avatar ant-avatar-circle ant-avatar-image"
style="width: 28px; height: 28px; line-height: 28px; font-size: 18px;"
style="width: 28px; height: 28px; font-size: 18px;"
>
<img
src="https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png"
@ -560,7 +560,7 @@ exports[`Login Page should login success 1`] = `
/>
</svg>
</span>
2023 Produced by Ant Financial Experience Department
</div>
</div>
</footer>
@ -573,10 +573,10 @@ exports[`Login Page should login success 1`] = `
exports[`Login Page should show login form 1`] = `
<DocumentFragment>
<div
class="css-trkbkn"
class="acss-trkbkn"
>
<div
class="css-15lsw8v"
class="acss-15lsw8v"
data-lang="true"
>
<span
@ -610,16 +610,16 @@ exports[`Login Page should show login form 1`] = `
style="flex: 1; padding: 32px 0px;"
>
<div
class="ant-pro-form-login-container "
class="ant-pro-form-login-container css-dev-only-do-not-override-11lehqq css-dev-only-do-not-override-11lehqq"
>
<div
class="ant-pro-form-login-top"
class="ant-pro-form-login-top css-dev-only-do-not-override-11lehqq css-dev-only-do-not-override-11lehqq"
>
<div
class="ant-pro-form-login-header "
class="ant-pro-form-login-header css-dev-only-do-not-override-11lehqq"
>
<span
class="ant-pro-form-login-logo "
class="ant-pro-form-login-logo css-dev-only-do-not-override-11lehqq"
>
<img
alt="logo"
@ -627,24 +627,24 @@ exports[`Login Page should show login form 1`] = `
/>
</span>
<span
class="ant-pro-form-login-title "
class="ant-pro-form-login-title css-dev-only-do-not-override-11lehqq"
>
Ant Design
</span>
</div>
<div
class="ant-pro-form-login-desc "
class="ant-pro-form-login-desc css-dev-only-do-not-override-11lehqq"
>
Ant Design is the most influential web design specification in Xihu district
</div>
</div>
<div
class="ant-pro-form-login-main "
class="ant-pro-form-login-main css-dev-only-do-not-override-11lehqq"
style="width: 328px; min-width: 280px; max-width: 75vw;"
>
<form
autocomplete="off"
class="ant-form ant-form-vertical ant-pro-form"
class="ant-form ant-form-vertical ant-pro-form css-dev-only-do-not-override-11lehqq"
>
<input
style="display: none;"
@ -696,6 +696,7 @@ exports[`Login Page should show login form 1`] = `
</div>
<div
class="ant-tabs-ink-bar ant-tabs-ink-bar-animated"
style="width: 0px; left: 0px; transform: translateX(-50%);"
/>
</div>
</div>
@ -768,7 +769,7 @@ exports[`Login Page should show login form 1`] = `
class="ant-form-item-control-input-content"
>
<span
class="ant-input-affix-wrapper ant-input-affix-wrapper-lg"
class="ant-input-affix-wrapper ant-input-affix-wrapper-lg ant-input-outlined"
>
<span
class="ant-input-prefix"
@ -852,7 +853,7 @@ exports[`Login Page should show login form 1`] = `
class="ant-form-item-control-input-content"
>
<span
class="ant-input-affix-wrapper ant-input-password ant-input-password-large ant-input-affix-wrapper-lg"
class="ant-input-affix-wrapper ant-input-affix-wrapper-lg ant-input-outlined ant-input-password ant-input-password-large"
>
<span
class="ant-input-prefix"
@ -882,7 +883,6 @@ exports[`Login Page should show login form 1`] = `
id="password"
placeholder="Password: ant.design"
type="password"
value=""
/>
<span
class="ant-input-suffix"
@ -957,31 +957,32 @@ exports[`Login Page should show login form 1`] = `
</button>
</form>
<div
class="ant-pro-form-login-main-other "
class="ant-pro-form-login-main-other css-dev-only-do-not-override-11lehqq"
>
Login with :
<span
aria-label="alipay-circle"
class="anticon anticon-alipay-circle css-18yqg2u"
class="anticon anticon-alipay-circle acss-18yqg2u"
role="img"
>
<svg
aria-hidden="true"
data-icon="alipay-circle"
fill="currentColor"
fill-rule="evenodd"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 00960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z"
d="M512 64c247.42 0 448 200.58 448 448S759.42 960 512 960 64 759.42 64 512 264.58 64 512 64m32.5 168c-69.67 0-86.06 16.84-86.72 39.08l-.02 1.43v46.62H291.45c-9.92 0-14.28 23.05-14.27 39.3 0 2.7 2.08 4.93 4.77 4.93h175.81v58.3h-116.5c-9.96 0-14.3 23.76-14.27 39.47a4.77 4.77 0 004.77 4.76h233.45c-4.53 41.06-15.43 77.59-30.72 109.32l-1.22 2.5-.32-.28c-60.24-28.47-120.43-52.57-194.4-52.57l-2.62.01c-84.98 1.11-144.71 56.5-145.91 127.04l-.02 1.22.02 2.13c1.24 70.4 63.56 126.45 148.52 126.45 61.25 0 116.38-16.85 163.46-45.02a138.58 138.58 0 0014.07-7.96 345.6 345.6 0 0050.3-41.16l9.45 6.35 12.46 8.32c57.53 38.26 113.76 72.62 169.86 79.27a142.62 142.62 0 0018.31 1.16c43.02 0 55-52.68 57.39-95.51l.14-2.84c.4-8.46-6.2-15.6-14.65-15.86-75.46-2.37-136.45-22.05-192-46.11l-6.27-2.75c35.15-56.8 56.66-121.81 57.15-186.66l.09-1.08c.4-5.51-4-10.2-9.52-10.2H549.33v-58.3h165.73c9.92 0 14.28-22.12 14.27-39.31a4.85 4.85 0 00-4.78-4.92H549.32v-82.35a4.8 4.8 0 00-4.83-4.78M328 583.85c54.63 0 107.08 22.41 158.1 52.19l5.76 3.4c-103.57 119.84-247.17 95.9-261.72 26.37a66.89 66.89 0 01-1.14-9.83l-.06-2.34.02-.9c.97-40.12 45.33-68.9 99.04-68.9"
/>
</svg>
</span>
<span
aria-label="taobao-circle"
class="anticon anticon-taobao-circle css-18yqg2u"
class="anticon anticon-taobao-circle acss-18yqg2u"
role="img"
>
<svg
@ -1000,7 +1001,7 @@ exports[`Login Page should show login form 1`] = `
</span>
<span
aria-label="weibo-circle"
class="anticon anticon-weibo-circle css-18yqg2u"
class="anticon anticon-weibo-circle acss-18yqg2u"
role="img"
>
<svg
@ -1022,17 +1023,17 @@ exports[`Login Page should show login form 1`] = `
</div>
</div>
<footer
class="ant-layout-footer css-dev-only-do-not-override-17a39f8"
class="ant-layout-footer css-dev-only-do-not-override-11lehqq"
style="padding: 0px; background: none;"
>
<div
class="ant-pro-global-footer"
class="ant-pro-global-footer css-dev-only-do-not-override-11lehqq"
>
<div
class="ant-pro-global-footer-list"
class="ant-pro-global-footer-list css-dev-only-do-not-override-11lehqq"
>
<a
class="ant-pro-global-footer-list-link"
class="ant-pro-global-footer-list-link css-dev-only-do-not-override-11lehqq"
href="https://pro.ant.design"
rel="noreferrer"
target="_blank"
@ -1041,7 +1042,7 @@ exports[`Login Page should show login form 1`] = `
Ant Design Pro
</a>
<a
class="ant-pro-global-footer-list-link"
class="ant-pro-global-footer-list-link css-dev-only-do-not-override-11lehqq"
href="https://github.com/ant-design/ant-design-pro"
rel="noreferrer"
target="_blank"
@ -1068,7 +1069,7 @@ exports[`Login Page should show login form 1`] = `
</span>
</a>
<a
class="ant-pro-global-footer-list-link"
class="ant-pro-global-footer-list-link css-dev-only-do-not-override-11lehqq"
href="https://ant.design"
rel="noreferrer"
target="_blank"
@ -1078,7 +1079,7 @@ exports[`Login Page should show login form 1`] = `
</a>
</div>
<div
class="ant-pro-global-footer-copyright"
class="ant-pro-global-footer-copyright css-dev-only-do-not-override-11lehqq"
>
<span
aria-label="copyright"
@ -1099,7 +1100,7 @@ exports[`Login Page should show login form 1`] = `
/>
</svg>
</span>
2023 Produced by Ant Financial Experience Department
</div>
</div>
</footer>

6
src/pages/User/Login/index.tsx

@ -15,12 +15,12 @@ import {
ProFormCheckbox,
ProFormText,
} from '@ant-design/pro-components';
import { FormattedMessage, history, SelectLang, useIntl, useModel, Helmet } from '@umijs/max';
import { FormattedMessage, Helmet, history, SelectLang, useIntl, useModel } from '@umijs/max';
import { Alert, message, Tabs } from 'antd';
import Settings from '../../../../config/defaultSettings';
import { createStyles } from 'antd-style';
import React, { useState } from 'react';
import { flushSync } from 'react-dom';
import { createStyles } from 'antd-style';
import Settings from '../../../../config/defaultSettings';
const useStyles = createStyles(({ token }) => {
return {

6
src/pages/User/Login/login.test.tsx

@ -1,6 +1,6 @@
import { render, fireEvent, act } from '@testing-library/react';
import React from 'react';
import { TestBrowser } from '@@/testBrowser';
import { TestBrowser } from '@@/testBrowser';
import { fireEvent, render } from '@testing-library/react';
import React, { act } from 'react';
// @ts-ignore
import { startMock } from '@@/requestRecordMock';

6
src/services/ant-design-pro/api.ts

@ -67,7 +67,7 @@ export async function updateRule(options?: { [key: string]: any }) {
data: {
method: 'update',
...(options || {}),
}
},
});
}
@ -78,7 +78,7 @@ export async function addRule(options?: { [key: string]: any }) {
data: {
method: 'post',
...(options || {}),
}
},
});
}
@ -89,6 +89,6 @@ export async function removeRule(options?: { [key: string]: any }) {
data: {
method: 'delete',
...(options || {}),
}
},
});
}

Loading…
Cancel
Save