From c5d5157eac8323cac3fee3c3dbd0dcfb0bdb37cc Mon Sep 17 00:00:00 2001 From: huxiyang3 <1872591453@qq.com> Date: Mon, 9 Sep 2024 11:10:02 +0800 Subject: [PATCH 1/2] chore: merge branch next into dev-harmony --- .husky/commit-msg | 3 - CHANGELOG.md | 29 ++++ package.json | 9 +- packages/nutui-codemod/package.json | 2 +- pnpm-lock.yaml | 142 +++++++++--------- scripts/generate-local-changelog.js | 8 +- src/packages/cell/cell.scss | 20 +++ src/packages/cell/cell.taro.tsx | 20 ++- src/packages/cell/cell.tsx | 21 ++- src/packages/cell/demos/h5/demo1.tsx | 1 + src/packages/cell/demos/taro/demo1.tsx | 8 +- src/packages/cell/doc.en-US.md | 1 + src/packages/cell/doc.md | 1 + src/packages/cell/doc.taro.md | 1 + src/packages/cell/doc.zh-TW.md | 1 + src/packages/input/input.taro.tsx | 12 +- src/packages/popup/demos/h5/demo5.tsx | 4 +- src/packages/popup/demos/h5/demo6.tsx | 4 +- src/packages/popup/demos/h5/demo7.tsx | 37 ++++- src/packages/popup/demos/taro/demo5.tsx | 4 +- src/packages/popup/demos/taro/demo6.tsx | 4 +- src/packages/popup/demos/taro/demo7.tsx | 43 +++++- src/packages/popup/demos/taro/demo8.tsx | 4 +- src/packages/pulltorefresh/demo.taro.tsx | 13 +- .../pulltorefresh/demos/taro/demo4.tsx | 53 +++++++ .../pulltorefresh/pulltorefresh.taro.tsx | 6 +- src/packages/sticky/sticky.taro.tsx | 10 +- src/packages/sticky/sticky.tsx | 5 +- src/packages/tabs/tabs.taro.tsx | 2 + .../uploader/__tests__/uploader.spec.tsx | 2 +- src/packages/uploader/demos/h5/demo1.tsx | 8 + src/packages/uploader/demos/taro/demo1.tsx | 9 ++ src/packages/uploader/doc.taro.md | 1 + src/packages/uploader/preview.tsx | 6 +- src/packages/uploader/uploader.taro.tsx | 28 +++- src/packages/uploader/uploader.tsx | 6 +- 36 files changed, 386 insertions(+), 142 deletions(-) create mode 100644 src/packages/pulltorefresh/demos/taro/demo4.tsx diff --git a/.husky/commit-msg b/.husky/commit-msg index 314e821479..d468455ff3 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - npx --no-install commitlint --edit $1 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index df283f5eee..aa03ced793 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,32 @@ +# v2.6.18 + +`2024-09-06` + +- 🏡 chore: remove deprecated (#2573) +- 🏡 chore(deps): update dependency marked to v14 (#2532) +- :sparkles: feat: demos for popup & dialog (#2574) +- :sparkles: feat: beforeupload (#2567) +- :bug: fix: remove icons defaultprops (#2571) +- :bug: fix(input): type props didnot work when equals number|digit (#2563) +- :bug: fix: dialog +- :bug: fix(sticky): should rerender when zIndex changes (#2572) +- :bug: fix(sticky): rerender sticky when threshold change (#2564) +- :bug: fix(deps): update dependency jscodeshift to v17 (#2534) + +# v2.6.17 + +`2024-08-30` + +- 🏡 chore(form): form demo (#2528) +- 📖 docs(readme): fix pnpm run dev weapp jd dir (#2514) +- :sparkles: feat(cell): add clickable prop to support click style feedback (#2527) +- :sparkles: feat(image-preview): 增加索引字段,用于预览内容排序 (#2519) +- :bug: fix(tabs.taro.tsx): 解决在不需要滚动的时候,切换tab产生tab位置错乱的问题 (#2554) +- :bug: fix(uploader): beforeUpload should trigger every time before uploading (#2553) +- :bug: fix(PullToRefresh): 修复PullToRefresh组件disabled属性在taro中无效的问题 (#2538) +- :bug: fix(uploader): ios 下无法回显的问题修复 (#2550) +- :bug: fix(uploader): sizeType prop didnot work when weapp || jd (#2526) + # v2.6.16 `2024-08-03` diff --git a/package.json b/package.json index f232de80c5..88ce3959c0 100644 --- a/package.json +++ b/package.json @@ -97,8 +97,9 @@ "*.{ts,tsx,js,md}": "eslint" }, "dependencies": { - "@nutui/icons-react": "^1.0.4", - "@nutui/icons-react-taro": "^1.0.4", + "@babel/runtime": "^7.23.9", + "@nutui/icons-react": "^1.0.5", + "@nutui/icons-react-taro": "^1.0.5", "@nutui/touch-emulator": "^1.0.0", "@react-spring/web": "~9.6.1", "@swc/helpers": "^0.5.7", @@ -173,13 +174,13 @@ "highlight.js": "^11.9.0", "husky": "^9.0.11", "inquirer": "^10.1.4", - "jscodeshift": "^0.15.1", + "jscodeshift": "^17.0.0", "linguist-languages": "^7.27.0", "lint-staged": "^15.2.2", "lzutf8": "0.6.3", "map-stream": "0.0.7", "markdown-it": "^14.0.0", - "marked": "^13.0.3", + "marked": "^14.1.1", "mobx": "^6.12.0", "mobx-react-lite": "^4.0.5", "postcss": "^8.4.35", diff --git a/packages/nutui-codemod/package.json b/packages/nutui-codemod/package.json index b9a66421ee..b89a851ede 100644 --- a/packages/nutui-codemod/package.json +++ b/packages/nutui-codemod/package.json @@ -28,7 +28,7 @@ "dependencies": { "chalk": "^5.3.0", "is-git-clean": "^1.1.0", - "jscodeshift": "^0.15.1" + "jscodeshift": "^17.0.0" }, "devDependencies": { "jest": "^29.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73e7b2c291..52a6f201db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,12 +12,15 @@ importers: .: dependencies: + '@babel/runtime': + specifier: ^7.23.9 + version: 7.25.0 '@nutui/icons-react': - specifier: ^1.0.4 - version: 1.0.4 + specifier: ^1.0.5 + version: 1.0.5 '@nutui/icons-react-taro': - specifier: ^1.0.4 - version: 1.0.4 + specifier: ^1.0.5 + version: 1.0.5 '@nutui/touch-emulator': specifier: ^1.0.0 version: 1.0.0 @@ -102,7 +105,7 @@ importers: version: 4.0.3(react@18.3.1) '@tarojs/taro': specifier: ^4.0.0-alpha.34 - version: 4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) + version: 4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) '@testing-library/jest-dom': specifier: ^6.4.2 version: 6.4.8 @@ -236,8 +239,8 @@ importers: specifier: ^10.1.4 version: 10.1.5 jscodeshift: - specifier: ^0.15.1 - version: 0.15.2 + specifier: ^17.0.0 + version: 17.0.0 linguist-languages: specifier: ^7.27.0 version: 7.27.0 @@ -254,8 +257,8 @@ importers: specifier: ^14.0.0 version: 14.1.0 marked: - specifier: ^13.0.3 - version: 13.0.3 + specifier: ^14.1.1 + version: 14.1.2 mobx: specifier: ^6.12.0 version: 6.13.1 @@ -368,8 +371,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 jscodeshift: - specifier: ^0.15.1 - version: 0.15.2 + specifier: ^17.0.0 + version: 17.0.0 devDependencies: jest: specifier: ^29.7.0 @@ -1139,11 +1142,11 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} engines: {node: '>= 8'} - '@nutui/icons-react-taro@1.0.4': - resolution: {integrity: sha512-2sDhJXJPAgatSg8dSWVYLYVvxCZo2OIWpSzVO0xkyCU0X6pWtKt7Hh26UbT9PTWaTfg9cX9xqwYvBkkxUypvSQ==, tarball: https://registry.npmjs.org/@nutui/icons-react-taro/-/icons-react-taro-1.0.4.tgz} + '@nutui/icons-react-taro@1.0.5': + resolution: {integrity: sha512-p7dCW29wASH/qQ1OaUGGKA6PRV33wDPb80+qrHnWtT40syIb0W+e92mpplbULWM01s+GYVGyUU3i8b7Iy7qfvw==, tarball: https://registry.npmjs.org/@nutui/icons-react-taro/-/icons-react-taro-1.0.5.tgz} - '@nutui/icons-react@1.0.4': - resolution: {integrity: sha512-nLFYpJvMBkKzT+PpfMaYoO6vJXMTM0yxAragTkEHt9HAFNjdTdvByCSRfUazHHdLdr1AJxS9h62VB1+jmBEtWA==, tarball: https://registry.npmjs.org/@nutui/icons-react/-/icons-react-1.0.4.tgz} + '@nutui/icons-react@1.0.5': + resolution: {integrity: sha512-0TYl3Fk+sVz95DKqn/7isYAvaK5YGnaBwMMib4rqYLoqi9GGFwgU9rp2hYXu/X5IYdWgshj0xiuGMK75/vUYbQ==, tarball: https://registry.npmjs.org/@nutui/icons-react/-/icons-react-1.0.5.tgz} '@nutui/touch-emulator@1.0.0': resolution: {integrity: sha512-k2hvI/9LlRA7Ph1Chni27pTuvPmKPt+/I10sWWd2sWzqiCOYRerD79eIwCMRGUF/q6WVDEKVnv00t9CEUL4sPA==, tarball: https://registry.npmjs.org/@nutui/touch-emulator/-/touch-emulator-1.0.0.tgz} @@ -1625,14 +1628,14 @@ packages: engines: {node: '>=14.16'} '@tarojs/api@4.0.3': - resolution: {integrity: sha512-OMVOFHgB37tqMnI+Uxx+T+dOAvUdGk0p1Zxnjnr7nNR95ml9h1z8ATxAp0FQJT1vOBKXy6bly+xTZgCLfGeojw==, tarball: https://registry.npmjs.org/@tarojs/api/-/api-4.0.3.tgz} + resolution: {integrity: sha512-OMVOFHgB37tqMnI+Uxx+T+dOAvUdGk0p1Zxnjnr7nNR95ml9h1z8ATxAp0FQJT1vOBKXy6bly+xTZgCLfGeojw==} engines: {node: '>= 18'} peerDependencies: '@tarojs/runtime': 4.0.3 '@tarojs/shared': 4.0.3 '@tarojs/components-advanced@4.0.3': - resolution: {integrity: sha512-cPruYAnzeZeHSMcTsVgc+URUMDu71fV+82TWR0x7W4RoEo+do4P+NWgEvLgVSyAzThdsKeyL1po2mafYHpE1XA==, tarball: https://registry.npmjs.org/@tarojs/components-advanced/-/components-advanced-4.0.3.tgz} + resolution: {integrity: sha512-cPruYAnzeZeHSMcTsVgc+URUMDu71fV+82TWR0x7W4RoEo+do4P+NWgEvLgVSyAzThdsKeyL1po2mafYHpE1XA==} peerDependencies: '@tarojs/runtime': ~4.0.3 '@tarojs/shared': ~4.0.3 @@ -1646,7 +1649,7 @@ packages: optional: true '@tarojs/components@4.0.3': - resolution: {integrity: sha512-c0jt/V1tq+B81DMZ5NoA/Twrc2r0F8/hSn/COIVfVW2qSvgnmYVvEITsLLf9GHJYe4IoAvVfW5zbVgI6Ao/3nw==, tarball: https://registry.npmjs.org/@tarojs/components/-/components-4.0.3.tgz} + resolution: {integrity: sha512-c0jt/V1tq+B81DMZ5NoA/Twrc2r0F8/hSn/COIVfVW2qSvgnmYVvEITsLLf9GHJYe4IoAvVfW5zbVgI6Ao/3nw==} engines: {node: '>= 18'} peerDependencies: '@types/react': '*' @@ -1658,47 +1661,47 @@ packages: optional: true '@tarojs/helper@4.0.3': - resolution: {integrity: sha512-aFiBD3ILdDiOYL5KCFMJiNQymoJURrLG+x3AtwVuxSEyiJfd2q3M6A0wZ63QRhbUoV97hECziBMwyAXfz5qMKw==, tarball: https://registry.npmjs.org/@tarojs/helper/-/helper-4.0.3.tgz} + resolution: {integrity: sha512-aFiBD3ILdDiOYL5KCFMJiNQymoJURrLG+x3AtwVuxSEyiJfd2q3M6A0wZ63QRhbUoV97hECziBMwyAXfz5qMKw==} engines: {node: '>= 18'} '@tarojs/plugin-platform-alipay@4.0.3': - resolution: {integrity: sha512-HSNVhbXKsJD/vEwtAPzj6vRmkau7Fh665cXNj3JGMtlyg+VBQljfn8C7amW+5wdppFIU1XVlF6yKb9GJQ/NcPQ==, tarball: https://registry.npmjs.org/@tarojs/plugin-platform-alipay/-/plugin-platform-alipay-4.0.3.tgz} + resolution: {integrity: sha512-HSNVhbXKsJD/vEwtAPzj6vRmkau7Fh665cXNj3JGMtlyg+VBQljfn8C7amW+5wdppFIU1XVlF6yKb9GJQ/NcPQ==} engines: {node: '>= 18'} peerDependencies: '@tarojs/service': 4.0.3 '@tarojs/shared': 4.0.3 '@tarojs/plugin-platform-weapp@4.0.3': - resolution: {integrity: sha512-i9DwtN828G1XnCPuZnG5sop1NdmeoSZlvgg9ow2i5i+deY00ZB/3pQM+5ZFhLX2qvihVzrXGcpzD7d5pi8LB2Q==, tarball: https://registry.npmjs.org/@tarojs/plugin-platform-weapp/-/plugin-platform-weapp-4.0.3.tgz} + resolution: {integrity: sha512-i9DwtN828G1XnCPuZnG5sop1NdmeoSZlvgg9ow2i5i+deY00ZB/3pQM+5ZFhLX2qvihVzrXGcpzD7d5pi8LB2Q==} engines: {node: '>= 18'} peerDependencies: '@tarojs/service': 4.0.3 '@tarojs/shared': 4.0.3 '@tarojs/react@4.0.3': - resolution: {integrity: sha512-hE8IKDQQh4dusF7U/nE6D8PoHh9IX4bWaMxUT0evo2dMg1GC0xp4H6oP2URwb4NVvAHWMErAj4R+cRd2fsbRiA==, tarball: https://registry.npmjs.org/@tarojs/react/-/react-4.0.3.tgz} + resolution: {integrity: sha512-hE8IKDQQh4dusF7U/nE6D8PoHh9IX4bWaMxUT0evo2dMg1GC0xp4H6oP2URwb4NVvAHWMErAj4R+cRd2fsbRiA==} engines: {node: '>= 18'} peerDependencies: react: ^18 '@tarojs/runner-utils@4.0.3': - resolution: {integrity: sha512-BEILyyqWBQM7oBuFLN/feomMXfbYgGly2xlyc28OMOKTbaMOx2+026ppj24u3lWgXoF7K5/I7shnZ+zinfFQ2w==, tarball: https://registry.npmjs.org/@tarojs/runner-utils/-/runner-utils-4.0.3.tgz} + resolution: {integrity: sha512-BEILyyqWBQM7oBuFLN/feomMXfbYgGly2xlyc28OMOKTbaMOx2+026ppj24u3lWgXoF7K5/I7shnZ+zinfFQ2w==} engines: {node: '>= 18'} '@tarojs/runtime@4.0.3': - resolution: {integrity: sha512-D4nQjVIy0GAgn2jE6x/Sd2HJ7ZAY7c3fvhl9s7z4+jUsviLfcKENLrHmt5jwnpRvh8/f/TqzlL/FWPpoN3T+OQ==, tarball: https://registry.npmjs.org/@tarojs/runtime/-/runtime-4.0.3.tgz} + resolution: {integrity: sha512-D4nQjVIy0GAgn2jE6x/Sd2HJ7ZAY7c3fvhl9s7z4+jUsviLfcKENLrHmt5jwnpRvh8/f/TqzlL/FWPpoN3T+OQ==} engines: {node: '>= 18'} '@tarojs/service@4.0.3': - resolution: {integrity: sha512-bEW7oMsgiaka+pPD+fQzFaSbw87JA/RDRCUEzpIuWzhbKqo4sRg28i/bJ9p1APodDrCw4MwuVHC92l7zuLlkOg==, tarball: https://registry.npmjs.org/@tarojs/service/-/service-4.0.3.tgz} + resolution: {integrity: sha512-bEW7oMsgiaka+pPD+fQzFaSbw87JA/RDRCUEzpIuWzhbKqo4sRg28i/bJ9p1APodDrCw4MwuVHC92l7zuLlkOg==} engines: {node: '>= 18'} '@tarojs/shared@4.0.3': - resolution: {integrity: sha512-n2a2CAEIzFKJbEdOTZsQy39DDOOMeBrhStX2m4z+P91kceCNewXr2aSNRTD9xJucBA1lV+yQFV+Uz5VRppla6w==, tarball: https://registry.npmjs.org/@tarojs/shared/-/shared-4.0.3.tgz} + resolution: {integrity: sha512-n2a2CAEIzFKJbEdOTZsQy39DDOOMeBrhStX2m4z+P91kceCNewXr2aSNRTD9xJucBA1lV+yQFV+Uz5VRppla6w==} engines: {node: '>= 18'} '@tarojs/taro@4.0.3': - resolution: {integrity: sha512-nDUfL9jHQAyvt/SJPNWavZKXMMLMxnTroIpb7V4qFkfk1G/FTqOVtOqVhDgPcEgS0JY40d6TDDVcU//5f8fhTA==, tarball: https://registry.npmjs.org/@tarojs/taro/-/taro-4.0.3.tgz} + resolution: {integrity: sha512-nDUfL9jHQAyvt/SJPNWavZKXMMLMxnTroIpb7V4qFkfk1G/FTqOVtOqVhDgPcEgS0JY40d6TDDVcU//5f8fhTA==} engines: {node: '>= 18'} peerDependencies: '@tarojs/components': 4.0.3 @@ -2382,11 +2385,6 @@ packages: b4a@1.6.6: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==, tarball: https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz} - babel-core@7.0.0-bridge.0: - resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==, tarball: https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz} - peerDependencies: - '@babel/core': ^7.0.0-0 - babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, tarball: https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4437,8 +4435,9 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==, tarball: https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz} - jscodeshift@0.15.2: - resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==, tarball: https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz} + jscodeshift@17.0.0: + resolution: {integrity: sha512-Af+MFsNwLSVO+t4kKjJdJKh6iNbNHfDfFGdyltJ2wUFN3furgbvHguJmB85iou+fY7wbHgI8eiEKpp6doGgtKg==, tarball: https://registry.npmjs.org/jscodeshift/-/jscodeshift-17.0.0.tgz} + engines: {node: '>=16'} hasBin: true peerDependencies: '@babel/preset-env': ^7.1.6 @@ -4751,8 +4750,8 @@ packages: markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, tarball: https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz} - marked@13.0.3: - resolution: {integrity: sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==, tarball: https://registry.npmjs.org/marked/-/marked-13.0.3.tgz} + marked@14.1.2: + resolution: {integrity: sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==, tarball: https://registry.npmjs.org/marked/-/marked-14.1.2.tgz} engines: {node: '>= 18'} hasBin: true @@ -5005,6 +5004,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, tarball: https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz} engines: {node: '>=16 || 14 >=14.17'} + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, tarball: https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz} + hasBin: true + mobx-react-lite@4.0.7: resolution: {integrity: sha512-RjwdseshK9Mg8On5tyJZHtGD+J78ZnCnRaxeQDSiciKVQDUbfZcXhmld0VMxAwvcTnPEHZySGGewm467Fcpreg==, tarball: https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-4.0.7.tgz} peerDependencies: @@ -5068,10 +5071,6 @@ packages: resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==, tarball: https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-2.0.0.tgz} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-dir@0.1.17: - resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==, tarball: https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz} - engines: {node: '>= 0.10.5'} - node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, tarball: https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz} engines: {node: '>=10.5.0'} @@ -6224,8 +6223,8 @@ packages: teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==, tarball: https://registry.npmjs.org/teex/-/teex-1.0.1.tgz} - temp@0.8.4: - resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==, tarball: https://registry.npmjs.org/temp/-/temp-0.8.4.tgz} + temp@0.9.4: + resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==, tarball: https://registry.npmjs.org/temp/-/temp-0.9.4.tgz} engines: {node: '>=6.0.0'} terser-webpack-plugin@5.3.10: @@ -6742,9 +6741,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} - write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz} - write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz} @@ -6752,6 +6748,10 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==, tarball: https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz} engines: {node: '>=12'} @@ -7805,9 +7805,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nutui/icons-react-taro@1.0.4': {} + '@nutui/icons-react-taro@1.0.5': {} - '@nutui/icons-react@1.0.4': {} + '@nutui/icons-react@1.0.5': {} '@nutui/touch-emulator@1.0.0': {} @@ -8220,12 +8220,12 @@ snapshots: '@tarojs/runtime': 4.0.3 '@tarojs/shared': 4.0.3 - '@tarojs/components-advanced@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/runtime@4.0.3)(@tarojs/shared@4.0.3)(@tarojs/taro@4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12)))': + '@tarojs/components-advanced@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/runtime@4.0.3)(@tarojs/shared@4.0.3)(@tarojs/taro@4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12)))': dependencies: '@tarojs/components': 4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) '@tarojs/runtime': 4.0.3 '@tarojs/shared': 4.0.3 - '@tarojs/taro': 4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) + '@tarojs/taro': 4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) classnames: 2.5.1 csstype: 3.1.3 memoize-one: 6.0.0 @@ -8245,9 +8245,9 @@ snapshots: '@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12)))': dependencies: '@stencil/core': 2.22.3 - '@tarojs/components-advanced': 4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/runtime@4.0.3)(@tarojs/shared@4.0.3)(@tarojs/taro@4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) + '@tarojs/components-advanced': 4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/runtime@4.0.3)(@tarojs/shared@4.0.3)(@tarojs/taro@4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) '@tarojs/runtime': 4.0.3 - '@tarojs/taro': 4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) + '@tarojs/taro': 4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) classnames: 2.5.1 hammerjs: 2.0.8 hls.js: 1.5.13 @@ -8342,7 +8342,7 @@ snapshots: '@tarojs/shared@4.0.3': {} - '@tarojs/taro@4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12)))': + '@tarojs/taro@4.0.3(@tarojs/components@4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))))(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12)))': dependencies: '@tarojs/api': 4.0.3(@tarojs/runtime@4.0.3)(@tarojs/shared@4.0.3) '@tarojs/components': 4.0.3(@tarojs/helper@4.0.3(@swc/helpers@0.5.12))(@tarojs/shared@4.0.3)(@types/react@18.3.3)(postcss@8.4.40)(react@18.3.1)(rollup@4.19.1)(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))) @@ -9163,10 +9163,6 @@ snapshots: b4a@1.6.6: {} - babel-core@7.0.0-bridge.0(@babel/core@7.24.9): - dependencies: - '@babel/core': 7.24.9 - babel-jest@29.7.0(@babel/core@7.24.9): dependencies: '@babel/core': 7.24.9 @@ -11656,7 +11652,7 @@ snapshots: jsbn@1.1.0: {} - jscodeshift@0.15.2: + jscodeshift@17.0.0: dependencies: '@babel/core': 7.24.9 '@babel/parser': 7.25.0 @@ -11668,16 +11664,14 @@ snapshots: '@babel/preset-flow': 7.24.7(@babel/core@7.24.9) '@babel/preset-typescript': 7.24.7(@babel/core@7.24.9) '@babel/register': 7.24.6(@babel/core@7.24.9) - babel-core: 7.0.0-bridge.0(@babel/core@7.24.9) - chalk: 4.1.2 flow-parser: 0.241.0 graceful-fs: 4.2.11 micromatch: 4.0.7 neo-async: 2.6.2 - node-dir: 0.1.17 + picocolors: 1.0.1 recast: 0.23.9 - temp: 0.8.4 - write-file-atomic: 2.4.3 + temp: 0.9.4 + write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color @@ -11968,7 +11962,7 @@ snapshots: markdown-table@3.0.3: {} - marked@13.0.3: {} + marked@14.1.2: {} material-colors@1.2.6: {} @@ -12498,6 +12492,10 @@ snapshots: minipass@7.1.2: {} + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + mobx-react-lite@4.0.7(mobx@6.13.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: mobx: 6.13.1 @@ -12543,10 +12541,6 @@ snapshots: dependencies: type-fest: 2.19.0 - node-dir@0.1.17: - dependencies: - minimatch: 3.1.2 - node-domexception@1.0.0: {} node-fetch@3.3.2: @@ -13862,8 +13856,9 @@ snapshots: dependencies: streamx: 2.18.0 - temp@0.8.4: + temp@0.9.4: dependencies: + mkdirp: 0.5.6 rimraf: 2.6.3 terser-webpack-plugin@5.3.10(@swc/core@1.7.3(@swc/helpers@0.5.12))(webpack@5.93.0(@swc/core@1.7.3(@swc/helpers@0.5.12))): @@ -14459,12 +14454,6 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@2.4.3: - dependencies: - graceful-fs: 4.2.11 - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - write-file-atomic@3.0.3: dependencies: imurmurhash: 0.1.4 @@ -14477,6 +14466,11 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + xdg-basedir@5.1.0: {} xtend@4.0.2: {} diff --git a/scripts/generate-local-changelog.js b/scripts/generate-local-changelog.js index 31451acaea..1d43cd7a70 100644 --- a/scripts/generate-local-changelog.js +++ b/scripts/generate-local-changelog.js @@ -10,7 +10,7 @@ shell.exec( { silent: true }, (code, stdout, stderr) => { shell.exec( - `git log --since="${stdout.replace('\n', '')}" --pretty=format:"%s @%an" next`, + `git log --since="${stdout.replace('\n', '')}" --pretty=format:"%s" next`, { silent: true }, (code, stdout, stderr) => { const logs = stdout.split('\n') @@ -43,7 +43,7 @@ shell.exec( } const logSymbol = { build: '* 📦 ', - chore: '*🏡 ', + chore: '* 🏡 ', ci: '* 🤖 ', docs: '* 📖 ', feat: '* :sparkles: ', @@ -51,13 +51,11 @@ shell.exec( perf: '* zap: ', refactor: '* 🪵 ', revert: '* 🚦 ', - style: ':art: ', + style: '* :art: ', test: '* 💡 ', others: '* 🔔 ', } logs.forEach((log, index) => { - // const groups = log.match(/#(?[0-9]+)/)?.groups - // if (groups && groups.pr) { if (log.indexOf(beforeTag) === -1) { const a = rules.filter((rule) => { return log.toLowerCase().startsWith(rule) diff --git a/src/packages/cell/cell.scss b/src/packages/cell/cell.scss index 2beff6b42d..31847bb99d 100644 --- a/src/packages/cell/cell.scss +++ b/src/packages/cell/cell.scss @@ -50,6 +50,26 @@ font-size: $cell-extra-font-size; color: $cell-extra-color; } + &:active::before { + opacity: 0.1; + } + &-clickable { + cursor: pointer; + &::before { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 100%; + background-color: $black; + border: inherit; + border-color: $black; + border-radius: inherit; + transform: translate(-50%, -50%); + opacity: 0; + content: ' '; + } + } &-divider { display: flex; diff --git a/src/packages/cell/cell.taro.tsx b/src/packages/cell/cell.taro.tsx index 058fee485f..9c6381ad11 100644 --- a/src/packages/cell/cell.taro.tsx +++ b/src/packages/cell/cell.taro.tsx @@ -13,6 +13,7 @@ export interface CellProps extends BasicComponent { extra: ReactNode radius: string | number align: 'flex-start' | 'center' | 'flex-end' + clickable: boolean isLast: boolean onClick: ( event: React.MouseEvent | ITouchEvent @@ -26,6 +27,7 @@ const defaultProps = { extra: null, radius: '6px', align: 'flex-start', + clickable: false, isLast: false, onClick: ( event: React.MouseEvent | ITouchEvent @@ -49,6 +51,7 @@ export const Cell: FunctionComponent< isLast, className, style, + clickable, } = { ...defaultProps, ...props, @@ -73,13 +76,16 @@ export const Cell: FunctionComponent< return ( <> handleClick(event)} style={baseStyle} > diff --git a/src/packages/cell/cell.tsx b/src/packages/cell/cell.tsx index a07189e386..6700b89b7c 100644 --- a/src/packages/cell/cell.tsx +++ b/src/packages/cell/cell.tsx @@ -11,7 +11,7 @@ export interface CellProps extends BasicComponent { extra: ReactNode radius: string | number align: 'flex-start' | 'center' | 'flex-end' - isLast: boolean + clickable: boolean onClick: (event: React.MouseEvent) => void } @@ -22,6 +22,7 @@ const defaultProps = { extra: null, radius: '6px', align: 'flex-start', + clickable: false, isLast: false, onClick: (event: React.MouseEvent) => {}, } as CellProps @@ -34,6 +35,7 @@ export const Cell: FunctionComponent< const ctx = useContext(CellGroupContext) const { children, + clickable, onClick, title, description, @@ -63,13 +65,16 @@ export const Cell: FunctionComponent< return ( <>
handleClick(event)} style={baseStyle} {...rest} diff --git a/src/packages/cell/demos/h5/demo1.tsx b/src/packages/cell/demos/h5/demo1.tsx index 2fffd178e6..b38ecf4078 100644 --- a/src/packages/cell/demos/h5/demo1.tsx +++ b/src/packages/cell/demos/h5/demo1.tsx @@ -12,6 +12,7 @@ const Demo1 = () => { diff --git a/src/packages/cell/demos/taro/demo1.tsx b/src/packages/cell/demos/taro/demo1.tsx index c49da81870..89458be12b 100644 --- a/src/packages/cell/demos/taro/demo1.tsx +++ b/src/packages/cell/demos/taro/demo1.tsx @@ -12,7 +12,13 @@ const Demo1 = () => { <> - testClick(event)} /> + + ) => testClick(event)} + /> ) diff --git a/src/packages/cell/doc.en-US.md b/src/packages/cell/doc.en-US.md index 40859e603d..ceca7cafba 100644 --- a/src/packages/cell/doc.en-US.md +++ b/src/packages/cell/doc.en-US.md @@ -91,6 +91,7 @@ The 'divider' property allows you to keep the lower edge from being displayed be | extra | Extra | `ReactNode` | `-` | | radius | Corner radius | `string` | `6px` | | align | Alignment in the vertical direction | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | click style feedback | `boolean` | `false` | | onClick | Emitted when cell is clicked | `onClick: (event: React.MouseEvent) => void` | `false` | ## Theming diff --git a/src/packages/cell/doc.md b/src/packages/cell/doc.md index df9c0ff721..0ab36a0081 100644 --- a/src/packages/cell/doc.md +++ b/src/packages/cell/doc.md @@ -93,6 +93,7 @@ import { Cell } from '@nutui/nutui-react' | extra | 右侧描述 | `ReactNode` | `-` | | radius | 圆角半径 | `string` | `6px` | | align | 纵轴方向上的对齐方式 | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | 点击的样式反馈 | `boolean` | `false` | | onClick | 点击事件 | `onClick: (event: React.MouseEvent) => void` | `false` | ## 主题定制 diff --git a/src/packages/cell/doc.taro.md b/src/packages/cell/doc.taro.md index 2ea59546a7..25b0402d68 100644 --- a/src/packages/cell/doc.taro.md +++ b/src/packages/cell/doc.taro.md @@ -92,6 +92,7 @@ import { Cell } from '@nutui/nutui-react-taro' | extra | 右侧描述 | `ReactNode` | `-` | | radius | 圆角半径 | `string` | `6px` | | align | 纵轴方向上的对齐方式 | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | 点击的样式反馈 | `boolean` | `false` | | onClick | 点击事件 | `onClick: (event: React.MouseEvent) => void` | `false` | ## 主题定制 diff --git a/src/packages/cell/doc.zh-TW.md b/src/packages/cell/doc.zh-TW.md index b939bb02ee..d47d986d38 100644 --- a/src/packages/cell/doc.zh-TW.md +++ b/src/packages/cell/doc.zh-TW.md @@ -93,6 +93,7 @@ import { Cell } from '@nutui/nutui-react' | extra | 右側描述 | `ReactNode` | `-` | | radius | 圓角半徑 | `string` | `6px` | | align | 縱軸方向上的對齊方式 | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | 點擊的樣式反饋 | `boolean` | `false` | | onClick | 點擊事件 | `onClick: (event: React.MouseEvent) => void` | `false` | ## 主題定製 diff --git a/src/packages/input/input.taro.tsx b/src/packages/input/input.taro.tsx index 80c84daaea..1f70556385 100644 --- a/src/packages/input/input.taro.tsx +++ b/src/packages/input/input.taro.tsx @@ -146,13 +146,11 @@ export const Input = forwardRef( trigger: InputFormatTrigger = 'onChange' ) => { let val = value - if (getEnv() === ENV_TYPE.WEB) { - if (type === 'number') { - val = formatNumber(val, false, true) - } - if (type === 'digit') { - val = formatNumber(val, true, true) - } + if (type === 'number') { + val = formatNumber(val, false, true) + } + if (type === 'digit') { + val = formatNumber(val, true, true) } if (formatter && trigger === formatTrigger) { val = formatter(val) diff --git a/src/packages/popup/demos/h5/demo5.tsx b/src/packages/popup/demos/h5/demo5.tsx index 1547e898ae..338b7d2927 100644 --- a/src/packages/popup/demos/h5/demo5.tsx +++ b/src/packages/popup/demos/h5/demo5.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import { Popup, Cell } from '@nutui/nutui-react' -const Demo4 = () => { +const Demo5 = () => { const [showBottomRound, setShowBottomRound] = useState(false) return ( @@ -24,4 +24,4 @@ const Demo4 = () => { ) } -export default Demo4 +export default Demo5 diff --git a/src/packages/popup/demos/h5/demo6.tsx b/src/packages/popup/demos/h5/demo6.tsx index 175e861647..09c573712b 100644 --- a/src/packages/popup/demos/h5/demo6.tsx +++ b/src/packages/popup/demos/h5/demo6.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import { Popup, Cell } from '@nutui/nutui-react' -const Demo5 = () => { +const Demo6 = () => { const [showMountNode, setShowMountNode] = useState(false) return ( @@ -25,4 +25,4 @@ const Demo5 = () => { ) } -export default Demo5 +export default Demo6 diff --git a/src/packages/popup/demos/h5/demo7.tsx b/src/packages/popup/demos/h5/demo7.tsx index 6ad34405fb..a48827c66c 100644 --- a/src/packages/popup/demos/h5/demo7.tsx +++ b/src/packages/popup/demos/h5/demo7.tsx @@ -1,9 +1,10 @@ import React, { useState } from 'react' -import { Popup, Cell } from '@nutui/nutui-react' +import { Popup, Cell, Dialog } from '@nutui/nutui-react' -const Demo6 = () => { +const Demo7 = () => { const [showMutiple, setShowMutiple] = useState(false) const [showMutipleInner, setShowMutipleInner] = useState(false) + const [showDialog, setShowDialog] = useState(false) return ( <> @@ -44,7 +45,37 @@ const Demo6 = () => { close + + { + setShowDialog(true) + }} + /> + + { + setShowDialog(false) + }} + > + + Dialog.alert({ + title: '提示', + content: '支持函数调用和组件调用两种方式。', + hideCancelButton: true, + confirmText: '确认', + }) + } + /> + ) } -export default Demo6 +export default Demo7 diff --git a/src/packages/popup/demos/taro/demo5.tsx b/src/packages/popup/demos/taro/demo5.tsx index 8073c464ed..ef25d7c0e3 100644 --- a/src/packages/popup/demos/taro/demo5.tsx +++ b/src/packages/popup/demos/taro/demo5.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import { Popup, Cell } from '@nutui/nutui-react-taro' -const Demo4 = () => { +const Demo5 = () => { const [showBottomRound, setShowBottomRound] = useState(false) return ( @@ -24,4 +24,4 @@ const Demo4 = () => { ) } -export default Demo4 +export default Demo5 diff --git a/src/packages/popup/demos/taro/demo6.tsx b/src/packages/popup/demos/taro/demo6.tsx index 1d58647cce..e1358d7029 100644 --- a/src/packages/popup/demos/taro/demo6.tsx +++ b/src/packages/popup/demos/taro/demo6.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import { Popup, Cell } from '@nutui/nutui-react-taro' -const Demo5 = () => { +const Demo6 = () => { const [showMountNode, setShowMountNode] = useState(false) return ( @@ -25,4 +25,4 @@ const Demo5 = () => { ) } -export default Demo5 +export default Demo6 diff --git a/src/packages/popup/demos/taro/demo7.tsx b/src/packages/popup/demos/taro/demo7.tsx index dd36b792d8..a5f4146cf6 100644 --- a/src/packages/popup/demos/taro/demo7.tsx +++ b/src/packages/popup/demos/taro/demo7.tsx @@ -1,18 +1,21 @@ import React, { useState } from 'react' -import { Popup, Cell } from '@nutui/nutui-react-taro' +import { Popup, Cell, Dialog } from '@nutui/nutui-react-taro' -const Demo6 = () => { +const Demo7 = () => { const [showMutiple, setShowMutiple] = useState(false) const [showMutipleInner, setShowMutipleInner] = useState(false) + const [showDialog, setShowDialog] = useState(false) return ( <> + { setShowMutiple(true) }} /> + { close + + { + setShowDialog(true) + }} + /> + + { + setShowDialog(false) + }} + > + + Dialog.open('test', { + title: 'Dialog', + content: '可通过 Dialog.open 打开对话框', + onConfirm: () => { + Dialog.close('test') + }, + onCancel: () => { + Dialog.close('test') + }, + }) + } + /> + ) } -export default Demo6 +export default Demo7 diff --git a/src/packages/popup/demos/taro/demo8.tsx b/src/packages/popup/demos/taro/demo8.tsx index 5b8aa04f6a..38d6895dcb 100644 --- a/src/packages/popup/demos/taro/demo8.tsx +++ b/src/packages/popup/demos/taro/demo8.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react' import { Popup, Cell } from '@nutui/nutui-react-taro' import { ScrollView } from '@tarojs/components' -const Demo6 = () => { +const Demo8 = () => { const [scrollPenetration, setScrollPenetration] = useState(false) return ( @@ -25,4 +25,4 @@ const Demo6 = () => { ) } -export default Demo6 +export default Demo8 diff --git a/src/packages/pulltorefresh/demo.taro.tsx b/src/packages/pulltorefresh/demo.taro.tsx index 728490d445..671f5cdb36 100644 --- a/src/packages/pulltorefresh/demo.taro.tsx +++ b/src/packages/pulltorefresh/demo.taro.tsx @@ -6,6 +6,8 @@ import { useTranslate } from '@/sites/assets/locale/taro' import Demo1 from './demos/taro/demo1' import Demo2 from './demos/taro/demo2' import Demo3 from './demos/taro/demo3' +import Demo4 from './demos/taro/demo4' +import { harmonyAndRn } from '@/utils/platform-taro' const PullToRefreshDemo = () => { const [translated] = useTranslate({ @@ -13,16 +15,19 @@ const PullToRefreshDemo = () => { basic: '基础用法', scrollView: 'ScrollView', primary: '反白模式', + disabled: '禁用', }, 'zh-TW': { basic: '基礎用法', scrollView: 'ScrollView', primary: '反白模式', + disabled: '禁用', }, 'en-US': { basic: 'Basic Usage', scrollView: 'ScrollView', primary: 'reverse', + disabled: 'disabled', }, }) return ( @@ -31,12 +36,16 @@ const PullToRefreshDemo = () => { {translated.basic} - {translated.scrollView} - {translated.primary} + {!harmonyAndRn() && ( + <> + {translated.disabled} + + + )} ) diff --git a/src/packages/pulltorefresh/demos/taro/demo4.tsx b/src/packages/pulltorefresh/demos/taro/demo4.tsx new file mode 100644 index 0000000000..910565ebca --- /dev/null +++ b/src/packages/pulltorefresh/demos/taro/demo4.tsx @@ -0,0 +1,53 @@ +import React, { useState } from 'react' +import { ScrollView } from '@tarojs/components' +import { PullToRefresh, Cell, Toast } from '@nutui/nutui-react-taro' + +const Demo4 = () => { + const [list] = useState([1, 2, 3, 4, 5, 6, 7]) + const [show, SetShow] = useState(false) + const [toastMsg, SetToastMsg] = useState('') + const toastShow = (msg: any) => { + SetToastMsg(msg) + SetShow(true) + } + const [scrollTop, setScrollTop] = useState(0) + return ( + <> + { + // scrollTop > 0, PullToRefresh 不触发 touchmove 事件。 + if (e.detail?.scrollTop) { + setScrollTop(e.detail?.scrollTop) + } + }} + > + + new Promise((resolve) => { + toastShow('😊') + resolve('done') + }) + } + disabled + > + {list.map((item) => ( + {item} + ))} + + + { + SetShow(false) + }} + /> + + ) +} + +export default Demo4 diff --git a/src/packages/pulltorefresh/pulltorefresh.taro.tsx b/src/packages/pulltorefresh/pulltorefresh.taro.tsx index c7fa5fed0e..26c8cc419c 100644 --- a/src/packages/pulltorefresh/pulltorefresh.taro.tsx +++ b/src/packages/pulltorefresh/pulltorefresh.taro.tsx @@ -101,11 +101,11 @@ export const PullToRefresh: FunctionComponent> = ( return '' } const handleTouchStart: any = (e: ITouchEvent) => { + if (props.disabled) return touch.start(e as any) } const handleTouchMove: any = (e: ITouchEvent) => { - e.preventDefault() - if (props.scrollTop > 0) { + if (props.scrollTop > 0 || props.disabled) { return } if (status === 'refreshing' || status === 'complete') return @@ -154,7 +154,7 @@ export const PullToRefresh: FunctionComponent> = ( } const handleTouchEnd: any = () => { - console.log('yyyyyyyyyyyyyy') + if (props.disabled) return pullingRef.current = false if (status === 'canRelease') { doRefresh() diff --git a/src/packages/sticky/sticky.taro.tsx b/src/packages/sticky/sticky.taro.tsx index 2e73987252..75c7ff921b 100644 --- a/src/packages/sticky/sticky.taro.tsx +++ b/src/packages/sticky/sticky.taro.tsx @@ -97,7 +97,15 @@ export const Sticky: FunctionComponent> = (props) => { zIndex, } return style - }, [fixed, rootRect.height, rootRect.width, transform, position]) + }, [ + fixed, + rootRect.height, + rootRect.width, + transform, + position, + threshold, + zIndex, + ]) const handleScroll: any = async (scrollTop: number) => { const curRootRect = await getRectByTaro(rootRef.current) diff --git a/src/packages/sticky/sticky.tsx b/src/packages/sticky/sticky.tsx index de7b8b65c7..70ba6510c6 100644 --- a/src/packages/sticky/sticky.tsx +++ b/src/packages/sticky/sticky.tsx @@ -44,12 +44,13 @@ export const Sticky: FunctionComponent> = (props) => { const stickyRef = useRef(null) const rootRef = useRef(null) const [isFixed, setIsFixed] = useState(false) - const [stickyStyle, setStickyStyle] = useState({ [position]: `${threshold}px`, zIndex, }) - + useEffect(() => { + setStickyStyle({ ...stickyStyle, [position]: `${threshold}px`, zIndex }) + }, [threshold, position, zIndex]) const [rootStyle, setRootStyle] = useState({}) const getElement = useCallback(() => { diff --git a/src/packages/tabs/tabs.taro.tsx b/src/packages/tabs/tabs.taro.tsx index df65c213ef..6638e50c45 100644 --- a/src/packages/tabs/tabs.taro.tsx +++ b/src/packages/tabs/tabs.taro.tsx @@ -209,6 +209,8 @@ export const Tabs: FunctionComponent> & { .slice(0, index) .reduce((prev: number, curr: RectItem) => prev + curr.width, 0) to = left - (navRectRef.current.width - titleRect.width) / 2 + // to < 0 说明不需要进行滚动,页面元素已全部显示出来 + if (to < 0) return to = rtl ? -to : to } nextTick(() => { diff --git a/src/packages/uploader/__tests__/uploader.spec.tsx b/src/packages/uploader/__tests__/uploader.spec.tsx index 0b9847dcaf..589c0ed84d 100644 --- a/src/packages/uploader/__tests__/uploader.spec.tsx +++ b/src/packages/uploader/__tests__/uploader.spec.tsx @@ -90,7 +90,7 @@ test('should render base uploader other props', () => { fireEvent.click(container.querySelectorAll('.close')[0]) expect(onDelete).toBeCalled() - const toast2 = container.querySelector('.nut-uploader-preview-img-c') + const toast2 = container.querySelector('.nut-uploader-preview-img-c .nut-img') expect(toast2).toBeTruthy() fireEvent.click(container.querySelectorAll('.nut-uploader-preview-img-c')[0]) expect(fileItemClick).toBeCalled() diff --git a/src/packages/uploader/demos/h5/demo1.tsx b/src/packages/uploader/demos/h5/demo1.tsx index fc41fa4fd5..ab55af17f5 100644 --- a/src/packages/uploader/demos/h5/demo1.tsx +++ b/src/packages/uploader/demos/h5/demo1.tsx @@ -7,10 +7,18 @@ const Demo1 = () => { const onStart = () => { console.log('start触发') } + const beforeUpload = async (files: File[]) => { + const allowedTypes = ['image/png'] + const filteredFiles = Array.from(files).filter((file) => + allowedTypes.includes(file.type) + ) + return filteredFiles + } return ( <> { const onStart = () => { console.log('start触发') } + const beforeUpload = async (files: File[]) => { + console.log('beforeUpload') + const allowedTypes = ['image/png'] + const filteredFiles = Array.from(files).filter((file) => + allowedTypes.includes(file.type) + ) + return filteredFiles + } return ( { | disabled | 是否禁用文件上传 | `boolean` | `false` | | multiple | 是否支持文件多选 | `boolean` | `false` | | timeout | 超时时间,单位为毫秒 | `number` \| `string` | `1000 * 30` | +| beforeUpload | 上传前的函数需要返回一个`Promise`对象 | `(file: File[]) => Promise` | `-` | | beforeXhrUpload | 执行 XHR 上传时,自定义方式 | `(xhr: XMLHttpRequest, options: any) => void` | `-` | | beforeDelete | 除文件时的回调,返回值为 false 时不移除。支持返回一个 `Promise` 对象,`Promise` 对象 resolve(false) 或 reject 时不移除 | `(file: FileItem, files: FileItem[]) => boolean` | `-` | | onStart | 文件上传开始 | `(option: UploadOptions) => void` | `-` | diff --git a/src/packages/uploader/preview.tsx b/src/packages/uploader/preview.tsx index a381d4a4df..90feb996c3 100644 --- a/src/packages/uploader/preview.tsx +++ b/src/packages/uploader/preview.tsx @@ -1,6 +1,8 @@ import React from 'react' import { Del, Failure, Link as LinkIcon, Loading } from '@nutui/icons-react' import Progress from '@/packages/progress' + +import Image from '@/packages/image' import { FileItem } from '@/packages/uploader/file-item' import { ERROR } from '@/packages/uploader/utils' @@ -59,7 +61,7 @@ export const Preview: React.FunctionComponent = ({ {item.type?.includes('image') ? ( <> {item.url && ( - = ({ ) : ( <> {previewUrl ? ( - void onChange?: (files: FileItem[]) => void + beforeUpload?: ( + files: Taro.chooseImage.ImageFile[] | Taro.chooseMedia.ChooseMedia[] | any + ) => Promise beforeXhrUpload?: (xhr: XMLHttpRequest, options: any) => void beforeDelete?: (file: FileItem, files: FileItem[]) => boolean onFileItemClick?: (file: FileItem, index: number) => void @@ -191,6 +194,7 @@ const InternalUploader: ForwardRefRenderFunction< onUpdate, onFailure, onOversize, + beforeUpload, beforeXhrUpload, beforeDelete, ...restProps @@ -465,14 +469,34 @@ const InternalUploader: ForwardRefRenderFunction< // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 const { tempFiles } = res const _files: Taro.chooseMedia.ChooseMedia[] = filterFiles(tempFiles) - readFile(_files) + if (beforeUpload) { + beforeUpload(new Array().slice.call(_files)).then( + (f: Array | boolean) => { + const _files: File[] = filterFiles(new Array().slice.call(f)) + if (!_files.length) res.tempFiles = [] + readFile(_files) + } + ) + } else { + readFile(_files) + } } const onChangeImage = (res: Taro.chooseImage.SuccessCallbackResult) => { // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 const { tempFiles } = res const _files: Taro.chooseImage.ImageFile[] = filterFiles(tempFiles) - readFile(_files) + if (beforeUpload) { + beforeUpload(new Array().slice.call(_files)).then( + (f: Array | boolean) => { + const _files: File[] = filterFiles(new Array().slice.call(f)) + if (!_files.length) res.tempFiles = [] + readFile(_files) + } + ) + } else { + readFile(_files) + } } const handleItemClick = (file: FileItem, index: number) => { diff --git a/src/packages/uploader/uploader.tsx b/src/packages/uploader/uploader.tsx index 12d2692ba8..201578df9a 100644 --- a/src/packages/uploader/uploader.tsx +++ b/src/packages/uploader/uploader.tsx @@ -350,9 +350,8 @@ const InternalUploader: ForwardRefRenderFunction< } const fileChange = (event: React.ChangeEvent) => { - if (disabled) { - return - } + if (disabled) return + const $el = event.target const { files } = $el @@ -360,6 +359,7 @@ const InternalUploader: ForwardRefRenderFunction< beforeUpload(new Array().slice.call(files)).then( (f: Array | boolean) => { const _files: File[] = filterFiles(new Array().slice.call(f)) + if (!_files.length) $el.value = '' readFile(_files) } ) From 261b08ec33c50d848da8cfa76ca73fe03f50fc02 Mon Sep 17 00:00:00 2001 From: huxiyang3 <1872591453@qq.com> Date: Mon, 9 Sep 2024 12:03:15 +0800 Subject: [PATCH 2/2] fix: rn css --- src/packages/cell/cell.harmony.css | 20 ++++++++++++++++++++ src/packages/cell/cell.scss | 4 ++-- src/packages/cell/cell.taro.tsx | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/packages/cell/cell.harmony.css b/src/packages/cell/cell.harmony.css index 974b073e7f..2c65ab7b3d 100644 --- a/src/packages/cell/cell.harmony.css +++ b/src/packages/cell/cell.harmony.css @@ -77,6 +77,26 @@ font-size: 14px; color: #505259; } +.nut-cell:active { + opacity: 0.7; +} +.nut-cell-clickable { + cursor: pointer; +} +.nut-cell-clickable::before { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 100%; + background-color: #1a1a1a; + border: inherit; + border-color: #1a1a1a; + border-radius: inherit; + transform: translate(-50%, -50%); + opacity: 0; + content: " "; +} .nut-cell-divider { display: flex; min-height: 1px; diff --git a/src/packages/cell/cell.scss b/src/packages/cell/cell.scss index 31847bb99d..3aaf9567c2 100644 --- a/src/packages/cell/cell.scss +++ b/src/packages/cell/cell.scss @@ -50,8 +50,8 @@ font-size: $cell-extra-font-size; color: $cell-extra-color; } - &:active::before { - opacity: 0.1; + &-clickable:active { + opacity: 0.7; } &-clickable { cursor: pointer; diff --git a/src/packages/cell/cell.taro.tsx b/src/packages/cell/cell.taro.tsx index 9c6381ad11..22fdaafa43 100644 --- a/src/packages/cell/cell.taro.tsx +++ b/src/packages/cell/cell.taro.tsx @@ -76,6 +76,7 @@ export const Cell: FunctionComponent< return ( <>