Fix L46/L71/L74: unify yt-dlp missing message, editable dir inputs, swatch a11y
L46: Introduced YTDLP_MISSING_MSG constant in binaries.ts. All four callers
(download, indexer, probe, ytdlp) now emit the same user-facing string:
"yt-dlp.exe is missing. Open Settings -> Software update to re-download it."
This removes newline-embedded messages and four divergent phrasings.
L71: Removed readOnly from videoDir/audioDir folder inputs in SettingsView.
Added onChange handler so users can paste or type a path directly without
being forced to use the Browse button. The path still flows through
applySettings() in main, which validates it.
L74: Accent color swatches were triple-labeled (aria-pressed + aria-label +
title). Replaced with a single aria-label that embeds "(selected)" state,
plus title for the hover tooltip. Removed the incorrect aria-pressed
(these are selection buttons, not toggles).
typecheck + 242 tests green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -485,11 +485,11 @@ export function SettingsView(): React.JSX.Element {
|
||||
>
|
||||
<div className={styles.folderRow}>
|
||||
<Input
|
||||
readOnly
|
||||
className={styles.folderInput}
|
||||
value={videoDir}
|
||||
placeholder="Documents\Video (default)"
|
||||
contentBefore={<FolderRegular />}
|
||||
onChange={(_, d) => update({ videoDir: d.value })}
|
||||
/>
|
||||
<Button icon={<FolderRegular />} onClick={() => chooseDir('videoDir')}>
|
||||
Browse
|
||||
@@ -508,11 +508,11 @@ export function SettingsView(): React.JSX.Element {
|
||||
>
|
||||
<div className={styles.folderRow}>
|
||||
<Input
|
||||
readOnly
|
||||
className={styles.folderInput}
|
||||
value={audioDir}
|
||||
placeholder="Documents\Audio (default)"
|
||||
contentBefore={<FolderRegular />}
|
||||
onChange={(_, d) => update({ audioDir: d.value })}
|
||||
/>
|
||||
<Button icon={<FolderRegular />} onClick={() => chooseDir('audioDir')}>
|
||||
Browse
|
||||
@@ -625,8 +625,7 @@ export function SettingsView(): React.JSX.Element {
|
||||
)}
|
||||
style={{ backgroundColor: opt.swatch }}
|
||||
onClick={() => update({ accentColor: opt.value as AccentColor })}
|
||||
aria-pressed={accentColor === opt.value}
|
||||
aria-label={opt.label}
|
||||
aria-label={`${opt.label}${accentColor === opt.value ? ' (selected)' : ''}`}
|
||||
title={opt.label}
|
||||
/>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user