From 8a1ce735642d663c4384426eaa12d108c9b15e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=93=E9=BC=A0?= <71394853+hamster1963@users.noreply.github.com> Date: Tue, 25 Mar 2025 17:31:05 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20improve=20Switch=20component=20stat?= =?UTF-8?q?e=20management=20and=20initial=20rende=E2=80=A6=20(#265)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: improve Switch component state management and initial render handling * chore: auto-fix linting and formatting issues --- bun.lockb | Bin 463530 -> 463530 bytes components/Switch.tsx | 18 +++++++++++------- package.json | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/bun.lockb b/bun.lockb index 06a30513bb7be08c2ee9581ff686a4107c3cb0c5..ec496b5fe4f13552a364db819f7afe5c296642cb 100755 GIT binary patch delta 38 tcmZ3rRA$vunT8g|7N!>FEiAKUu*I3^8R!|cFPOms#H`yF%wXfH0st9B4k-Wt delta 38 qcmZ3rRA$vunT8g|7N!>FEiAKUu$eG`K>LCjEI`b createRef())) const t = useTranslations("ServerListClient") const locale = useLocale() - const [indicator, setIndicator] = useState<{ x: number; w: number }>({ - x: 0, - w: 0, - }) + const [indicator, setIndicator] = useState<{ x: number; w: number } | null>(null) + const [isFirstRender, setIsFirstRender] = useState(true) useEffect(() => { const savedTag = sessionStorage.getItem("selectedTag") @@ -59,7 +57,13 @@ export default function Switch({ w: currentTagElement.offsetWidth, }) } - }, [nowTag, locale]) + + if (isFirstRender) { + setTimeout(() => { + setIsFirstRender(false) + }, 50) + } + }, [nowTag, locale, allTag, isFirstRender]) useEffect(() => { const currentTagElement = tagRefs.current[allTag.indexOf(nowTag)]?.current @@ -84,14 +88,14 @@ export default function Switch({ className="scrollbar-hidden z-50 flex flex-col items-start overflow-x-scroll rounded-[50px]" >
- {indicator.w > 0 && ( + {indicator && (
)} diff --git a/package.json b/package.json index 48a4338..5585eb9 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "2.8.3", "private": true, "scripts": { - "dev": "next dev --turbopack -p 3040", + "dev": "next dev -p 3040", "start": "node .next/standalone/server.js", "lint": "biome lint", "lint:fix": "biome lint --fix",