From 8f77bdcfe1f79c1190576c201f6c81564b268c7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=AC=A2?= Date: Wed, 10 Sep 2025 14:54:31 +0800 Subject: [PATCH 1/5] refactor: Upgrade utils and replace useMergedState --- package.json | 2 +- src/Tour.tsx | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 2b19424..f399344 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "dependencies": { "@rc-component/portal": "^2.0.0", "@rc-component/trigger": "^3.0.0", - "@rc-component/util": "^1.2.1", + "@rc-component/util": "^1.3.0", "classnames": "^2.3.2" }, "devDependencies": { diff --git a/src/Tour.tsx b/src/Tour.tsx index fd96306..e3777dd 100644 --- a/src/Tour.tsx +++ b/src/Tour.tsx @@ -6,6 +6,7 @@ import Trigger from '@rc-component/trigger'; import classNames from 'classnames'; import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect'; import useMergedState from '@rc-component/util/lib/hooks/useMergedState'; +import useControlledState from '@rc-component/util/lib/hooks/useControlledState'; import { useMemo } from 'react'; import { useClosable } from './hooks/useClosable'; import useTarget from './hooks/useTarget'; @@ -63,18 +64,13 @@ const Tour: React.FC = props => { const triggerRef = React.useRef(); - const [mergedCurrent, setMergedCurrent] = useMergedState(0, { - value: current, - defaultValue: defaultCurrent, - }); + const [mergedCurrent, setMergedCurrent] = useControlledState(defaultCurrent||0,current); - const [mergedOpen, setMergedOpen] = useMergedState(defaultOpen, { - value: open, - postState: origin => - mergedCurrent < 0 || mergedCurrent >= steps.length + + const [internalOpen, setMergedOpen] = useControlledState(defaultOpen,open); + const mergedOpen= mergedCurrent < 0 || mergedCurrent >= steps.length ? false - : (origin ?? true), - }); + : ( internalOpen?? true) // Record if already rended in the DOM to avoid `findDOMNode` issue const [hasOpened, setHasOpened] = React.useState(mergedOpen); From 29e63ec47a60afb8656e4d60bef76a3db3046f6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=AC=A2?= Date: Wed, 10 Sep 2025 15:19:35 +0800 Subject: [PATCH 2/5] feat: code style --- src/Tour.tsx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Tour.tsx b/src/Tour.tsx index e3777dd..32c66c2 100644 --- a/src/Tour.tsx +++ b/src/Tour.tsx @@ -64,13 +64,16 @@ const Tour: React.FC = props => { const triggerRef = React.useRef(); - const [mergedCurrent, setMergedCurrent] = useControlledState(defaultCurrent||0,current); - + const [mergedCurrent, setMergedCurrent] = useControlledState( + defaultCurrent || 0, + current, + ); - const [internalOpen, setMergedOpen] = useControlledState(defaultOpen,open); - const mergedOpen= mergedCurrent < 0 || mergedCurrent >= steps.length - ? false - : ( internalOpen?? true) + const [internalOpen, setMergedOpen] = useControlledState(defaultOpen, open); + const mergedOpen = + mergedCurrent < 0 || mergedCurrent >= steps.length + ? false + : (internalOpen ?? true); // Record if already rended in the DOM to avoid `findDOMNode` issue const [hasOpened, setHasOpened] = React.useState(mergedOpen); From c33092190597e29d0dcb658305611335c59f992b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=AC=A2?= Date: Thu, 11 Sep 2025 10:09:17 +0800 Subject: [PATCH 3/5] fix: tsc error --- tsconfig.json | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 9de652d..e2c12ad 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,23 +8,12 @@ "skipLibCheck": true, "esModuleInterop": true, "paths": { - "@/*": [ - "src/*" - ], - "@@/*": [ - ".dumi/tmp/*" - ], - "@rc-component/tour": [ - "src/Tour.tsx" - ] - } + "@/*": ["src/*"], + "@@/*": [".dumi/tmp/*"], + "@rc-component/tour": ["src/Tour.tsx"] + }, + "types": ["minimatch"] }, - "include": [ - ".dumirc.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": [".dumirc.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} From 43e264916bb7d2287b571dbe54079faee77b6574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=AC=A2?= Date: Thu, 11 Sep 2025 10:36:51 +0800 Subject: [PATCH 4/5] chore: @types/minimatch use 5.1.2 --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f399344..b8be170 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,8 @@ "rc-test": "^7.1.2", "react": "^18.3.1", "react-dom": "^18.3.1", - "typescript": "^5.0.0" + "typescript": "^5.0.0", + "@types/minimatch": "^5.1.2" }, "peerDependencies": { "react": ">=16.9.0", From 214b0adee80d87272978b80390e0c037417751f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=AC=A2?= Date: Thu, 11 Sep 2025 10:51:42 +0800 Subject: [PATCH 5/5] fix: recover tsconfig --- tsconfig.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index e2c12ad..44ef07e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,8 +11,7 @@ "@/*": ["src/*"], "@@/*": [".dumi/tmp/*"], "@rc-component/tour": ["src/Tour.tsx"] - }, - "types": ["minimatch"] + } }, "include": [".dumirc.ts", "**/*.ts", "**/*.tsx"], "exclude": ["node_modules"]