fix(settings): give the library selection a home that is not the top bar
library-filter is the only control in the app that calls setSelectedLibrary, and the phone already hid it with a comment saying it was "reachable from the drawer's Settings". It was not: Settings adds, removes, renames and scans libraries, and does not set the view filter, which is a different thing -- it decides what Albums, Artists and Genres show. A phone therefore inherited whatever a desktop session last chose and could neither change nor see it, which is #24's sentence broken in the band it was written for. It is a second *placement* of the same component, not a second control, and it is at every width rather than below 600px. A phone-only copy is the cheaper answer and is the fault rather than the fix: "where do I change which library I am browsing" having two answers by viewport is exactly what one control in two places avoids. Closes #148
This commit is contained in:
@@ -56,6 +56,10 @@ import {
|
|||||||
|
|
||||||
import './config-field';
|
import './config-field';
|
||||||
import './config-section';
|
import './config-section';
|
||||||
|
// The view filter's home (#148). The same component the top bar
|
||||||
|
// carries, placed a second time rather than reimplemented -- two
|
||||||
|
// definitions of "which library am I browsing" is what this is for.
|
||||||
|
import '@components/library-filter/library-filter';
|
||||||
import './download-clients';
|
import './download-clients';
|
||||||
import './shortcut-capture';
|
import './shortcut-capture';
|
||||||
import { confirmAction } from '../confirm-dialog/confirm-dialog';
|
import { confirmAction } from '../confirm-dialog/confirm-dialog';
|
||||||
@@ -231,6 +235,42 @@ export class ConfigPage extends ViewLifecycleMixin(LitElement) {
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* #148, and the second half of #57.
|
||||||
|
|
||||||
|
library-filter is the only control in the app that calls
|
||||||
|
setSelectedLibrary, and it lived in the top bar -- which
|
||||||
|
#57 takes out of the layout on a phone, and which #143
|
||||||
|
already refused to hide as a fit step precisely because
|
||||||
|
hiding it takes away an action. So the selection gets a home
|
||||||
|
that does not depend on that bar existing.
|
||||||
|
|
||||||
|
At every width, not below 600px: a phone-only copy would be
|
||||||
|
a second place the control lives, and "where do I change
|
||||||
|
which library I am browsing" having two answers by size is
|
||||||
|
the fault, not the fix. */
|
||||||
|
.library-scope {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 1em;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.library-scope .scope-label {
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 0.85em;
|
||||||
|
color: var(--yj-text-primary, #fff);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.library-scope .scope-description {
|
||||||
|
font-size: 0.75em;
|
||||||
|
color: var(--yj-text-tertiary, #888);
|
||||||
|
margin: 0.35em 0 0;
|
||||||
|
max-width: 40em;
|
||||||
|
}
|
||||||
|
|
||||||
.save-row {
|
.save-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
@@ -2370,6 +2410,21 @@ export class ConfigPage extends ViewLifecycleMixin(LitElement) {
|
|||||||
for new and changed files."
|
for new and changed files."
|
||||||
.open=${true}
|
.open=${true}
|
||||||
>
|
>
|
||||||
|
<div class="library-scope">
|
||||||
|
<div>
|
||||||
|
<span class="scope-label">Showing</span>
|
||||||
|
<p class="scope-description">
|
||||||
|
Which library the Albums, Artists and Genres
|
||||||
|
views show. This is a view filter, not a
|
||||||
|
setting about the libraries themselves — the
|
||||||
|
list below is where they are added, renamed
|
||||||
|
and scanned.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<library-filter data-testid="settings-library-filter">
|
||||||
|
</library-filter>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="scan-actions">
|
<div class="scan-actions">
|
||||||
<button
|
<button
|
||||||
class="btn-primary"
|
class="btn-primary"
|
||||||
|
|||||||
Reference in New Issue
Block a user