Fix L22/L24/L27: kind-aware form, shell openUrl, Enter-to-download
L22: DownloadOptionsForm accepts optional `kind` prop. When set, hides
audio-specific fields (Audio format) for video downloads and vice versa
(Video container, Preferred codec) for audio downloads. Settings passes
defaultKind so the defaults card shows only relevant options.
L24: Replace lone window.open('htmlUrl', '_blank') with a new openUrl IPC
channel (shell:open-url) that calls shell.openExternal after validating
the protocol is http/https. Consistent with how all other external opens
work in the app. Preload + main handler + mock updated.
L27: DownloadBar URL-field Enter is now smart -- if formats/playlist are
already loaded (or probe errored), Enter triggers download; otherwise
it probes. Eliminates the keyboard dead-end where Enter never downloads.
typecheck + 242 tests + eslint green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+3
-3
@@ -420,18 +420,18 @@ token system + shared primitives (UI/SIMP — high value, larger effort) · i18n
|
||||
- [ ] **L21 — Inconsistent in-component error handling.** SettingsView funnels the app-update
|
||||
not-ok result into a dedicated `appUpdError` slot but keeps not-ok duals for
|
||||
version/update/export/import — two patterns in one file.
|
||||
- [ ] **L22 — DownloadOptionsForm shows both audio + video controls** regardless of the chosen
|
||||
- [x] **L22 — DownloadOptionsForm shows both audio + video controls** regardless of the chosen
|
||||
kind in the per-download override panel (audio format shown for a video download, etc.).
|
||||
- [x] **L23 — Diagnostics shows first 20 errors** with no "showing 20 of N" hint (the copied
|
||||
report includes all).
|
||||
- [ ] **L24 — `window.open(htmlUrl, '_blank')`** in SettingsView is the only `window.open` in the
|
||||
- [x] **L24 — `window.open(htmlUrl, '_blank')`** in SettingsView is the only `window.open` in the
|
||||
app (relies on the window-open handler); elsewhere external opens go through IPC/`shell`.
|
||||
- [x] **L25 — Taskbar effect over-fires.** `App.tsx` subscribes to the whole downloads store and
|
||||
recomputes `summarizeQueue` + sends the taskbar IPC on *every* store change (each progress
|
||||
tick); throttle or dedupe by computed value.
|
||||
- [ ] **L26 — Third URL-sniffing path.** DownloadBar's drag-drop `firstUrl` is a separate
|
||||
"first http(s) line" extractor alongside `useClipboardLink.looksLikeUrl` and deeplink's scan.
|
||||
- [ ] **L27 — DownloadBar Enter probes, not downloads.** Enter in the URL field triggers
|
||||
- [x] **L27 — DownloadBar Enter probes, not downloads.** Enter in the URL field triggers
|
||||
`fetchFormats`; there's no keyboard path to actually start the download (LibraryView's Enter
|
||||
runs its primary action). Inconsistent.
|
||||
- [ ] **L28 — Default kind/quality applied once.** DownloadBar seeds from settings via a one-shot
|
||||
|
||||
Reference in New Issue
Block a user