mirror of
https://github.com/owntone/owntone-server.git
synced 2025-04-28 22:28:24 -04:00
61 lines
2.2 KiB
JavaScript
61 lines
2.2 KiB
JavaScript
import { defineStore } from 'pinia'
|
|
|
|
export const useSettingsStore = defineStore('SettingsStore', {
|
|
state: () => ({
|
|
categories: []
|
|
}),
|
|
getters: {
|
|
recently_added_limit: (state) =>
|
|
state.setting('webinterface', 'recently_added_limit')?.value ?? 100,
|
|
show_composer_for_genre: (state) =>
|
|
state.setting('webinterface', 'show_composer_for_genre')?.value ?? null,
|
|
show_composer_now_playing: (state) =>
|
|
state.setting('webinterface', 'show_composer_now_playing')?.value ??
|
|
false,
|
|
show_cover_artwork_in_album_lists: (state) =>
|
|
state.setting('artwork', 'show_cover_artwork_in_album_lists')
|
|
?.value ?? false,
|
|
show_filepath_now_playing: (state) =>
|
|
state.setting('webinterface', 'show_filepath_now_playing')?.value ??
|
|
false,
|
|
show_menu_item_audiobooks: (state) =>
|
|
state.setting('webinterface', 'show_menu_item_audiobooks')?.value ??
|
|
false,
|
|
show_menu_item_files: (state) =>
|
|
state.setting('webinterface', 'show_menu_item_files')?.value ?? false,
|
|
show_menu_item_music: (state) =>
|
|
state.setting('webinterface', 'show_menu_item_music')?.value ?? false,
|
|
show_menu_item_playlists: (state) =>
|
|
state.setting('webinterface', 'show_menu_item_playlists')?.value ?? false,
|
|
show_menu_item_podcasts: (state) =>
|
|
state.setting('webinterface', 'show_menu_item_podcasts')?.value ?? false,
|
|
show_menu_item_radio: (state) =>
|
|
state.setting('webinterface', 'show_menu_item_radio')?.value ?? false,
|
|
show_menu_item_search: (state) =>
|
|
state.setting('webinterface', 'show_menu_item_search')?.value ?? false
|
|
},
|
|
actions: {
|
|
update(option) {
|
|
const settingCategory = this.categories.find(
|
|
(category) => category.name === option.category
|
|
)
|
|
if (!settingCategory) {
|
|
return
|
|
}
|
|
const settingOption = settingCategory.options.find(
|
|
(setting) => setting.name === option.name
|
|
)
|
|
if (settingOption) {
|
|
settingOption.value = option.value
|
|
}
|
|
},
|
|
setting(categoryName, optionName) {
|
|
return (
|
|
this.categories
|
|
.find((category) => category.name === categoryName)
|
|
?.options.find((option) => option.name === optionName) ?? {}
|
|
)
|
|
}
|
|
}
|
|
})
|