diff --git a/web/src/components/layout/workspace-page.tsx b/web/src/components/layout/workspace-page.tsx index 91633170f..5f5219cfc 100644 --- a/web/src/components/layout/workspace-page.tsx +++ b/web/src/components/layout/workspace-page.tsx @@ -7,7 +7,7 @@ import { cn } from "@/lib/utils"; export function WorkspacePage({ children, className, grid = false, fluid = false }: { children: ReactNode; className?: string; grid?: boolean; fluid?: boolean }) { return ( -
+
{children}
); @@ -54,8 +54,9 @@ export function CollectionGrid({ children, className }: { children: ReactNode; c export function PaginationBar({ current, pageSize, total, onChange, pageSizeOptions = [20, 50, 100] }: { current: number; pageSize: number; total: number; onChange: (page: number, pageSize: number) => void; pageSizeOptions?: number[] }) { if (total <= pageSize && current === 1) return null; return ( -
+
} onClick={() => setBatchDeleteOpen(true)}>删除
) : null} - + {visibleAssets.map((asset) => ( setSelectedIds((current) => selected ? [...new Set([...current, asset.id])] : current.filter((id) => id !== asset.id))} onOpen={() => setPreviewAsset(asset)} onEdit={() => openEdit(asset)} onCopy={copyAssetText} onDownload={downloadImage} onDelete={() => setDeletingAsset(asset)} /> ))} @@ -427,43 +427,12 @@ export default function AssetsPage() { function AssetCard({ asset, selected, onSelect, onOpen, onEdit, onCopy, onDownload, onDelete }: { asset: LibraryAsset; selected: boolean; onSelect: (selected: boolean) => void; onOpen: () => void; onEdit: () => void; onCopy: (asset: LibraryAsset) => void; onDownload: (asset: LibraryAsset) => void; onDelete: () => void }) { const summary = assetSummary(asset); return ( -
-
-
} /> +
+
+
} /> - event.stopPropagation()} onChange={(event) => onSelect(event.target.checked)} className={`absolute left-2 top-2 size-4 accent-[var(--workspace-accent)] ${selected ? "opacity-100" : "opacity-100 sm:opacity-0 sm:group-hover:opacity-100 sm:group-focus-within:opacity-100"}`} aria-label={`选择 ${asset.title}`} /> -
- -
- + event.stopPropagation()} onChange={(event) => onSelect(event.target.checked)} className={`absolute left-2 top-2 size-4 accent-[var(--workspace-accent)] drop-shadow-md transition-opacity ${selected ? "opacity-100" : "opacity-100 sm:opacity-0 sm:group-hover:opacity-100 sm:group-focus-within:opacity-100"}`} aria-label={`选择 ${asset.title}`} /> , label: "删除", onClick: onDelete }, ] }} > - +
+ {assetKindLabel(asset.kind)} + {assetCategoryLabel(asset.category)} +
+ ); } diff --git a/web/src/pages/home/index.tsx b/web/src/pages/home/index.tsx index 20153d37a..51dd31b33 100644 --- a/web/src/pages/home/index.tsx +++ b/web/src/pages/home/index.tsx @@ -58,7 +58,7 @@ export default function IndexPage() { const loadingUserWorkspace = !userHydrated || (Boolean(user && shortDramaEnabled) && domainProjectsQuery.isLoading); return ( -
+
{loadingUserWorkspace ? ( diff --git a/web/src/pages/settings/index.tsx b/web/src/pages/settings/index.tsx index c3abcd2dd..e2be1523d 100644 --- a/web/src/pages/settings/index.tsx +++ b/web/src/pages/settings/index.tsx @@ -253,7 +253,7 @@ export default function SettingsPage() { }; return ( -
+
{shouldPromptContinue ? ( @@ -268,7 +268,7 @@ export default function SettingsPage() { {shouldPromptContinue ? : null}
-