feat(ui): add autoplay mode setting in Playback section
- Add radio buttons: Continue within source / Play only selected track - Load preference on settings mount - Save changes immediately via handleAutoplayModeChange - Styled with hover states and proper spacing cp
This commit is contained in:
1 parent
dbdd664415
commit
1ed541c4ac
1 file changed
+61
@@ -1448,6 +1448,34 @@
|
||||
<!-- Playback Section -->
|
||||
<section class="section" bind:this={playbackSection}>
|
||||
<h3 class="section-title">{$t('settings.playback.title')}</h3>
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<span class="setting-label">Autoplay behavior</span>
|
||||
<span class="setting-desc">Choose what happens when you click a track</span>
|
||||
</div>
|
||||
<div class="radio-group">
|
||||
<label class="radio-option">
|
||||
<input
|
||||
type="radio"
|
||||
name="autoplay-mode"
|
||||
value="continue"
|
||||
checked={autoplayMode === 'continue'}
|
||||
onchange={() => handleAutoplayModeChange('continue')}
|
||||
/>
|
||||
<span>Continue within source</span>
|
||||
</label>
|
||||
<label class="radio-option">
|
||||
<input
|
||||
type="radio"
|
||||
name="autoplay-mode"
|
||||
value="track_only"
|
||||
checked={autoplayMode === 'track_only'}
|
||||
onchange={() => handleAutoplayModeChange('track_only')}
|
||||
/>
|
||||
<span>Play only selected track</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setting-row">
|
||||
<div class="label-with-tooltip">
|
||||
<span class="setting-label">{$t('settings.playback.gapless')}</span>
|
||||
@@ -2096,6 +2124,39 @@
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
.radio-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.radio-option {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
cursor: pointer;
|
||||
padding: 8px 12px;
|
||||
border-radius: 6px;
|
||||
transition: background 0.15s;
|
||||
}
|
||||
|
||||
.radio-option:hover {
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
|
||||
.radio-option input[type="radio"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
accent-color: var(--accent-color, #1db954);
|
||||
}
|
||||
|
||||
.radio-option span {
|
||||
font-size: 14px;
|
||||
color: var(--text-primary);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.connect-btn {
|
||||
padding: 8px 16px;
|
||||
border-radius: 8px;
|
||||
|
||||
Reference in new issue
Block a user