From d5e1b42ad12bc25864394019d218724fc312cafa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 8 Jun 2026 17:58:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E4=B8=8E=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F?= =?UTF-8?q?=E6=B8=85=E7=90=86=20-=20=E7=99=BB=E5=BD=95=E9=A1=B5=E8=AE=B0?= =?UTF-8?q?=E4=BD=8F=E6=88=91=E4=BB=85=E4=BF=9D=E5=AD=98=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E5=92=8C=20rememberMe=EF=BC=8C=E5=B9=B6=E6=B8=85?= =?UTF-8?q?=E7=90=86=E5=8E=86=E5=8F=B2=E6=98=8E=E6=96=87=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E7=BC=93=E5=AD=98=20-=20=E4=BF=AE=E5=A4=8D=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=20Blob=20=E9=93=BE=E6=8E=A5=E9=87=8A=E6=94=BE=E6=97=B6?= =?UTF-8?q?=E6=9C=BA=EF=BC=8C=E6=8F=90=E5=8D=87=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=80=A7=20-=20=E5=85=B3=E9=97=AD=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=8E=A8=E9=80=81=E6=97=B6=E6=B8=85=E7=90=86=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=A4=84=E7=90=86=E5=99=A8=E5=B9=B6=E9=98=BB=E6=AD=A2?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E9=87=8D=E8=BF=9E=20-=20=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=AE=A1=E6=89=B9=E7=BB=84=E4=BB=B6=20variab?= =?UTF-8?q?les=20=E9=BB=98=E8=AE=A4=E5=80=BC=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E6=97=A0=E6=95=88=E9=87=8D=E5=A4=8D=E5=8A=A0=E8=BD=BD=20-=20?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=20IDE=20=E6=9C=AC=E5=9C=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=20-=20=E5=88=A0=E9=99=A4=E6=9C=AA=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=9A=84=20RightToolbar=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + src/components/common/RightToolbar.tsx | 109 ----------------------- src/components/workflow/SubmitVerify.tsx | 4 +- src/pages/login.tsx | 6 +- src/utils/download.ts | 5 +- src/utils/push.ts | 17 ++++ 6 files changed, 28 insertions(+), 115 deletions(-) delete mode 100644 src/components/common/RightToolbar.tsx diff --git a/.gitignore b/.gitignore index 61d6c82d..4d0e2f6c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ src/.umi src/.umi-production .env.local *.log +.idea/ +*.iml diff --git a/src/components/common/RightToolbar.tsx b/src/components/common/RightToolbar.tsx deleted file mode 100644 index 64f6e396..00000000 --- a/src/components/common/RightToolbar.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { MenuOutlined, ReloadOutlined, SearchOutlined } from '@ant-design/icons'; -import { Button, Checkbox, Popover, Space, Tooltip } from 'antd'; -import { useEffect, useMemo } from 'react'; - -export interface RightToolbarColumn { - key: string; - label: string; - visible?: boolean; -} - -export interface RightToolbarProps { - showSearch?: boolean; - onShowSearchChange?: (value: boolean) => void; - search?: boolean; - columns?: RightToolbarColumn[]; - onColumnsChange?: (columns: RightToolbarColumn[]) => void; - onRefresh?: () => void; - storageKey?: string; - gutter?: number; -} - -function readStorage(storageKey?: string) { - if (!storageKey) { - return undefined; - } - try { - const text = localStorage.getItem(storageKey); - return text ? (JSON.parse(text) as Record) : undefined; - } catch { - return undefined; - } -} - -function writeStorage(storageKey: string | undefined, columns: RightToolbarColumn[]) { - if (!storageKey) { - return; - } - const state = Object.fromEntries(columns.map(column => [column.key, column.visible !== false])); - localStorage.setItem(storageKey, JSON.stringify(state)); -} - -export default function RightToolbar({ - showSearch = true, - onShowSearchChange, - search = true, - columns, - onColumnsChange, - onRefresh, - storageKey, - gutter = 10 -}: RightToolbarProps) { - const checkedKeys = useMemo( - () => (columns || []).filter(column => column.visible !== false).map(column => column.key), - [columns] - ); - - // biome-ignore lint/correctness/useExhaustiveDependencies: storage restore should run when storage key changes, not on every parent columns render. - useEffect(() => { - const stored = readStorage(storageKey); - if (!stored || !columns?.length) { - return; - } - const nextColumns = columns.map(column => ({ ...column, visible: stored[column.key] ?? column.visible ?? true })); - onColumnsChange?.(nextColumns); - }, [storageKey]); - - const changeColumns = (keys: string[]) => { - const nextColumns = (columns || []).map(column => ({ ...column, visible: keys.includes(column.key) })); - writeStorage(storageKey, nextColumns); - onColumnsChange?.(nextColumns); - }; - - return ( - - {search && ( - -