mirror of
https://github.com/jeffvli/feishin.git
synced 2026-06-22 20:07:42 +02:00
add sidebar playlist folder settings to env, add compact sidebar playlist view
This commit is contained in:
@@ -109,6 +109,8 @@ const FONT_TYPES = new Set(['builtIn', 'custom', 'system']);
|
||||
const HOME_FEATURE_STYLES = new Set(['multiple', 'single']);
|
||||
const SIDE_QUEUE_TYPES = new Set(['sideDrawerQueue', 'sideQueue']);
|
||||
const SIDE_QUEUE_LAYOUTS = new Set(['horizontal', 'vertical']);
|
||||
const SIDEBAR_PLAYLIST_FOLDER_VIEWS = new Set(['navigation', 'single', 'tree']);
|
||||
const SIDEBAR_PLAYLIST_MODES = new Set(['compact', 'expanded']);
|
||||
|
||||
export type EnvSettingsOverrides = DeepPartial<
|
||||
Pick<SettingsState, 'autoDJ' | 'css' | 'discord' | 'font' | 'general' | 'lyrics' | 'playback'>
|
||||
@@ -256,11 +258,48 @@ const ENV_SETTING_SPECS: EnvSettingSpec[] = [
|
||||
path: ['general', 'sidebarCollapseShared'],
|
||||
type: 'bool',
|
||||
},
|
||||
{
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_FOLDERS',
|
||||
path: ['general', 'sidebarPlaylistFolders'],
|
||||
type: 'bool',
|
||||
},
|
||||
{
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_SEPARATOR',
|
||||
path: ['general', 'sidebarPlaylistFolderSeparator'],
|
||||
skipIfEmpty: true,
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_INDENT',
|
||||
path: ['general', 'sidebarPlaylistFolderTreeIndent'],
|
||||
transform: (s) => {
|
||||
const n = parseNum(s);
|
||||
return n !== undefined ? Math.min(64, Math.max(0, Math.round(n))) : undefined;
|
||||
},
|
||||
type: 'num',
|
||||
},
|
||||
{
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_LINE_COLOR',
|
||||
path: ['general', 'sidebarPlaylistFolderTreeLineColor'],
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
enumSet: SIDEBAR_PLAYLIST_FOLDER_VIEWS,
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_VIEW',
|
||||
path: ['general', 'sidebarPlaylistFolderView'],
|
||||
type: 'enum',
|
||||
},
|
||||
{
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_LIST',
|
||||
path: ['general', 'sidebarPlaylistList'],
|
||||
type: 'bool',
|
||||
},
|
||||
{
|
||||
enumSet: SIDEBAR_PLAYLIST_MODES,
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_MODE',
|
||||
path: ['general', 'sidebarPlaylistMode'],
|
||||
type: 'enum',
|
||||
},
|
||||
{
|
||||
key: 'FS_GENERAL_SIDEBAR_PLAYLIST_SORTING',
|
||||
path: ['general', 'sidebarPlaylistSorting'],
|
||||
|
||||
@@ -178,6 +178,8 @@ const SidebarPanelTypeSchema = z.enum(['queue', 'lyrics', 'visualizer']);
|
||||
|
||||
const SidebarPlaylistFolderViewSchema = z.enum(['single', 'tree', 'navigation']);
|
||||
|
||||
const SidebarPlaylistModeSchema = z.enum(['compact', 'expanded']);
|
||||
|
||||
const CollectionSchema = z.object({
|
||||
filterQueryString: z.string(),
|
||||
id: z.string(),
|
||||
@@ -510,6 +512,7 @@ export const GeneralSettingsSchema = z.object({
|
||||
sidebarPlaylistFolderView: SidebarPlaylistFolderViewSchema,
|
||||
sidebarPlaylistList: z.boolean(),
|
||||
sidebarPlaylistListFilterRegex: z.string(),
|
||||
sidebarPlaylistMode: SidebarPlaylistModeSchema,
|
||||
sidebarPlaylistSorting: z.boolean(),
|
||||
sideQueueLayout: SideQueueLayoutSchema,
|
||||
sideQueueType: SideQueueTypeSchema,
|
||||
@@ -1182,9 +1185,10 @@ const initialState: SettingsState = {
|
||||
sidebarPlaylistFolderSeparator: '/',
|
||||
sidebarPlaylistFolderTreeIndent: 16,
|
||||
sidebarPlaylistFolderTreeLineColor: '',
|
||||
sidebarPlaylistFolderView: 'single',
|
||||
sidebarPlaylistFolderView: 'tree',
|
||||
sidebarPlaylistList: true,
|
||||
sidebarPlaylistListFilterRegex: '',
|
||||
sidebarPlaylistMode: 'expanded',
|
||||
sidebarPlaylistSorting: false,
|
||||
sideQueueLayout: 'horizontal',
|
||||
sideQueueType: 'sideQueue',
|
||||
@@ -2585,6 +2589,9 @@ export const useSidebarPlaylistFolderTreeLineColor = () =>
|
||||
export const useSidebarPlaylistList = () =>
|
||||
useSettingsStore((state) => state.general.sidebarPlaylistList, shallow);
|
||||
|
||||
export const useSidebarPlaylistMode = () =>
|
||||
useSettingsStore((state) => state.general.sidebarPlaylistMode, shallow);
|
||||
|
||||
export const useSidebarPlaylistSorting = () =>
|
||||
useSettingsStore((state) => state.general.sidebarPlaylistSorting, shallow);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user