Skip to content

Commit 4eac76b

Browse files
committed
Transfer dialog: relabel conflict radios for single-conflict case
- "Ask for each" was confusing with only one conflict (asking "for each" of 1 makes no sense). Now reads "Ask later". - Same applies to the other radios: drop "all" when there's only one conflict. "Skip all" → "Skip", "Overwrite all" → "Overwrite", "Overwrite all smaller/older" → "Overwrite if smaller/older". - Trigger is `totalConflictCount === 1`, not selection size: a single folder containing many conflicts still gets the "all" wording, and 5 selected files with only 1 conflict get the singular wording. - Backend `ConflictResolution` variants unchanged; this is pure label text. - Reported by a user test on the conflict dialog.
1 parent 52f3cd8 commit 4eac76b

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

apps/desktop/src/lib/file-operations/CLAUDE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ F8/Shift+F8 (trash/delete). Transfer and delete operations share `TransferProgre
2121
- Optional dry-run scan to detect conflicts upfront
2222
- Shows sampled conflicts (max 200) with streaming progress
2323
- User makes conflict decisions before operation starts via a wrap-friendly flexbox of radios: "Skip all", "Overwrite
24-
all", "Overwrite all smaller", "Overwrite all older", "Ask for each". The two conditional policies map to the typed
24+
all", "Overwrite all smaller", "Overwrite all older", "Ask for each". When `totalConflictCount === 1`, the radio
25+
labels drop "all" ("Skip", "Overwrite", "Overwrite if smaller", "Overwrite if older") and "Ask for each" becomes
26+
"Ask later" since a single conflict can't be asked "for each". The two conditional policies map to the typed
2527
`ConflictResolution` variants `overwrite_smaller` / `overwrite_older`; see
2628
[`src-tauri/.../write_operations/CLAUDE.md`](../../../src-tauri/src/file_system/write_operations/CLAUDE.md) for the
2729
strict-comparison / fail-closed contract.

apps/desktop/src/lib/file-operations/transfer/TransferDialog.svelte

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -541,23 +541,23 @@
541541
<div class="conflict-policy">
542542
<label class="policy-option">
543543
<input type="radio" bind:group={conflictPolicy} value="skip" />
544-
<span>Skip all</span>
544+
<span>{totalConflictCount === 1 ? 'Skip' : 'Skip all'}</span>
545545
</label>
546546
<label class="policy-option">
547547
<input type="radio" bind:group={conflictPolicy} value="overwrite" />
548-
<span>Overwrite all</span>
548+
<span>{totalConflictCount === 1 ? 'Overwrite' : 'Overwrite all'}</span>
549549
</label>
550550
<label class="policy-option">
551551
<input type="radio" bind:group={conflictPolicy} value="overwrite_smaller" />
552-
<span>Overwrite all smaller</span>
552+
<span>{totalConflictCount === 1 ? 'Overwrite if smaller' : 'Overwrite all smaller'}</span>
553553
</label>
554554
<label class="policy-option">
555555
<input type="radio" bind:group={conflictPolicy} value="overwrite_older" />
556-
<span>Overwrite all older</span>
556+
<span>{totalConflictCount === 1 ? 'Overwrite if older' : 'Overwrite all older'}</span>
557557
</label>
558558
<label class="policy-option">
559559
<input type="radio" bind:group={conflictPolicy} value="stop" />
560-
<span>Ask for each</span>
560+
<span>{totalConflictCount === 1 ? 'Ask later' : 'Ask for each'}</span>
561561
</label>
562562
</div>
563563
</div>

0 commit comments

Comments
 (0)