From 8ab7fa52d494ee93dc58a56041428467ae18de3d Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Sat, 25 Oct 2025 13:24:40 +0800 Subject: [PATCH 01/11] chore: bump eslint-plugin-react-hooks@7.0.1 (#55456) * chore: rm useless eslint comment * eslint-plugin-react-hooks@7.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1d5f9873e..2b12b3a44d 100644 --- a/package.json +++ b/package.json @@ -246,7 +246,7 @@ "eslint-plugin-compat": "^6.0.1", "eslint-plugin-jest": "^29.0.1", "eslint-plugin-jsx-a11y": "^6.10.0", - "eslint-plugin-react-hooks": "^7.0.0", + "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.22", "fast-glob": "^3.3.2", "fs-extra": "^11.2.0", From 1d0b0a440cc5ba4ba5e0f7501fcb98a5e0bf3e24 Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Sat, 25 Oct 2025 13:25:30 +0800 Subject: [PATCH 02/11] fix: add alert missing memo deps (#55457) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 遇见同学 <1875694521@qq.com> --- components/alert/Alert.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/alert/Alert.tsx b/components/alert/Alert.tsx index 5d3610bc59..58c1b6db71 100644 --- a/components/alert/Alert.tsx +++ b/components/alert/Alert.tsx @@ -228,7 +228,7 @@ const Alert = React.forwardRef((props, ref) => { return contextClosable.closeIcon; } return contextCloseIcon; - }, [closeIcon, closable, closeText, contextCloseIcon]); + }, [closeIcon, closable, contextClosable, closeText, contextCloseIcon]); const mergedAriaProps = React.useMemo(() => { const merged = closable ?? contextClosable; From 00e392e66dfa87e97f2eecd55c2007ddeb32dab3 Mon Sep 17 00:00:00 2001 From: "Yasin B. Kalkan" Date: Sat, 25 Oct 2025 16:09:18 +0300 Subject: [PATCH 03/11] Fix color node reference and class name indexing (#55461) Signed-off-by: Yasin B. Kalkan --- .dumi/theme/common/Color/Palette.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.dumi/theme/common/Color/Palette.tsx b/.dumi/theme/common/Color/Palette.tsx index 3e05ff5e67..75c7742f0d 100644 --- a/.dumi/theme/common/Color/Palette.tsx +++ b/.dumi/theme/common/Color/Palette.tsx @@ -72,10 +72,10 @@ const Palette: React.FC = (props) => { key={i} ref={(node) => { if (node) { - colorNodesRef.current[`${name}-${i}`] = node; + colorNodesRef.current[`${name}-${i + 1}`] = node; } }} - className={`main-color-item palette-${name}-${i}`} + className={`main-color-item palette-${name}-${i + 1}`} style={{ color: (name === 'yellow' ? i > 6 : i > 5) ? firstColor : lastColor, fontWeight: i === 6 ? 'bold' : 'normal', From 5a69863ac151208be3c676ebffb9922a3c89ed90 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 09:03:23 +0800 Subject: [PATCH 04/11] chore(deps): update actions/download-artifact action to v6 (#55469) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/site-deploy.yml | 4 ++-- .github/workflows/test-v6.yml | 2 +- .github/workflows/test.yml | 2 +- .github/workflows/visual-regression-diff-build.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/site-deploy.yml b/.github/workflows/site-deploy.yml index 4202b74bdb..6a58e7084a 100644 --- a/.github/workflows/site-deploy.yml +++ b/.github/workflows/site-deploy.yml @@ -63,7 +63,7 @@ jobs: - uses: oven-sh/setup-bun@v2 - name: download site artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: real-site path: _site @@ -105,7 +105,7 @@ jobs: needs: build-site steps: - name: download site artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: real-site path: _site diff --git a/.github/workflows/test-v6.yml b/.github/workflows/test-v6.yml index d3d7e1165b..eaf057afe1 100644 --- a/.github/workflows/test-v6.yml +++ b/.github/workflows/test-v6.yml @@ -123,7 +123,7 @@ jobs: - uses: oven-sh/setup-bun@v2 - run: bun install - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@v6 with: pattern: coverage-artifacts-* merge-multiple: true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0b34e55c73..1b2a82b890 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -126,7 +126,7 @@ jobs: - uses: oven-sh/setup-bun@v2 - run: bun install - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@v6 with: pattern: coverage-artifacts-* merge-multiple: true diff --git a/.github/workflows/visual-regression-diff-build.yml b/.github/workflows/visual-regression-diff-build.yml index 74ea7df7dd..0fc06a3d9d 100644 --- a/.github/workflows/visual-regression-diff-build.yml +++ b/.github/workflows/visual-regression-diff-build.yml @@ -54,7 +54,7 @@ jobs: - uses: oven-sh/setup-bun@v2 - run: bun install - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@v6 with: pattern: snapshot-artifacts-* merge-multiple: true From d3ac9eddd04a253edbc14ca7b26ce195eee5a002 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 09:04:35 +0800 Subject: [PATCH 05/11] chore(deps): update actions/upload-artifact action to v5 (#55470) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/preview-build.yml | 4 ++-- .github/workflows/site-deploy.yml | 2 +- .github/workflows/test-v6.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- .github/workflows/visual-regression-diff-build.yml | 6 +++--- .github/workflows/visual-regression-persist-start.yml | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml index 3aef729a43..119b35a46f 100644 --- a/.github/workflows/preview-build.yml +++ b/.github/workflows/preview-build.yml @@ -30,7 +30,7 @@ jobs: - name: run e2e test run: bun run test:site - name: upload site artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: site path: _site/ @@ -42,7 +42,7 @@ jobs: - name: Upload PR number if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: pr path: ./pr-id.txt diff --git a/.github/workflows/site-deploy.yml b/.github/workflows/site-deploy.yml index 6a58e7084a..2a1979ceb0 100644 --- a/.github/workflows/site-deploy.yml +++ b/.github/workflows/site-deploy.yml @@ -45,7 +45,7 @@ jobs: fi - name: upload site artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: real-site path: _site/ diff --git a/.github/workflows/test-v6.yml b/.github/workflows/test-v6.yml index eaf057afe1..7f136f28f2 100644 --- a/.github/workflows/test-v6.yml +++ b/.github/workflows/test-v6.yml @@ -76,7 +76,7 @@ jobs: mkdir persist-coverage mv coverage/coverage-final.json persist-coverage/react-test-${{matrix.module}}-${{strategy.job-index}}.json - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 name: upload coverages with: name: coverage-artifacts-${{ matrix.module }}-${{ strategy.job-index }} @@ -179,7 +179,7 @@ jobs: run: bun run test:dekko # Artifact build files - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: github.event_name == 'push' && github.ref == 'refs/heads/master' with: name: build artifacts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1b2a82b890..65a2749b98 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -79,7 +79,7 @@ jobs: mkdir persist-coverage mv coverage/coverage-final.json persist-coverage/react-test-${{matrix.module}}-${{strategy.job-index}}.json - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 name: upload coverages with: name: coverage-artifacts-${{ matrix.module }}-${{ strategy.job-index }} @@ -182,7 +182,7 @@ jobs: run: bun run test:dekko # Artifact build files - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: github.event_name == 'push' && github.ref == 'refs/heads/master' with: name: build artifacts diff --git a/.github/workflows/visual-regression-diff-build.yml b/.github/workflows/visual-regression-diff-build.yml index 0fc06a3d9d..bd8a11b8ef 100644 --- a/.github/workflows/visual-regression-diff-build.yml +++ b/.github/workflows/visual-regression-diff-build.yml @@ -37,7 +37,7 @@ jobs: env: NODE_OPTIONS: --max_old_space_size=4096 - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 name: artifact snapshot with: name: snapshot-artifacts-${{ strategy.job-index }} @@ -71,7 +71,7 @@ jobs: # Upload report in `visualRegressionReport` - name: upload report artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 if: ${{ always() }} with: name: visual-regression-report @@ -85,7 +85,7 @@ jobs: - name: Upload persist key if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: visual-regression-diff-ref path: ./visual-regression-pr-id.txt diff --git a/.github/workflows/visual-regression-persist-start.yml b/.github/workflows/visual-regression-persist-start.yml index 6356ad9a48..77939f5ccf 100644 --- a/.github/workflows/visual-regression-persist-start.yml +++ b/.github/workflows/visual-regression-persist-start.yml @@ -31,7 +31,7 @@ jobs: # Upload `imageSnapshots` on master - name: upload report artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: image-snapshots path: imageSnapshots.tar.gz @@ -43,7 +43,7 @@ jobs: - name: Upload persist key if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: visual-regression-ref path: ./visual-regression-ref.txt From bf7cd94b899dd327bf3e697c78f970615bbbd251 Mon Sep 17 00:00:00 2001 From: lijianan <574980606@qq.com> Date: Sun, 26 Oct 2025 10:07:41 +0800 Subject: [PATCH 06/11] chore: rm unnecessary useMemo (#55468) * chore: rm unnecessary useMemo * rename --- components/space/index.tsx | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/components/space/index.tsx b/components/space/index.tsx index bafc463684..616685f62a 100644 --- a/components/space/index.tsx +++ b/components/space/index.tsx @@ -94,22 +94,13 @@ const InternalSpace = React.forwardRef((props, ref) customClassNames?.item ?? contextClassNames.item, ); - const memoizedLatestIndex = React.useMemo(() => { - return childNodes.reduce((latest, child, i) => { - if (child !== null && child !== undefined) { - return i; - } - return latest; - }, 0); - }, [childNodes]); - const mergedItemStyle: React.CSSProperties = { ...contextStyles.item, ...styles?.item, }; // Calculate latest one - const nodes = childNodes.map((child, i) => { + const renderedItems = childNodes.map((child, i) => { const key = child?.key || `${itemClassName}-${i}`; return ( @@ -118,10 +109,13 @@ const InternalSpace = React.forwardRef((props, ref) ); }); - const spaceContext = React.useMemo( - () => ({ latestIndex: memoizedLatestIndex }), - [memoizedLatestIndex], - ); + const memoizedSpaceContext = React.useMemo(() => { + const calcLatestIndex = childNodes.reduce( + (latest, child, i) => (child !== null && child !== undefined ? i : latest), + 0, + ); + return { latestIndex: calcLatestIndex }; + }, [childNodes]); // =========================== Render =========================== if (childNodes.length === 0) { @@ -149,7 +143,7 @@ const InternalSpace = React.forwardRef((props, ref) style={{ ...gapStyle, ...contextStyle, ...style }} {...otherProps} > - {nodes} + {renderedItems} , ); }); From 246c14b4421cf5497012b41c5251d59e01658c20 Mon Sep 17 00:00:00 2001 From: lijianan <574980606@qq.com> Date: Sun, 26 Oct 2025 15:22:07 +0800 Subject: [PATCH 07/11] fix: add missing dependency (#55467) Co-authored-by: thinkasany <480968828@qq.com> --- components/anchor/Anchor.tsx | 2 +- components/button/button.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/anchor/Anchor.tsx b/components/anchor/Anchor.tsx index 80b3d9aff8..c6d3661baa 100644 --- a/components/anchor/Anchor.tsx +++ b/components/anchor/Anchor.tsx @@ -246,7 +246,7 @@ const Anchor: React.FC = (props) => { ); setCurrentActiveLink(currentActiveLink); - }, [dependencyListItem, targetOffset, offsetTop]); + }, [links, targetOffset, offsetTop, bounds]); const handleScrollTo = React.useCallback<(link: string) => void>( (link) => { diff --git a/components/button/button.tsx b/components/button/button.tsx index 81d7b81f61..d8eec78753 100644 --- a/components/button/button.tsx +++ b/components/button/button.tsx @@ -1,8 +1,8 @@ import React, { Children, useContext, useEffect, useMemo, useRef, useState } from 'react'; import classNames from 'classnames'; +import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect'; import omit from 'rc-util/lib/omit'; import { useComposeRef } from 'rc-util/lib/ref'; -import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect'; import { devUseWarning } from '../_util/warning'; import Wave from '../_util/wave'; @@ -154,7 +154,7 @@ const InternalCompoundedButton = React.forwardRef< } return ['default', 'outlined']; - }, [type, color, variant, danger, button?.variant, button?.color]); + }, [color, variant, type, danger, button?.color, button?.variant, mergedType]); const isDanger = mergedColor === 'danger'; const mergedColorText = isDanger ? 'dangerous' : mergedColor; From d7ee8cc37762f71c9792b4f3944a6b6eff95349a Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Sun, 26 Oct 2025 16:21:25 +0800 Subject: [PATCH 08/11] fix: add ColorPicker missing memo deps (#55475) * fix: add ColorPicker missing memo deps * fix * fix --- components/color-picker/components/PanelPicker/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/color-picker/components/PanelPicker/index.tsx b/components/color-picker/components/PanelPicker/index.tsx index 504395f64e..2c509e32c6 100644 --- a/components/color-picker/components/PanelPicker/index.tsx +++ b/components/color-picker/components/PanelPicker/index.tsx @@ -70,7 +70,7 @@ const PanelPicker: FC = () => { if (!isSingle) { setLockedColor(colors[activeIndex]?.color); } - }, [gradientDragging, activeIndex]); + }, [isSingle, colors, gradientDragging, activeIndex]); const activeColor = React.useMemo(() => { if (isSingle) { @@ -83,7 +83,7 @@ const PanelPicker: FC = () => { } return colors[activeIndex]?.color; - }, [value, activeIndex, isSingle, lockedColor, gradientDragging]); + }, [colors, value, activeIndex, isSingle, lockedColor, gradientDragging]); // ========================= Picker Color ========================= const [pickerColor, setPickerColor] = React.useState(activeColor); From 40531626c1ebcb88cd76c8e5526d3de2aa46df27 Mon Sep 17 00:00:00 2001 From: lijianan <574980606@qq.com> Date: Sun, 26 Oct 2025 16:38:18 +0800 Subject: [PATCH 09/11] refactor: remove useState, reuse useForceUpdate hook (#55476) * refactor: reuse useForceUpdate hook * update --- components/_util/hooks/useForceUpdate.ts | 9 +++++---- components/_util/hooks/useSyncState.ts | 3 +-- components/color-picker/components/PanelPicker/index.tsx | 6 ++++-- components/grid/hooks/useBreakpoint.tsx | 2 +- components/upload/UploadList/index.tsx | 3 ++- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/components/_util/hooks/useForceUpdate.ts b/components/_util/hooks/useForceUpdate.ts index d053a1986a..5fc535a8e2 100644 --- a/components/_util/hooks/useForceUpdate.ts +++ b/components/_util/hooks/useForceUpdate.ts @@ -1,6 +1,7 @@ import * as React from 'react'; -export default function useForceUpdate() { - const [, forceUpdate] = React.useReducer((x) => x + 1, 0); - return forceUpdate; -} +const useForceUpdate = () => { + return React.useReducer((ori) => ori + 1, 0); +}; + +export default useForceUpdate; diff --git a/components/_util/hooks/useSyncState.ts b/components/_util/hooks/useSyncState.ts index fe61fac42d..3816ddedfb 100644 --- a/components/_util/hooks/useSyncState.ts +++ b/components/_util/hooks/useSyncState.ts @@ -6,8 +6,7 @@ type UseSyncStateProps = readonly [() => T, (newValue: T) => void]; export default function useSyncState(initialValue: T): UseSyncStateProps { const ref = React.useRef(initialValue); - const forceUpdate = useForceUpdate(); - + const [, forceUpdate] = useForceUpdate(); return [ () => ref.current, (newValue: T) => { diff --git a/components/color-picker/components/PanelPicker/index.tsx b/components/color-picker/components/PanelPicker/index.tsx index 2c509e32c6..557f728d09 100644 --- a/components/color-picker/components/PanelPicker/index.tsx +++ b/components/color-picker/components/PanelPicker/index.tsx @@ -4,6 +4,7 @@ import RcColorPicker from '@rc-component/color-picker'; import type { Color } from '@rc-component/color-picker'; import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect'; +import useForceUpdate from '../../../_util/hooks/useForceUpdate'; import Segmented from '../../../segmented'; import { AggregationColor } from '../../color'; import { PanelPickerContext } from '../../context'; @@ -87,7 +88,8 @@ const PanelPicker: FC = () => { // ========================= Picker Color ========================= const [pickerColor, setPickerColor] = React.useState(activeColor); - const [forceSync, setForceSync] = React.useState(0); + + const [forceSync, setForceSync] = useForceUpdate(); const mergedPickerColor = pickerColor?.equals(activeColor) ? activeColor : pickerColor; @@ -148,7 +150,7 @@ const PanelPicker: FC = () => { // Back of origin color in case in controlled // This will set after `onChangeComplete` to avoid `setState` trigger rerender // which will make `fillColor` get wrong `color.cleared` state - setForceSync((ori) => ori + 1); + setForceSync(); }; const onInputChange = (colorValue: AggregationColor) => { diff --git a/components/grid/hooks/useBreakpoint.tsx b/components/grid/hooks/useBreakpoint.tsx index 12544934ee..48c001b48b 100644 --- a/components/grid/hooks/useBreakpoint.tsx +++ b/components/grid/hooks/useBreakpoint.tsx @@ -13,7 +13,7 @@ function useBreakpoint( defaultScreens: ScreenMap | null = {} as ScreenMap, ): ScreenMap | null { const screensRef = useRef(defaultScreens); - const forceUpdate = useForceUpdate(); + const [, forceUpdate] = useForceUpdate(); const responsiveObserver = useResponsiveObserver(); useLayoutEffect(() => { diff --git a/components/upload/UploadList/index.tsx b/components/upload/UploadList/index.tsx index bfbaec9861..857736ef98 100644 --- a/components/upload/UploadList/index.tsx +++ b/components/upload/UploadList/index.tsx @@ -51,7 +51,8 @@ const InternalUploadList: React.ForwardRefRenderFunction Date: Sun, 26 Oct 2025 17:00:39 +0800 Subject: [PATCH 10/11] fix: add image missing memo deps (#55477) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 遇见同学 <1875694521@qq.com> --- components/image/PreviewGroup.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/image/PreviewGroup.tsx b/components/image/PreviewGroup.tsx index fcbdc0db54..dc363da55f 100644 --- a/components/image/PreviewGroup.tsx +++ b/components/image/PreviewGroup.tsx @@ -75,7 +75,7 @@ const InternalPreviewGroup: React.FC = ({ rootClassName: mergedRootClassName, zIndex, }; - }, [preview]); + }, [preview, rootPrefixCls, zIndex, hashId, cssVarCls, rootCls]); return wrapCSSVar( Date: Sun, 26 Oct 2025 17:18:36 +0800 Subject: [PATCH 11/11] perf: try to reduce bundle size (#55478) * refactor: reuse useForceUpdate hook * update * perf: try to reduce bundle size * update --- components/_util/__tests__/hooks.test.tsx | 2 +- components/_util/__tests__/useSyncState.test.tsx | 2 +- components/_util/hooks/index.ts | 8 ++++++++ components/_util/hooks/useClosable.tsx | 11 ++++------- components/_util/hooks/useForceUpdate.ts | 6 ++---- components/_util/hooks/useMergeSemantic.ts | 7 +++---- components/_util/hooks/useMultipleSelect.ts | 4 ++-- components/_util/hooks/usePatchElement.ts | 6 +++--- components/_util/hooks/useProxyImperativeHandle.ts | 9 ++++++--- components/_util/hooks/useSyncState.ts | 6 +++--- components/alert/Alert.tsx | 2 +- components/auto-complete/AutoComplete.tsx | 2 +- components/cascader/index.tsx | 2 +- .../color-picker/components/PanelPicker/index.tsx | 2 +- .../generatePicker/generateRangePicker.tsx | 4 ++-- .../generatePicker/generateSinglePicker.tsx | 4 ++-- .../date-picker/hooks/useMergedPickerSemantic.ts | 3 +-- components/drawer/DrawerPanel.tsx | 4 ++-- components/drawer/index.tsx | 2 +- components/dropdown/dropdown.tsx | 2 +- components/float-button/FloatButton.tsx | 2 +- components/float-button/FloatButtonGroup.tsx | 2 +- components/grid/hooks/useBreakpoint.tsx | 2 +- components/image/PreviewGroup.tsx | 2 +- components/image/index.tsx | 2 +- components/menu/SubMenu.tsx | 2 +- components/message/style/index.ts | 2 +- components/modal/ConfirmDialog.tsx | 2 +- components/modal/Modal.tsx | 3 +-- components/modal/useModal/index.tsx | 2 +- components/notification/interface.ts | 2 +- components/notification/style/index.ts | 2 +- components/select/index.tsx | 2 +- components/table/InternalTable.tsx | 2 +- components/table/hooks/useFilter/FilterDropdown.tsx | 2 +- components/table/hooks/useSelection.tsx | 2 +- components/tag/index.tsx | 4 ++-- components/tooltip/index.tsx | 2 +- components/tour/PurePanel.tsx | 2 +- components/tour/index.tsx | 2 +- components/transfer/index.tsx | 4 ++-- components/tree-select/index.tsx | 2 +- components/upload/UploadList/index.tsx | 2 +- 43 files changed, 71 insertions(+), 68 deletions(-) create mode 100644 components/_util/hooks/index.ts diff --git a/components/_util/__tests__/hooks.test.tsx b/components/_util/__tests__/hooks.test.tsx index f60d51ff41..382d27d631 100644 --- a/components/_util/__tests__/hooks.test.tsx +++ b/components/_util/__tests__/hooks.test.tsx @@ -2,8 +2,8 @@ import React, { useEffect } from 'react'; import { CloseOutlined } from '@ant-design/icons'; import { render } from '@testing-library/react'; +import { useClosable } from '../hooks'; import type { UseClosableParams } from '../hooks/useClosable'; -import useClosable from '../hooks/useClosable'; type ParamsOfUseClosable = [ closable: UseClosableParams['closable'], diff --git a/components/_util/__tests__/useSyncState.test.tsx b/components/_util/__tests__/useSyncState.test.tsx index 3ba9241567..57b1d0c86b 100644 --- a/components/_util/__tests__/useSyncState.test.tsx +++ b/components/_util/__tests__/useSyncState.test.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render } from '../../../tests/utils'; -import useSyncState from '../hooks/useSyncState'; +import { useSyncState } from '../hooks'; describe('Table', () => { it('useSyncState', () => { diff --git a/components/_util/hooks/index.ts b/components/_util/hooks/index.ts new file mode 100644 index 0000000000..08d6bc940e --- /dev/null +++ b/components/_util/hooks/index.ts @@ -0,0 +1,8 @@ +export * from './useClosable'; +export * from './useForceUpdate'; +export * from './useMergeSemantic'; +export * from './useMultipleSelect'; +export * from './usePatchElement'; +export * from './useProxyImperativeHandle'; +export * from './useSyncState'; +export * from './useZIndex'; diff --git a/components/_util/hooks/useClosable.tsx b/components/_util/hooks/useClosable.tsx index 437ea8608f..bc9fd45105 100644 --- a/components/_util/hooks/useClosable.tsx +++ b/components/_util/hooks/useClosable.tsx @@ -56,10 +56,7 @@ function useClosableConfig(closableCollection?: ClosableCollection | null) { closeIcon: typeof closeIcon !== 'boolean' && closeIcon !== null ? closeIcon : undefined, }; if (closable && typeof closable === 'object') { - closableConfig = { - ...closableConfig, - ...closable, - }; + closableConfig = { ...closableConfig, ...closable }; } return closableConfig; }, [closable, closeIcon]); @@ -82,7 +79,7 @@ interface FallbackCloseCollection extends ClosableCollection { /** Use same object to support `useMemo` optimization */ const EmptyFallbackCloseCollection: FallbackCloseCollection = {}; -export default function useClosable( +export const useClosable = ( propCloseCollection?: ClosableCollection, contextCloseCollection?: ClosableCollection | null, fallbackCloseCollection: FallbackCloseCollection = EmptyFallbackCloseCollection, @@ -91,7 +88,7 @@ export default function useClosable( closeIcon: React.ReactNode, closeBtnIsDisabled: boolean, ariaOrDataProps?: HTMLAriaDataAttributes, -] { +] => { // Align the `props`, `context` `fallback` to config object first const propCloseConfig = useClosableConfig(propCloseCollection); const contextCloseConfig = useClosableConfig(contextCloseCollection); @@ -172,4 +169,4 @@ export default function useClosable( mergedClosableConfig, mergedFallbackCloseCollection, ]); -} +}; diff --git a/components/_util/hooks/useForceUpdate.ts b/components/_util/hooks/useForceUpdate.ts index 5fc535a8e2..5b69ca4258 100644 --- a/components/_util/hooks/useForceUpdate.ts +++ b/components/_util/hooks/useForceUpdate.ts @@ -1,7 +1,5 @@ -import * as React from 'react'; +import React from 'react'; -const useForceUpdate = () => { +export const useForceUpdate = () => { return React.useReducer((ori) => ori + 1, 0); }; - -export default useForceUpdate; diff --git a/components/_util/hooks/useMergeSemantic.ts b/components/_util/hooks/useMergeSemantic.ts index 30c355de80..1c52a7c266 100644 --- a/components/_util/hooks/useMergeSemantic.ts +++ b/components/_util/hooks/useMergeSemantic.ts @@ -84,18 +84,17 @@ function fillObjectBySchema(obj: T, schema: SemanticSchema): T * Merge classNames and styles from multiple sources. * When `schema` is provided, it will **must** provide the nest object structure. */ -export default function useMergeSemantic( +export const useMergeSemantic = ( classNamesList: (ClassNamesType | undefined)[], stylesList: (StylesType | undefined)[], schema?: SemanticSchema, -) { +) => { const mergedClassNames = useSemanticClassNames(schema, ...classNamesList) as ClassNamesType; const mergedStyles = useSemanticStyles(...stylesList) as StylesType; - return React.useMemo(() => { return [ fillObjectBySchema(mergedClassNames, schema!) as ClassNamesType, fillObjectBySchema(mergedStyles, schema!) as StylesType, ] as const; }, [mergedClassNames, mergedStyles, schema]); -} +}; diff --git a/components/_util/hooks/useMultipleSelect.ts b/components/_util/hooks/useMultipleSelect.ts index 2fd9ff4646..55157e3789 100644 --- a/components/_util/hooks/useMultipleSelect.ts +++ b/components/_util/hooks/useMultipleSelect.ts @@ -6,7 +6,7 @@ export type PrevSelectedIndex = null | number; * @title multipleSelect hooks * @description multipleSelect by hold down shift key */ -export default function useMultipleSelect(getKey: (item: T) => K) { +export const useMultipleSelect = (getKey: (item: T) => K) => { const [prevSelectedIndex, setPrevSelectedIndex] = useState(null); const multipleSelect = useCallback( @@ -44,4 +44,4 @@ export default function useMultipleSelect(getKey: (item: T) => K) { }; return [multipleSelect, updatePrevSelectedIndex] as const; -} +}; diff --git a/components/_util/hooks/usePatchElement.ts b/components/_util/hooks/usePatchElement.ts index 8a946e8582..833e946ab1 100644 --- a/components/_util/hooks/usePatchElement.ts +++ b/components/_util/hooks/usePatchElement.ts @@ -1,9 +1,9 @@ import * as React from 'react'; -export default function usePatchElement(): [ +export const usePatchElement = (): [ React.ReactElement[], (element: React.ReactElement) => () => void, -] { +] => { const [elements, setElements] = React.useState([]); const patchElement = React.useCallback((element: React.ReactElement) => { @@ -18,4 +18,4 @@ export default function usePatchElement(): [ }, []); return [elements, patchElement]; -} +}; diff --git a/components/_util/hooks/useProxyImperativeHandle.ts b/components/_util/hooks/useProxyImperativeHandle.ts index 18691e845b..d56e289963 100644 --- a/components/_util/hooks/useProxyImperativeHandle.ts +++ b/components/_util/hooks/useProxyImperativeHandle.ts @@ -22,10 +22,13 @@ function fillProxy( return element; } -export default function useProxyImperativeHandle< +export const useProxyImperativeHandle = < NativeELementType extends HTMLElement, ReturnRefType extends { nativeElement: NativeELementType }, ->(ref: Ref | undefined, init: () => ReturnRefType) { +>( + ref: Ref | undefined, + init: () => ReturnRefType, +) => { return useImperativeHandle(ref, () => { const refObj = init(); const { nativeElement } = refObj; @@ -45,4 +48,4 @@ export default function useProxyImperativeHandle< // Fallback of IE return fillProxy(nativeElement, refObj); }); -} +}; diff --git a/components/_util/hooks/useSyncState.ts b/components/_util/hooks/useSyncState.ts index 3816ddedfb..46aae95c70 100644 --- a/components/_util/hooks/useSyncState.ts +++ b/components/_util/hooks/useSyncState.ts @@ -1,10 +1,10 @@ import * as React from 'react'; -import useForceUpdate from './useForceUpdate'; +import { useForceUpdate } from './useForceUpdate'; type UseSyncStateProps = readonly [() => T, (newValue: T) => void]; -export default function useSyncState(initialValue: T): UseSyncStateProps { +export const useSyncState = (initialValue: T): UseSyncStateProps => { const ref = React.useRef(initialValue); const [, forceUpdate] = useForceUpdate(); return [ @@ -15,4 +15,4 @@ export default function useSyncState(initialValue: T): UseSyncStateProps { forceUpdate(); }, ] as const; -} +}; diff --git a/components/alert/Alert.tsx b/components/alert/Alert.tsx index 58c1b6db71..53d5b0a2d8 100644 --- a/components/alert/Alert.tsx +++ b/components/alert/Alert.tsx @@ -10,7 +10,7 @@ import CSSMotion from 'rc-motion'; import pickAttrs from 'rc-util/lib/pickAttrs'; import { composeRef } from 'rc-util/lib/ref'; -import type { ClosableType } from '../_util/hooks/useClosable'; +import type { ClosableType } from '../_util/hooks'; import { replaceElement } from '../_util/reactNode'; import { devUseWarning } from '../_util/warning'; import { useComponentConfig } from '../config-provider/context'; diff --git a/components/auto-complete/AutoComplete.tsx b/components/auto-complete/AutoComplete.tsx index 0fc8a50032..2f6249568a 100644 --- a/components/auto-complete/AutoComplete.tsx +++ b/components/auto-complete/AutoComplete.tsx @@ -4,7 +4,7 @@ import type { BaseSelectRef } from 'rc-select'; import toArray from 'rc-util/lib/Children/toArray'; import omit from 'rc-util/lib/omit'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import type { InputStatus } from '../_util/statusUtils'; import { devUseWarning } from '../_util/warning'; import type { ConfigConsumerProps } from '../config-provider'; diff --git a/components/cascader/index.tsx b/components/cascader/index.tsx index e5bcbaa36b..34fa43f640 100644 --- a/components/cascader/index.tsx +++ b/components/cascader/index.tsx @@ -11,7 +11,7 @@ import RcCascader from 'rc-cascader'; import type { Placement } from 'rc-select/lib/BaseSelect'; import omit from 'rc-util/lib/omit'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import type { SelectCommonPlacement } from '../_util/motion'; import { getTransitionName } from '../_util/motion'; import genPurePanel from '../_util/PurePanel'; diff --git a/components/color-picker/components/PanelPicker/index.tsx b/components/color-picker/components/PanelPicker/index.tsx index 557f728d09..482ec0be26 100644 --- a/components/color-picker/components/PanelPicker/index.tsx +++ b/components/color-picker/components/PanelPicker/index.tsx @@ -4,7 +4,7 @@ import RcColorPicker from '@rc-component/color-picker'; import type { Color } from '@rc-component/color-picker'; import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect'; -import useForceUpdate from '../../../_util/hooks/useForceUpdate'; +import { useForceUpdate } from '../../../_util/hooks'; import Segmented from '../../../segmented'; import { AggregationColor } from '../../color'; import { PanelPickerContext } from '../../context'; diff --git a/components/date-picker/generatePicker/generateRangePicker.tsx b/components/date-picker/generatePicker/generateRangePicker.tsx index bbfd2fc708..1a97c20a40 100644 --- a/components/date-picker/generatePicker/generateRangePicker.tsx +++ b/components/date-picker/generatePicker/generateRangePicker.tsx @@ -9,7 +9,7 @@ import type { PickerRef } from 'rc-picker'; import type { GenerateConfig } from 'rc-picker/lib/generate/index'; import ContextIsolator from '../../_util/ContextIsolator'; -import { useZIndex } from '../../_util/hooks/useZIndex'; +import { useZIndex } from '../../_util/hooks'; import { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils'; import type { AnyObject } from '../../_util/type'; import { devUseWarning } from '../../_util/warning'; @@ -21,13 +21,13 @@ import { FormItemInputContext } from '../../form/context'; import useVariant from '../../form/hooks/useVariants'; import { useLocale } from '../../locale'; import { useCompactItemContext } from '../../space/Compact'; +import useMergedPickerSemantic from '../hooks/useMergedPickerSemantic'; import enUS from '../locale/en_US'; import useStyle from '../style'; import { getRangePlaceholder, useIcons } from '../util'; import { TIME } from './constant'; import type { RangePickerProps } from './interface'; import useComponents from './useComponents'; -import useMergedPickerSemantic from '../hooks/useMergedPickerSemantic'; const generateRangePicker = ( generateConfig: GenerateConfig, diff --git a/components/date-picker/generatePicker/generateSinglePicker.tsx b/components/date-picker/generatePicker/generateSinglePicker.tsx index c5bce58243..6ab3ae1602 100644 --- a/components/date-picker/generatePicker/generateSinglePicker.tsx +++ b/components/date-picker/generatePicker/generateSinglePicker.tsx @@ -9,7 +9,7 @@ import type { GenerateConfig } from 'rc-picker/lib/generate/index'; import type { PickerMode } from 'rc-picker/lib/interface'; import ContextIsolator from '../../_util/ContextIsolator'; -import { useZIndex } from '../../_util/hooks/useZIndex'; +import { useZIndex } from '../../_util/hooks'; import { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils'; import type { AnyObject } from '../../_util/type'; import { devUseWarning } from '../../_util/warning'; @@ -21,6 +21,7 @@ import { FormItemInputContext } from '../../form/context'; import useVariant from '../../form/hooks/useVariants'; import { useLocale } from '../../locale'; import { useCompactItemContext } from '../../space/Compact'; +import useMergedPickerSemantic from '../hooks/useMergedPickerSemantic'; import enUS from '../locale/en_US'; import useStyle from '../style'; import { getPlaceholder, useIcons } from '../util'; @@ -38,7 +39,6 @@ import { } from './constant'; import type { GenericTimePickerProps, PickerProps, PickerPropsWithMultiple } from './interface'; import useComponents from './useComponents'; -import useMergedPickerSemantic from '../hooks/useMergedPickerSemantic'; const generatePicker = ( generateConfig: GenerateConfig, diff --git a/components/date-picker/hooks/useMergedPickerSemantic.ts b/components/date-picker/hooks/useMergedPickerSemantic.ts index 4a55ad10d6..4df4fa062c 100644 --- a/components/date-picker/hooks/useMergedPickerSemantic.ts +++ b/components/date-picker/hooks/useMergedPickerSemantic.ts @@ -1,8 +1,7 @@ import * as React from 'react'; - import cls from 'classnames'; -import useMergeSemantic from '../../_util/hooks/useMergeSemantic'; +import { useMergeSemantic } from '../../_util/hooks'; import { useComponentConfig } from '../../config-provider/context'; import type { PickerClassNames, diff --git a/components/drawer/DrawerPanel.tsx b/components/drawer/DrawerPanel.tsx index 820b7b5051..c2637db3c2 100644 --- a/components/drawer/DrawerPanel.tsx +++ b/components/drawer/DrawerPanel.tsx @@ -2,8 +2,8 @@ import * as React from 'react'; import classNames from 'classnames'; import type { DrawerProps as RCDrawerProps } from 'rc-drawer'; -import useClosable, { pickClosable } from '../_util/hooks/useClosable'; -import type { ClosableType } from '../_util/hooks/useClosable'; +import { pickClosable, useClosable } from '../_util/hooks'; +import type { ClosableType } from '../_util/hooks'; import { useComponentConfig } from '../config-provider/context'; import Skeleton from '../skeleton'; diff --git a/components/drawer/index.tsx b/components/drawer/index.tsx index 9b3d45e92f..168d69bb45 100644 --- a/components/drawer/index.tsx +++ b/components/drawer/index.tsx @@ -7,7 +7,7 @@ import type { CSSMotionProps } from 'rc-motion'; import { composeRef } from 'rc-util/lib/ref'; import ContextIsolator from '../_util/ContextIsolator'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import { getTransitionName } from '../_util/motion'; import { devUseWarning } from '../_util/warning'; import zIndexContext from '../_util/zindexContext'; diff --git a/components/dropdown/dropdown.tsx b/components/dropdown/dropdown.tsx index 8263eef2c1..f85f2b21f0 100644 --- a/components/dropdown/dropdown.tsx +++ b/components/dropdown/dropdown.tsx @@ -9,7 +9,7 @@ import useEvent from 'rc-util/lib/hooks/useEvent'; import useMergedState from 'rc-util/lib/hooks/useMergedState'; import omit from 'rc-util/lib/omit'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import isPrimitive from '../_util/isPrimitive'; import type { AdjustOverflow } from '../_util/placements'; import getPlacements from '../_util/placements'; diff --git a/components/float-button/FloatButton.tsx b/components/float-button/FloatButton.tsx index 00611804ec..0cec5b16f7 100644 --- a/components/float-button/FloatButton.tsx +++ b/components/float-button/FloatButton.tsx @@ -3,7 +3,7 @@ import classNames from 'classnames'; import omit from 'rc-util/lib/omit'; import convertToTooltipProps from '../_util/convertToTooltipProps'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import { devUseWarning } from '../_util/warning'; import Badge from '../badge'; import type { ConfigConsumerProps } from '../config-provider'; diff --git a/components/float-button/FloatButtonGroup.tsx b/components/float-button/FloatButtonGroup.tsx index 838f0a1a2c..8774444310 100644 --- a/components/float-button/FloatButtonGroup.tsx +++ b/components/float-button/FloatButtonGroup.tsx @@ -6,7 +6,7 @@ import CSSMotion from 'rc-motion'; import useEvent from 'rc-util/lib/hooks/useEvent'; import useMergedState from 'rc-util/lib/hooks/useMergedState'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import { devUseWarning } from '../_util/warning'; import { useComponentConfig } from '../config-provider/context'; import useCSSVarCls from '../config-provider/hooks/useCSSVarCls'; diff --git a/components/grid/hooks/useBreakpoint.tsx b/components/grid/hooks/useBreakpoint.tsx index 48c001b48b..664618ff0c 100644 --- a/components/grid/hooks/useBreakpoint.tsx +++ b/components/grid/hooks/useBreakpoint.tsx @@ -1,7 +1,7 @@ import { useRef } from 'react'; import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect'; -import useForceUpdate from '../../_util/hooks/useForceUpdate'; +import { useForceUpdate } from '../../_util/hooks'; import type { ScreenMap } from '../../_util/responsiveObserver'; import useResponsiveObserver from '../../_util/responsiveObserver'; diff --git a/components/image/PreviewGroup.tsx b/components/image/PreviewGroup.tsx index dc363da55f..d27f5ddc92 100644 --- a/components/image/PreviewGroup.tsx +++ b/components/image/PreviewGroup.tsx @@ -11,7 +11,7 @@ import classNames from 'classnames'; import RcImage from 'rc-image'; import type { GroupConsumerProps } from 'rc-image/lib/PreviewGroup'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import { getTransitionName } from '../_util/motion'; import { ConfigContext } from '../config-provider'; import useCSSVarCls from '../config-provider/hooks/useCSSVarCls'; diff --git a/components/image/index.tsx b/components/image/index.tsx index da2f83bad4..a4188c7ef0 100644 --- a/components/image/index.tsx +++ b/components/image/index.tsx @@ -4,7 +4,7 @@ import classNames from 'classnames'; import RcImage from 'rc-image'; import type { ImagePreviewType, ImageProps as RcImageProps } from 'rc-image'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import { getTransitionName } from '../_util/motion'; import { devUseWarning } from '../_util/warning'; import { useComponentConfig } from '../config-provider/context'; diff --git a/components/menu/SubMenu.tsx b/components/menu/SubMenu.tsx index 2b2718fc66..ece8204aa3 100644 --- a/components/menu/SubMenu.tsx +++ b/components/menu/SubMenu.tsx @@ -3,7 +3,7 @@ import classNames from 'classnames'; import { SubMenu as RcSubMenu, useFullPath } from 'rc-menu'; import omit from 'rc-util/lib/omit'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import { cloneElement } from '../_util/reactNode'; import type { SubMenuType } from './interface'; import type { MenuContextProps } from './MenuContext'; diff --git a/components/message/style/index.ts b/components/message/style/index.ts index a70a4b0583..4cc7e41515 100644 --- a/components/message/style/index.ts +++ b/components/message/style/index.ts @@ -2,7 +2,7 @@ import type { CSSProperties } from 'react'; import type { CSSObject } from '@ant-design/cssinjs'; import { Keyframes } from '@ant-design/cssinjs'; -import { CONTAINER_MAX_OFFSET } from '../../_util/hooks/useZIndex'; +import { CONTAINER_MAX_OFFSET } from '../../_util/hooks'; import { resetComponent } from '../../style'; import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal'; import { genStyleHooks, mergeToken } from '../../theme/internal'; diff --git a/components/modal/ConfirmDialog.tsx b/components/modal/ConfirmDialog.tsx index dcdafa9276..c7fbad84c6 100644 --- a/components/modal/ConfirmDialog.tsx +++ b/components/modal/ConfirmDialog.tsx @@ -5,7 +5,7 @@ import ExclamationCircleFilled from '@ant-design/icons/ExclamationCircleFilled'; import InfoCircleFilled from '@ant-design/icons/InfoCircleFilled'; import classNames from 'classnames'; -import { CONTAINER_MAX_OFFSET } from '../_util/hooks/useZIndex'; +import { CONTAINER_MAX_OFFSET } from '../_util/hooks'; import { getTransitionName } from '../_util/motion'; import { devUseWarning } from '../_util/warning'; import type { ThemeConfig } from '../config-provider'; diff --git a/components/modal/Modal.tsx b/components/modal/Modal.tsx index 85184c4450..f9806d299d 100644 --- a/components/modal/Modal.tsx +++ b/components/modal/Modal.tsx @@ -5,8 +5,7 @@ import Dialog from 'rc-dialog'; import { composeRef } from 'rc-util/lib/ref'; import ContextIsolator from '../_util/ContextIsolator'; -import useClosable, { pickClosable } from '../_util/hooks/useClosable'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { pickClosable, useClosable, useZIndex } from '../_util/hooks'; import { getTransitionName } from '../_util/motion'; import type { Breakpoint } from '../_util/responsiveObserver'; import { canUseDocElement } from '../_util/styleChecker'; diff --git a/components/modal/useModal/index.tsx b/components/modal/useModal/index.tsx index 636c72e1af..0a4027588e 100644 --- a/components/modal/useModal/index.tsx +++ b/components/modal/useModal/index.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import usePatchElement from '../../_util/hooks/usePatchElement'; +import { usePatchElement } from '../../_util/hooks'; import type { ModalFunc, ModalStaticFunctions } from '../confirm'; import { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm'; import destroyFns from '../destroyFns'; diff --git a/components/notification/interface.ts b/components/notification/interface.ts index 1093ac6d91..36d5169a88 100644 --- a/components/notification/interface.ts +++ b/components/notification/interface.ts @@ -1,6 +1,6 @@ import type * as React from 'react'; -import type { ClosableType } from '../_util/hooks/useClosable'; +import type { ClosableType } from '../_util/hooks'; interface DivProps extends React.HTMLProps { 'data-testid'?: string; diff --git a/components/notification/style/index.ts b/components/notification/style/index.ts index ac68ae2a4f..9835e22012 100644 --- a/components/notification/style/index.ts +++ b/components/notification/style/index.ts @@ -1,7 +1,7 @@ import type { CSSObject } from '@ant-design/cssinjs'; import { Keyframes, unit } from '@ant-design/cssinjs'; -import { CONTAINER_MAX_OFFSET } from '../../_util/hooks/useZIndex'; +import { CONTAINER_MAX_OFFSET } from '../../_util/hooks'; import { genFocusStyle, resetComponent } from '../../style'; import type { AliasToken, FullToken, GenerateStyle, GenStyleFn } from '../../theme/internal'; import { genStyleHooks, mergeToken } from '../../theme/internal'; diff --git a/components/select/index.tsx b/components/select/index.tsx index 8614293704..ba9714a31f 100755 --- a/components/select/index.tsx +++ b/components/select/index.tsx @@ -7,7 +7,7 @@ import type { OptionProps } from 'rc-select/lib/Option'; import type { BaseOptionType, DefaultOptionType } from 'rc-select/lib/Select'; import omit from 'rc-util/lib/omit'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import type { SelectCommonPlacement } from '../_util/motion'; import { getTransitionName } from '../_util/motion'; import genPurePanel from '../_util/PurePanel'; diff --git a/components/table/InternalTable.tsx b/components/table/InternalTable.tsx index e4dab55b96..866d747f91 100644 --- a/components/table/InternalTable.tsx +++ b/components/table/InternalTable.tsx @@ -5,7 +5,7 @@ import type { Reference as RcReference, TableProps as RcTableProps } from 'rc-ta import { convertChildrenToColumns } from 'rc-table/lib/hooks/useColumns'; import omit from 'rc-util/lib/omit'; -import useProxyImperativeHandle from '../_util/hooks/useProxyImperativeHandle'; +import { useProxyImperativeHandle } from '../_util/hooks'; import type { Breakpoint } from '../_util/responsiveObserver'; import scrollTo from '../_util/scrollTo'; import type { AnyObject } from '../_util/type'; diff --git a/components/table/hooks/useFilter/FilterDropdown.tsx b/components/table/hooks/useFilter/FilterDropdown.tsx index ea1ca53d29..8fffba0a84 100644 --- a/components/table/hooks/useFilter/FilterDropdown.tsx +++ b/components/table/hooks/useFilter/FilterDropdown.tsx @@ -7,7 +7,7 @@ import isEqual from 'rc-util/lib/isEqual'; import type { FilterState } from '.'; import extendsObject from '../../../_util/extendsObject'; -import useSyncState from '../../../_util/hooks/useSyncState'; +import { useSyncState } from '../../../_util/hooks'; import { devUseWarning } from '../../../_util/warning'; import Button from '../../../button'; import type { CheckboxChangeEvent } from '../../../checkbox'; diff --git a/components/table/hooks/useSelection.tsx b/components/table/hooks/useSelection.tsx index f6c2df4297..afcc9aca80 100644 --- a/components/table/hooks/useSelection.tsx +++ b/components/table/hooks/useSelection.tsx @@ -10,7 +10,7 @@ import { conductCheck } from 'rc-tree/lib/utils/conductUtil'; import { convertDataToEntities } from 'rc-tree/lib/utils/treeUtil'; import useMergedState from 'rc-util/lib/hooks/useMergedState'; -import useMultipleSelect from '../../_util/hooks/useMultipleSelect'; +import { useMultipleSelect } from '../../_util/hooks'; import type { AnyObject } from '../../_util/type'; import { devUseWarning } from '../../_util/warning'; import type { CheckboxProps } from '../../checkbox'; diff --git a/components/tag/index.tsx b/components/tag/index.tsx index bc128f7380..635c6a1023 100644 --- a/components/tag/index.tsx +++ b/components/tag/index.tsx @@ -4,8 +4,8 @@ import omit from 'rc-util/lib/omit'; import type { PresetColorType, PresetStatusColorType } from '../_util/colors'; import { isPresetColor, isPresetStatusColor } from '../_util/colors'; -import type { ClosableType } from '../_util/hooks/useClosable'; -import useClosable, { pickClosable } from '../_util/hooks/useClosable'; +import type { ClosableType } from '../_util/hooks'; +import { pickClosable, useClosable } from '../_util/hooks'; import { replaceElement } from '../_util/reactNode'; import type { LiteralUnion } from '../_util/type'; import { devUseWarning } from '../_util/warning'; diff --git a/components/tooltip/index.tsx b/components/tooltip/index.tsx index f459d03f35..a0f49f6b3d 100644 --- a/components/tooltip/index.tsx +++ b/components/tooltip/index.tsx @@ -12,7 +12,7 @@ import useMergedState from 'rc-util/lib/hooks/useMergedState'; import type { PresetColorType } from '../_util/colors'; import ContextIsolator from '../_util/ContextIsolator'; import type { RenderFunction } from '../_util/getRenderPropValue'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import { getTransitionName } from '../_util/motion'; import type { AdjustOverflow, PlacementsConfig } from '../_util/placements'; import getPlacements from '../_util/placements'; diff --git a/components/tour/PurePanel.tsx b/components/tour/PurePanel.tsx index 7ad742c5a0..8009ced8be 100644 --- a/components/tour/PurePanel.tsx +++ b/components/tour/PurePanel.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import classNames from 'classnames'; -import useClosable from '../_util/hooks/useClosable'; +import { useClosable } from '../_util/hooks'; import { withPureRenderTheme } from '../_util/PurePanel'; import { cloneElement } from '../_util/reactNode'; import { ConfigContext } from '../config-provider'; diff --git a/components/tour/index.tsx b/components/tour/index.tsx index 538d9dc036..7ad8949b77 100644 --- a/components/tour/index.tsx +++ b/components/tour/index.tsx @@ -3,7 +3,7 @@ import RCTour from '@rc-component/tour'; import type { TourProps as RcTourProps } from '@rc-component/tour'; import classNames from 'classnames'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import getPlacements from '../_util/placements'; import zIndexContext from '../_util/zindexContext'; import type { ConfigConsumerProps } from '../config-provider'; diff --git a/components/transfer/index.tsx b/components/transfer/index.tsx index 341c3ca4c9..3356a95191 100644 --- a/components/transfer/index.tsx +++ b/components/transfer/index.tsx @@ -2,8 +2,8 @@ import type { ChangeEvent, CSSProperties } from 'react'; import React, { useCallback, useContext } from 'react'; import classNames from 'classnames'; -import type { PrevSelectedIndex } from '../_util/hooks/useMultipleSelect'; -import useMultipleSelect from '../_util/hooks/useMultipleSelect'; +import type { PrevSelectedIndex } from '../_util/hooks'; +import { useMultipleSelect } from '../_util/hooks'; import type { InputStatus } from '../_util/statusUtils'; import { getMergedStatus, getStatusClassNames } from '../_util/statusUtils'; import { groupDisabledKeysMap, groupKeysMap } from '../_util/transKeys'; diff --git a/components/tree-select/index.tsx b/components/tree-select/index.tsx index d825cb28c1..e2085566be 100644 --- a/components/tree-select/index.tsx +++ b/components/tree-select/index.tsx @@ -7,7 +7,7 @@ import RcTreeSelect, { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeNode } from 'rc-tr import type { DataNode } from 'rc-tree-select/lib/interface'; import omit from 'rc-util/lib/omit'; -import { useZIndex } from '../_util/hooks/useZIndex'; +import { useZIndex } from '../_util/hooks'; import type { SelectCommonPlacement } from '../_util/motion'; import { getTransitionName } from '../_util/motion'; import genPurePanel from '../_util/PurePanel'; diff --git a/components/upload/UploadList/index.tsx b/components/upload/UploadList/index.tsx index 857736ef98..10fde9b16f 100644 --- a/components/upload/UploadList/index.tsx +++ b/components/upload/UploadList/index.tsx @@ -8,7 +8,7 @@ import type { CSSMotionListProps } from 'rc-motion'; import CSSMotion, { CSSMotionList } from 'rc-motion'; import omit from 'rc-util/lib/omit'; -import useForceUpdate from '../../_util/hooks/useForceUpdate'; +import { useForceUpdate } from '../../_util/hooks'; import initCollapseMotion from '../../_util/motion'; import { cloneElement } from '../../_util/reactNode'; import type { ButtonProps } from '../../button';