fix(studio): surface selected nitro cleanup actions in sticky bar
This commit is contained in:
1 parent
6c53f4680c
commit
9813dbc2a4
1 file changed
+40
-37
@@ -919,43 +919,6 @@ export function NitroCleanupPanel() {
|
||||
{t("cancelButton")}
|
||||
</Button>
|
||||
)}
|
||||
{scan && (
|
||||
<Button
|
||||
variant="destructive"
|
||||
size="lg"
|
||||
disabled={busy || running || totalSelected === 0}
|
||||
onClick={removeSelected}
|
||||
>
|
||||
{deleting ? (
|
||||
<Loader2 className="w-4 h-4 animate-spin mr-2" />
|
||||
) : (
|
||||
<Trash2 className="w-4 h-4 mr-2" />
|
||||
)}
|
||||
{deleting
|
||||
? t("deleting")
|
||||
: t("deleteSelected", { count: totalSelected })}
|
||||
</Button>
|
||||
)}
|
||||
{scan && scan.broken.length > 0 && (
|
||||
<Button
|
||||
size="lg"
|
||||
disabled={
|
||||
busy ||
|
||||
running ||
|
||||
![...selected].some((n) =>
|
||||
scan.broken.some((e) => e.fileName === n),
|
||||
)
|
||||
}
|
||||
onClick={repairSelected}
|
||||
>
|
||||
{repairing ? (
|
||||
<Loader2 className="w-4 h-4 animate-spin mr-2" />
|
||||
) : (
|
||||
<Wrench className="w-4 h-4 mr-2" />
|
||||
)}
|
||||
{repairing ? t("redownloading") : t("redownloadBroken")}
|
||||
</Button>
|
||||
)}
|
||||
{scan && scan.fake.length > 0 && (
|
||||
<>
|
||||
<Button size="lg" disabled={busy || running} onClick={autoClean}>
|
||||
@@ -1071,6 +1034,46 @@ export function NitroCleanupPanel() {
|
||||
</label>
|
||||
</div>
|
||||
|
||||
{totalSelected > 0 && (
|
||||
<div className="sticky top-0 z-10 flex flex-wrap items-center gap-2 rounded-lg border border-[var(--admin-accent)]/40 bg-[var(--admin-surface)]/95 p-2 shadow-sm backdrop-blur">
|
||||
<span className="px-1 text-sm font-medium text-[var(--admin-accent)]">
|
||||
{t("selectedCount", { count: totalSelected })}
|
||||
</span>
|
||||
<Button
|
||||
variant="destructive"
|
||||
size="sm"
|
||||
disabled={busy}
|
||||
onClick={removeSelected}
|
||||
>
|
||||
{deleting ? (
|
||||
<Loader2 className="w-4 h-4 animate-spin mr-2" />
|
||||
) : (
|
||||
<Trash2 className="w-4 h-4 mr-2" />
|
||||
)}
|
||||
{deleting
|
||||
? t("deleting")
|
||||
: t("deleteSelected", { count: totalSelected })}
|
||||
</Button>
|
||||
{scan.broken.length > 0 &&
|
||||
[...selected].some((n) =>
|
||||
scan.broken.some((e) => e.fileName === n),
|
||||
) && (
|
||||
<Button
|
||||
size="sm"
|
||||
disabled={busy || repairing}
|
||||
onClick={repairSelected}
|
||||
>
|
||||
{repairing ? (
|
||||
<Loader2 className="w-4 h-4 animate-spin mr-2" />
|
||||
) : (
|
||||
<Wrench className="w-4 h-4 mr-2" />
|
||||
)}
|
||||
{repairing ? t("redownloading") : t("redownloadBroken")}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{loading && (
|
||||
<div className="flex items-center gap-2 rounded-lg border border-[var(--admin-border)] bg-[var(--admin-surface)] p-3 text-xs text-[var(--admin-text-muted)]">
|
||||
<Loader2 className="w-4 h-4 animate-spin shrink-0" />
|
||||
|
||||
Reference in new issue
Block a user