From 71d7c3964453689211d3d93cea5ee2fbdd914f36 Mon Sep 17 00:00:00 2001 From: LTbinglingfeng Date: Thu, 28 May 2026 00:00:19 +0800 Subject: [PATCH] fix(providers): keep api key visibility aligned after removal --- .../sheets/forms/BaseProviderForm.tsx | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/features/providers/sheets/forms/BaseProviderForm.tsx b/src/features/providers/sheets/forms/BaseProviderForm.tsx index 316e6cf..b69ae0a 100644 --- a/src/features/providers/sheets/forms/BaseProviderForm.tsx +++ b/src/features/providers/sheets/forms/BaseProviderForm.tsx @@ -447,6 +447,25 @@ export function BaseProviderForm({ [form.apiKeyEntries] ); + const removeApiKeyEntry = (removeIdx: number) => { + setShowPasswords((prev) => { + if (!prev.size) return prev; + const next = new Set(); + prev.forEach((idx) => { + if (idx < removeIdx) { + next.add(idx); + } else if (idx > removeIdx) { + next.add(idx - 1); + } + }); + return next; + }); + updateField( + 'apiKeyEntries', + apiKeyEntries.filter((_, i) => i !== removeIdx) + ); + }; + return (
{/* 基础字段 */} @@ -735,12 +754,7 @@ export function BaseProviderForm({ type="button" className={styles.removeBtn} disabled={mutating || apiKeyEntries.length <= 1} - onClick={() => - updateField( - 'apiKeyEntries', - apiKeyEntries.filter((_, i) => i !== realIdx) - ) - } + onClick={() => removeApiKeyEntry(realIdx)} >