chore(ui): polish batch — downloads icon, button alignment, progress spacing, Indelible spinner#101
Open
Nic-dorman wants to merge 1 commit into
Open
chore(ui): polish batch — downloads icon, button alignment, progress spacing, Indelible spinner#101Nic-dorman wants to merge 1 commit into
Nic-dorman wants to merge 1 commit into
Conversation
…spacing, Indelible spinner
Four small fixes batched into one PR. No functional changes.
* **Downloads empty-state icon.** Mirror the uploads empty state — a
down-arrow svg next to "No downloads yet". Files page Downloads section
no longer renders text-only.
* **Earnings "Use {address}" button alignment.** Wallet page suggestion
banner was flex-row with gap-3 only — text and button sat side by side,
no right-edge anchoring. Add `justify-between` and `shrink-0` on the
button so the button hugs the right edge of the banner across all
widths and address lengths.
* **Progress bar spacing on Files page.** ProgressLine carried a `mt-1`
internally which rendered flush against the filename. Move the gap
control to the parent (`flex flex-col gap-1.5` wrapping filename +
bar) and drop the internal margin so future callers can choose their
own spacing.
* **Indelible upload progress.** The Indelible backend ships no
per-chunk progress events, so the segmented quote/pay/store bar sat
on three empty segments for the whole transfer. New
`indeterminate` prop on ProgressLine renders the same pulsing
single-bar as downloads-without-total. `isIndeterminateUpload(file)`
in files.vue picks this branch when `settingsStore.indelibleConnected
&& !settingsStore.devnetActive` — the conditions that route through
startIndelibleUpload.
V2-264 (double scrollbar) deliberately deferred — it needs interactive
devtools inspection to identify the offending portal/iframe root, and
guessing at fixes risks regressing legitimate scrolling.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Four small UI fixes batched into one PR. No functional changes.
Indelible spinner — detail
The Indelible upload path (`stores/files.ts::startIndelibleUpload`) flips the row to `status: 'uploading'` and waits for the HTTP response. There are no `upload-progress` events from this backend, so the segmented quote/pay/store bar stayed visually frozen on three empty segments for the whole transfer.
New `indeterminate` prop on `ProgressLine` renders the same pulsing single-bar that downloads-without-total already use. `isIndeterminateUpload(file)` in `pages/files.vue` picks this branch when:
```ts
file.kind === 'upload'
&& file.status === 'uploading'
&& settingsStore.indelibleConnected
&& !settingsStore.devnetActive
```
Same conditions that route through `startIndelibleUpload` in the store, so the rendering match is exact — no false positives from devnet mode or non-Indelible uploads.
Deliberately out of scope
V2-264 (double scrollbar). Needs interactive devtools inspection to identify the offending portal/iframe root (most likely `@reown/appkit` or wagmi connector); guessing at fixes risks regressing legitimate scrolling. Will revisit in a separate PR when I can actually inspect the running app.
Test plan
🤖 Generated with Claude Code