feat: enhance backup import functionality with locking mechanism and checksum support

This commit is contained in:
shuaiplus
2026-06-26 18:45:23 +08:00
parent 8942e5bd49
commit e9272ec29a
13 changed files with 370 additions and 135 deletions
+5
View File
@@ -340,6 +340,7 @@
:root[data-theme='dark'] .backup-recommendation-step,
:root[data-theme='dark'] .backup-recommendation-inline-note,
:root[data-theme='dark'] .backup-recommendation-linked-item,
:root[data-theme='dark'] .backup-browser-head,
:root[data-theme='dark'] .backup-browser-meta,
:root[data-theme='dark'] .backup-browser-empty,
:root[data-theme='dark'] .backup-inline-note,
@@ -360,6 +361,10 @@
color: var(--primary-strong);
}
:root[data-theme='dark'] .backup-browser-head {
background: var(--panel-subtle);
}
:root[data-theme='dark'] .restore-progress-overlay {
background: var(--overlay-strong);
backdrop-filter: blur(8px);
+31 -6
View File
@@ -363,16 +363,34 @@
}
.backup-browser-nav {
@apply mb-2.5;
@apply mb-2.5 flex items-center justify-between gap-2;
}
.backup-browser-nav-left {
@apply min-w-0;
}
.backup-browser-list {
@apply overflow-hidden rounded-xl border bg-white;
@apply overflow-hidden rounded-lg border bg-white;
border: 1px solid var(--line);
}
.backup-browser-head {
@apply grid items-center gap-3 px-3 py-2 text-[11px] font-bold uppercase tracking-[0.08em];
grid-template-columns: minmax(180px, 1fr) minmax(150px, 0.75fr) minmax(92px, 0.4fr) minmax(220px, auto);
border-bottom: 1px solid var(--line);
color: #64748b;
background: #f8fafc;
}
.backup-browser-head span:nth-child(2),
.backup-browser-head span:nth-child(3),
.backup-browser-head span:nth-child(4) {
text-align: right;
}
.backup-browser-pagination {
@apply mt-2.5 flex items-center justify-end gap-2.5;
@apply mt-2.5 flex items-center justify-center gap-2.5;
}
.backup-browser-page-indicator {
@@ -385,13 +403,15 @@
}
.backup-browser-row {
@apply grid items-center gap-2.5 px-3 py-2.5;
grid-template-columns: minmax(0, 1fr) auto auto;
@apply grid items-center gap-3 px-3 py-2;
grid-template-columns: minmax(180px, 1fr) minmax(150px, 0.75fr) minmax(92px, 0.4fr) minmax(220px, auto);
min-height: 48px;
}
.backup-browser-entry {
@apply inline-flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 text-left;
color: #0f172a;
min-width: 0;
}
.backup-browser-entry.file {
@@ -404,12 +424,17 @@
}
.backup-browser-meta {
@apply grid justify-items-end gap-1 text-right text-[13px];
@apply block text-right text-[13px];
color: #64748b;
}
.backup-browser-size {
font-variant-numeric: tabular-nums;
}
.backup-browser-actions {
justify-content: flex-end;
flex-wrap: nowrap;
}
.backup-browser-empty {
+36
View File
@@ -46,6 +46,24 @@
grid-template-columns: 1fr;
}
.backup-browser-head {
display: none;
}
.backup-browser-meta {
text-align: left;
}
.backup-browser-actions {
justify-content: flex-start;
flex-wrap: wrap;
}
.backup-browser-nav {
align-items: flex-start;
flex-direction: column;
}
.settings-twofactor-grid {
grid-template-columns: 1fr;
}
@@ -1110,6 +1128,24 @@
grid-template-columns: 1fr;
}
.backup-browser-head {
display: none;
}
.backup-browser-meta {
text-align: left;
}
.backup-browser-actions {
justify-content: flex-start;
flex-wrap: wrap;
}
.backup-browser-nav {
align-items: flex-start;
flex-direction: column;
}
.backup-grid {
gap: 8px;
padding: 0;