From 86ad52fe14370e830c6a281058025884e105aab2 Mon Sep 17 00:00:00 2001 From: Avan Date: Tue, 13 Aug 2024 17:04:02 +0800 Subject: [PATCH 1/8] test: use codecov/codecov-action --- .github/workflows/react-component-ci.yml | 47 ++++++++++++------------ 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/.github/workflows/react-component-ci.yml b/.github/workflows/react-component-ci.yml index b0a42637..2097f2a7 100644 --- a/.github/workflows/react-component-ci.yml +++ b/.github/workflows/react-component-ci.yml @@ -1,24 +1,20 @@ name: CI -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] +on: ['push', 'pull_request'] jobs: setup: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@master + uses: actions/checkout@v4 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20' - name: cache package-lock.json - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: package-temp-dir key: lock-${{ github.sha }} @@ -35,7 +31,7 @@ jobs: - name: cache node_modules id: node_modules_cache_id - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} @@ -43,21 +39,21 @@ jobs: - name: install if: steps.node_modules_cache_id.outputs.cache-hit != 'true' run: npm ci - + lint: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@master + uses: actions/checkout@v4 - name: restore cache from package-lock.json - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} @@ -66,21 +62,21 @@ jobs: run: npm run lint needs: setup - + compile: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@master + uses: actions/checkout@v4 - name: restore cache from package-lock.json - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} @@ -89,26 +85,31 @@ jobs: run: npm run compile needs: setup - + coverage: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@master + uses: actions/checkout@v4 - name: restore cache from package-lock.json - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: coverage - run: npm test -- --coverage && bash <(curl -s https://codecov.io/bash) + run: npm test -- --coverage + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} needs: setup From eb23a1dbe5ee245ac7801db71a21b5cc65505d80 Mon Sep 17 00:00:00 2001 From: Avan Date: Wed, 14 Aug 2024 21:28:10 +0800 Subject: [PATCH 2/8] fix: cheerio look --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index cde1aaca..04536dab 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,8 @@ "rc-virtual-list": "^3.0.0", "react": "^16.8.0", "react-dom": "^16.8.0", - "typescript": "^5.0.0" + "typescript": "^5.0.0", + "cheerio": "1.0.0-rc.12" }, "peerDependencies": { "react": "*", From 30161fa94e6107aff53b36309181c82aa26c9956 Mon Sep 17 00:00:00 2001 From: Avan Date: Sun, 18 Aug 2024 11:06:06 +0800 Subject: [PATCH 3/8] Update react-component-ci.yml --- .github/workflows/react-component-ci.yml | 119 +---------------------- 1 file changed, 5 insertions(+), 114 deletions(-) diff --git a/.github/workflows/react-component-ci.yml b/.github/workflows/react-component-ci.yml index 2097f2a7..f860ff10 100644 --- a/.github/workflows/react-component-ci.yml +++ b/.github/workflows/react-component-ci.yml @@ -1,115 +1,6 @@ -name: CI - -on: ['push', 'pull_request'] - +name: ✅ test +on: [push, pull_request] jobs: - setup: - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - with: - node-version: '20' - - - name: cache package-lock.json - uses: actions/cache@v4 - with: - path: package-temp-dir - key: lock-${{ github.sha }} - - - name: create package-lock.json - run: npm i --package-lock-only --ignore-scripts - - - name: hack for singe file - run: | - if [ ! -d "package-temp-dir" ]; then - mkdir package-temp-dir - fi - cp package-lock.json package-temp-dir - - - name: cache node_modules - id: node_modules_cache_id - uses: actions/cache@v4 - with: - path: node_modules - key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - - - name: install - if: steps.node_modules_cache_id.outputs.cache-hit != 'true' - run: npm ci - - lint: - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - - - name: restore cache from package-lock.json - uses: actions/cache@v4 - with: - path: package-temp-dir - key: lock-${{ github.sha }} - - - name: restore cache from node_modules - uses: actions/cache@v4 - with: - path: node_modules - key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - - - name: lint - run: npm run lint - - needs: setup - - compile: - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - - - name: restore cache from package-lock.json - uses: actions/cache@v4 - with: - path: package-temp-dir - key: lock-${{ github.sha }} - - - name: restore cache from node_modules - uses: actions/cache@v4 - with: - path: node_modules - key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - - - name: compile - run: npm run compile - - needs: setup - - coverage: - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - - - name: restore cache from package-lock.json - uses: actions/cache@v4 - with: - path: package-temp-dir - key: lock-${{ github.sha }} - - - name: restore cache from node_modules - uses: actions/cache@v4 - with: - path: node_modules - key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - - - name: coverage - run: npm test -- --coverage - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 - with: - token: ${{ secrets.CODECOV_TOKEN }} - - needs: setup + test: + uses: react-component/rc-test/.github/workflows/test.yml@main + secrets: inherit From 70df4a4bcaa14baf18d2aaae1b43b3edf57fa42a Mon Sep 17 00:00:00 2001 From: Avan Date: Mon, 19 Aug 2024 10:34:53 +0800 Subject: [PATCH 4/8] chore: fix tsc noEmit --- .gitignore | 2 ++ bunfig.toml | 2 ++ examples/dynamic.tsx | 2 +- examples/utils/dataUtil.ts | 4 ++-- tests/Select.checkable.spec.tsx | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 bunfig.toml diff --git a/.gitignore b/.gitignore index 82db6c0a..fe807dc0 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,5 @@ es/* .dumi/tmp-test .dumi/tmp-production .env.local + +bun.lockb \ No newline at end of file diff --git a/bunfig.toml b/bunfig.toml new file mode 100644 index 00000000..80d57b63 --- /dev/null +++ b/bunfig.toml @@ -0,0 +1,2 @@ +[install] +peer = false \ No newline at end of file diff --git a/examples/dynamic.tsx b/examples/dynamic.tsx index bf3ccbde..26cde9c4 100644 --- a/examples/dynamic.tsx +++ b/examples/dynamic.tsx @@ -30,7 +30,7 @@ class Demo extends React.Component { loadData = treeNode => { console.log('trigger load:', treeNode); - return new Promise(resolve => { + return new Promise(resolve => { setTimeout(() => { let { treeData } = this.state; treeData = treeData.slice(); diff --git a/examples/utils/dataUtil.ts b/examples/utils/dataUtil.ts index b02660d7..57ac9d25 100644 --- a/examples/utils/dataUtil.ts +++ b/examples/utils/dataUtil.ts @@ -1,7 +1,7 @@ /* eslint-disable no-plusplus, no-mixed-operators, no-underscore-dangle */ export function generateData(x = 3, y = 2, z = 1, gData = []) { // x:每一级下的节点总数。y:每级节点里有y个节点、存在子节点。z:树的level层级数(0表示一级) - function _loop(_level, _preKey, _tns) { + function _loop(_level, _preKey?, _tns?) { const preKey = _preKey || '0'; const tns = _tns || gData; @@ -88,7 +88,7 @@ export function getNewTreeData(treeData, curKey, child, level) { } function loopData(data, callback) { - const loop = (d, level = 0) => { + const loop = (d, level = '0') => { d.forEach((item, index) => { const pos = `${level}-${index}`; if (item.children) { diff --git a/tests/Select.checkable.spec.tsx b/tests/Select.checkable.spec.tsx index 2da83c0e..086aa4aa 100644 --- a/tests/Select.checkable.spec.tsx +++ b/tests/Select.checkable.spec.tsx @@ -489,7 +489,7 @@ describe('TreeSelect.checkable', () => { describe('labelInValue', () => { it('basic', () => { const wrapper = mount( - + From c97949f2414d77c683ad7ce198589b4dafe2964c Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 23 Aug 2024 11:43:42 +0800 Subject: [PATCH 5/8] Update Select.multiple.spec.js --- tests/Select.multiple.spec.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Select.multiple.spec.js b/tests/Select.multiple.spec.js index b7e68f4e..20a75c45 100644 --- a/tests/Select.multiple.spec.js +++ b/tests/Select.multiple.spec.js @@ -32,7 +32,7 @@ describe('TreeSelect.multiple', () => { it('remove by backspace key', () => { const wrapper = mount(createSelect({ defaultValue: ['0', '1'] })); - wrapper.find('input').first().simulate('keyDown', { which: KeyCode.BACKSPACE }); + wrapper.find('input').first().simulate('keyDown', { which: KeyCode.BACKSPACE, key: 'Backspace' }); expect(wrapper.getSelection()).toHaveLength(1); expect(wrapper.getSelection(0).text()).toBe('label0'); }); @@ -59,9 +59,9 @@ describe('TreeSelect.multiple', () => { } } const wrapper = mount(); - wrapper.find('input').first().simulate('keyDown', { which: KeyCode.BACKSPACE }); + wrapper.find('input').first().simulate('keyDown', { which: KeyCode.BACKSPACE, key: 'Backspace' }); wrapper.selectNode(1); - wrapper.find('input').first().simulate('keyDown', { which: KeyCode.BACKSPACE }); + wrapper.find('input').first().simulate('keyDown', { which: KeyCode.BACKSPACE, key: 'Backspace' }); expect(wrapper.getSelection()).toHaveLength(1); expect(wrapper.getSelection(0).text()).toBe('label0'); }); From 51452fe68fe9f2153f47b5086aeb5b87ad36f706 Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 23 Aug 2024 12:04:22 +0800 Subject: [PATCH 6/8] Update tests/Select.checkable.spec.tsx --- tests/Select.checkable.spec.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Select.checkable.spec.tsx b/tests/Select.checkable.spec.tsx index 086aa4aa..14a88a60 100644 --- a/tests/Select.checkable.spec.tsx +++ b/tests/Select.checkable.spec.tsx @@ -489,7 +489,7 @@ describe('TreeSelect.checkable', () => { describe('labelInValue', () => { it('basic', () => { const wrapper = mount( - + From 4b49b345798a211be027b2e5fa9d0cadacbff000 Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 23 Aug 2024 12:09:37 +0800 Subject: [PATCH 7/8] Update TreeSelect.tsx --- src/TreeSelect.tsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/TreeSelect.tsx b/src/TreeSelect.tsx index b71102b8..88778dc9 100644 --- a/src/TreeSelect.tsx +++ b/src/TreeSelect.tsx @@ -440,13 +440,7 @@ const TreeSelect = React.forwardRef((props, ref) // Back fill with origin label const labeledValues = values.map(val => { const targetItem = rawLabeledValues.find(item => item.value === val); - let label; - // Ensure that when labelInValue is true, if label is undefined, it remains undefined. - if (labelInValue && targetItem.label !== undefined) { - label = targetItem.label; - } else if (!labelInValue && treeTitleRender) { - label = treeTitleRender(targetItem); - } + const label = labelInValue ? targetItem?.label : treeTitleRender?.(targetItem); return { value: val, label, From fcb99acbec2ab0a2e44292d0046425d73b7b5fe5 Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 23 Aug 2024 12:10:01 +0800 Subject: [PATCH 8/8] Update tests/Select.checkable.spec.tsx --- tests/Select.checkable.spec.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Select.checkable.spec.tsx b/tests/Select.checkable.spec.tsx index 14a88a60..e98887e5 100644 --- a/tests/Select.checkable.spec.tsx +++ b/tests/Select.checkable.spec.tsx @@ -489,7 +489,7 @@ describe('TreeSelect.checkable', () => { describe('labelInValue', () => { it('basic', () => { const wrapper = mount( - +