feat(remote): Enhance remote branch management and stability
Improved handling for deleting remote branches across the application, enhancing both user experience and backend reliability. This includes adding structured logging to all Git remote operations in Rust, refining UI components to handle remote-specific deletion flows, and providing clear status/error feedback in sync settings. - Standardized styling for action toggles (Stash, Branch, Explorer) using consistent dimensions. - Implemented detailed console logging for all Git remote operations on the backend. - Refined dialogs and sync settings to provide explicit status and error messages during remote management.
This commit is contained in:
+66
-25
@@ -1703,20 +1703,23 @@
|
||||
.stash-toggle {
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
width: 26px;
|
||||
min-width: 26px;
|
||||
min-height: 26px;
|
||||
width: 28px;
|
||||
min-width: 28px;
|
||||
height: 28px;
|
||||
min-height: 28px;
|
||||
aspect-ratio: 1;
|
||||
flex: 0 0 28px;
|
||||
padding: 0;
|
||||
border-color: rgba(94,110,156,0.18);
|
||||
border-radius: 7px;
|
||||
border-radius: 6px;
|
||||
color: var(--color-ink-dim);
|
||||
background: rgba(255,255,255,0.035);
|
||||
background: rgba(255,255,255,0.018);
|
||||
}
|
||||
|
||||
.stash-toggle:hover:not(:disabled) {
|
||||
border-color: rgba(65,209,255,0.28);
|
||||
color: var(--color-ink);
|
||||
background: rgba(65,209,255,0.08);
|
||||
background: rgba(65,209,255,0.055);
|
||||
}
|
||||
|
||||
.stash-create {
|
||||
@@ -1847,19 +1850,24 @@
|
||||
}
|
||||
|
||||
.branch-create-toggle {
|
||||
width: 26px;
|
||||
min-width: 26px;
|
||||
min-height: 26px;
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
width: 28px;
|
||||
min-width: 28px;
|
||||
height: 28px;
|
||||
min-height: 28px;
|
||||
aspect-ratio: 1;
|
||||
flex: 0 0 28px;
|
||||
padding: 0;
|
||||
border-color: rgba(65,209,255,0.2);
|
||||
border-radius: 7px;
|
||||
border-color: rgba(94,110,156,0.18);
|
||||
border-radius: 6px;
|
||||
color: var(--color-ink-dim);
|
||||
background: rgba(65,209,255,0.06);
|
||||
background: rgba(255,255,255,0.018);
|
||||
}
|
||||
.branch-create-toggle:hover:not(:disabled) {
|
||||
border-color: rgba(65,209,255,0.45);
|
||||
color: #ffffff;
|
||||
background: rgba(65,209,255,0.13);
|
||||
border-color: rgba(65,209,255,0.3);
|
||||
color: var(--color-ink);
|
||||
background: rgba(65,209,255,0.06);
|
||||
}
|
||||
|
||||
.branch-list { gap: 8px; }
|
||||
@@ -2124,19 +2132,24 @@
|
||||
|
||||
.explorer-head-actions { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; }
|
||||
.explorer-bulk-button {
|
||||
width: 26px;
|
||||
min-width: 26px;
|
||||
min-height: 26px;
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
width: 28px;
|
||||
min-width: 28px;
|
||||
height: 28px;
|
||||
min-height: 28px;
|
||||
aspect-ratio: 1;
|
||||
flex: 0 0 28px;
|
||||
padding: 0;
|
||||
border-color: rgba(65,209,255,0.2);
|
||||
border-radius: 7px;
|
||||
border-color: rgba(94,110,156,0.18);
|
||||
border-radius: 6px;
|
||||
color: var(--color-ink-dim);
|
||||
background: rgba(65,209,255,0.06);
|
||||
background: rgba(255,255,255,0.018);
|
||||
}
|
||||
.explorer-bulk-button:hover:not(:disabled) {
|
||||
border-color: rgba(65,209,255,0.45);
|
||||
color: #ffffff;
|
||||
background: rgba(65,209,255,0.13);
|
||||
border-color: rgba(65,209,255,0.3);
|
||||
color: var(--color-ink);
|
||||
background: rgba(65,209,255,0.06);
|
||||
}
|
||||
|
||||
.explorer-row {
|
||||
@@ -6036,21 +6049,49 @@ input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 3px color-mix(in s
|
||||
.sync-fields select, .remote-add input, .remote-edit input { width: 100%; height: 35px; border: 1px solid var(--color-border-input); border-radius: 7px; color: var(--color-ink); background: var(--app-input-bg); font-size: 11px; }
|
||||
.sync-fields select { padding: 0 9px; }
|
||||
.remote-list { display: grid; gap: 5px; }
|
||||
.sync-action-error { display: grid; gap: 4px; margin-bottom: 5px; padding: 10px 11px; border: 1px solid rgba(232,96,96,.28); border-radius: 8px; color: #ef8888; background: rgba(232,96,96,.08); }
|
||||
.sync-action-error strong { font-size: 11px; }
|
||||
.sync-action-error span { font: 9.5px/1.45 var(--font-mono); overflow-wrap: anywhere; }
|
||||
.sync-action-status { margin-bottom: 5px; padding: 9px 11px; border: 1px solid rgba(90,140,248,.28); border-radius: 8px; color: var(--color-accent); background: rgba(90,140,248,.08); font-size: 10.5px; font-weight: 700; }
|
||||
.remote-row { display: grid; grid-template-columns: 28px minmax(0,1fr) auto auto; align-items: center; gap: 7px; min-height: 48px; padding: 6px 7px; border: 1px solid var(--color-border-subtle); border-radius: 8px; background: var(--app-input-bg); }
|
||||
.remote-mark { display: grid; place-items: center; color: var(--color-accent); }
|
||||
.remote-main { display: grid; gap: 3px; min-width: 0; padding: 0; border: 0; color: var(--color-ink); background: transparent; text-align: left; }
|
||||
.remote-main strong, .remote-edit strong { font-size: 11.5px; }
|
||||
.remote-main span { overflow: hidden; color: var(--color-ink-faint); font: 10px var(--font-mono); text-overflow: ellipsis; white-space: nowrap; }
|
||||
.remote-edit { display: grid; grid-template-columns: 80px minmax(0,1fr); align-items: center; gap: 8px; }
|
||||
.remote-confirm { display: grid; gap: 3px; min-width: 0; }
|
||||
.remote-confirm strong { color: var(--color-ink); font-size: 11px; }
|
||||
.remote-confirm span { color: var(--color-ink-faint); font-size: 9.5px; }
|
||||
.remote-edit input, .remote-add input { padding: 0 9px; }
|
||||
.remote-delete { display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 6px; color: #e86060; background: transparent; }
|
||||
.remote-delete { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 8px; border: 0; border-radius: 6px; color: #e86060; background: transparent; font-size: 10px; font-weight: 750; }
|
||||
.remote-delete:hover { background: rgba(235,87,87,.1); }
|
||||
.btn-danger { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 34px; padding: 0 11px; border: 1px solid rgba(232,96,96,.38); border-radius: 7px; color: #fff; background: #c84f4f; font-size: 10.5px; font-weight: 750; }
|
||||
.btn-danger:hover:not(:disabled) { background: #dd5b5b; }
|
||||
.remote-empty { margin: 4px 0 10px; color: var(--color-ink-faint); font-size: 11px; }
|
||||
.remote-add { display: grid; grid-template-columns: 120px minmax(180px,1fr) auto; gap: 7px; margin-top: 9px; padding-top: 10px; border-top: 1px solid var(--color-border-subtle); }
|
||||
.sync-settings-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 20px; border-top: 1px solid var(--color-border-subtle); background: var(--app-dialog-chrome); }
|
||||
.sync-settings-footer p { max-width: 440px; margin: 0; color: var(--color-ink-faint); font-size: 9.5px; line-height: 1.4; }
|
||||
.sync-settings-footer > div { display: flex; gap: 8px; }
|
||||
@media (max-width: 720px) { .strategy-options, .sync-fields { grid-template-columns: 1fr; } .remote-add { grid-template-columns: 1fr; } .sync-settings-footer { align-items: stretch; flex-direction: column; } .sync-settings-footer > div { justify-content: flex-end; } }
|
||||
|
||||
/* Compact square controls shared by the Branches, Stash and Explorer headers. */
|
||||
.branch-head-actions .branch-create-toggle,
|
||||
.stash-head-actions .stash-toggle,
|
||||
.explorer-head-actions .explorer-bulk-button {
|
||||
box-sizing: border-box;
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
inline-size: 24px;
|
||||
min-inline-size: 24px;
|
||||
max-inline-size: 24px;
|
||||
block-size: 24px;
|
||||
min-block-size: 24px;
|
||||
max-block-size: 24px;
|
||||
flex: 0 0 24px;
|
||||
aspect-ratio: 1 / 1;
|
||||
padding: 0;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.ai-review-suggestion { display: grid; gap: 3px; margin-top: 9px; padding: 8px 9px; border-radius: 5px; background: var(--color-surface-dim); }
|
||||
.ai-review-suggestion strong { color: var(--color-ink-dim); font-size: 9.5px; text-transform: uppercase; letter-spacing: .05em; }
|
||||
.ai-review-suggestion span { color: var(--color-ink-muted); font-size: 11.5px; line-height: 1.45; }
|
||||
|
||||
Reference in New Issue
Block a user