From e7c85b1d22893ee93d3836e88773dd4f7d9d6822 Mon Sep 17 00:00:00 2001 From: donniean Date: Mon, 6 Jan 2025 12:00:31 +0800 Subject: [PATCH] fix(Tabs): adjust active position calculation to account for border width Signed-off-by: donniean --- packages/components/src/Tabs/Tabs.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/components/src/Tabs/Tabs.tsx b/packages/components/src/Tabs/Tabs.tsx index 2b0a6044..09c1dd1d 100644 --- a/packages/components/src/Tabs/Tabs.tsx +++ b/packages/components/src/Tabs/Tabs.tsx @@ -143,10 +143,17 @@ export function Tabs({ if (_activeKey in refs.current && wrapperRef.current) { const element = refs.current[_activeKey]; const rect = element.getBoundingClientRect(); + + const wrapperStyle = window.getComputedStyle(wrapperRef.current); + const borderLeftWidth = parseFloat(wrapperStyle.borderLeftWidth); + setActivePosition({ width: rect.width, height: rect.height, - translate: rect.x - wrapperRef.current.getBoundingClientRect().x - WRAPPER_PADDING, + translate: + rect.x - + (wrapperRef.current.getBoundingClientRect().x + borderLeftWidth + 1) - + WRAPPER_PADDING, translateY: rect.y - wrapperRef.current.getBoundingClientRect().y - WRAPPER_PADDING, });