diff --git a/src/assets/scss/Global/variants.scss b/src/assets/scss/Global/variants.scss index f15a2c27..4cbdfbcb 100644 --- a/src/assets/scss/Global/variants.scss +++ b/src/assets/scss/Global/variants.scss @@ -11,7 +11,7 @@ padding: $medium; } -.pad-large { +.pad-lg { padding: 1rem; } diff --git a/src/assets/scss/_mixins.scss b/src/assets/scss/_mixins.scss index 1beae4ab..ac7c5fb2 100644 --- a/src/assets/scss/_mixins.scss +++ b/src/assets/scss/_mixins.scss @@ -29,7 +29,7 @@ } } -@mixin for-big-desktop-up { +@mixin for-desktop-up { @media (min-width: 1800px) { @content; } diff --git a/src/components/LeftSidebar/Navigation.vue b/src/components/LeftSidebar/Navigation.vue index 4b5308fb..8f4d031e 100644 --- a/src/components/LeftSidebar/Navigation.vue +++ b/src/components/LeftSidebar/Navigation.vue @@ -18,6 +18,7 @@ diff --git a/src/components/SettingsView/Components/Switch.vue b/src/components/SettingsView/Components/Switch.vue new file mode 100644 index 00000000..7e62508e --- /dev/null +++ b/src/components/SettingsView/Components/Switch.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/components/SettingsView/Content.vue b/src/components/SettingsView/Content.vue new file mode 100644 index 00000000..3c6b70e2 --- /dev/null +++ b/src/components/SettingsView/Content.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/components/SettingsView/Group.vue b/src/components/SettingsView/Group.vue new file mode 100644 index 00000000..83d831f3 --- /dev/null +++ b/src/components/SettingsView/Group.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/components/SettingsView/Main.vue b/src/components/SettingsView/Main.vue deleted file mode 100644 index db2c989e..00000000 --- a/src/components/SettingsView/Main.vue +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/src/components/SettingsView/Nav.vue b/src/components/SettingsView/Nav.vue new file mode 100644 index 00000000..63b9b434 --- /dev/null +++ b/src/components/SettingsView/Nav.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/components/nav/NavBar.vue b/src/components/nav/NavBar.vue index b07b1ee9..149f5d7f 100644 --- a/src/components/nav/NavBar.vue +++ b/src/components/nav/NavBar.vue @@ -4,7 +4,14 @@
- + +
@@ -24,7 +31,7 @@ import { Routes } from "@/composables/enums"; import { createSubPaths } from "@/utils"; import { subPath } from "@/interfaces"; import Folder from "./Titles/Folder.vue"; -import Playlists from "./Titles/Playlists.vue"; +import SimpleTitle from "./Titles/SimpleTitle.vue"; import APTitle from "./Titles/APTitle.vue"; import useNavStore from "@/stores/nav"; @@ -83,11 +90,13 @@ watch( .info { overflow: hidden; + margin: auto 0; .title { font-size: 1.5rem; font-weight: bold; display: flex; + align-items: center; } } } diff --git a/src/components/nav/Titles/APTitle.vue b/src/components/nav/Titles/APTitle.vue index 4ab972bf..5696d944 100644 --- a/src/components/nav/Titles/APTitle.vue +++ b/src/components/nav/Titles/APTitle.vue @@ -15,7 +15,6 @@ import usePStore from "@/stores/pages/playlist"; import { computed } from "@vue/reactivity"; import { useRoute } from "vue-router"; - const things = computed(() => { const route = useRoute(); let thing = { @@ -24,18 +23,22 @@ const things = computed(() => { source: playSources.album, }; - if (route.name == Routes.album) { - thing = { - source: playSources.album, - text: useAlbumStore().info.title, - store: useAlbumStore, - }; - } else if (route.name == Routes.playlist) { - thing = { - source: playSources.playlist, - text: usePStore().info.name, - store: usePStore, - }; + switch (route.name) { + case Routes.album: + thing = { + source: playSources.album, + text: useAlbumStore().info.title, + store: useAlbumStore, + }; + break; + case Routes.playlist: + thing = { + source: playSources.playlist, + text: usePStore().info.name, + store: usePStore, + }; + break; + break; } return thing; diff --git a/src/components/nav/Titles/Folder.vue b/src/components/nav/Titles/Folder.vue index c068ee2e..dae83158 100644 --- a/src/components/nav/Titles/Folder.vue +++ b/src/components/nav/Titles/Folder.vue @@ -62,14 +62,9 @@ onUpdated(() => { height: 2.25rem; display: flex; align-items: center; - margin-left: $smaller; overflow: auto; padding-right: $smaller; - // @include for-desktop-down { - // max-width: 9rem; - // } - .icon { height: 2rem; aspect-ratio: 1; diff --git a/src/components/nav/Titles/Playlists.vue b/src/components/nav/Titles/Playlists.vue deleted file mode 100644 index dcbecd48..00000000 --- a/src/components/nav/Titles/Playlists.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/nav/Titles/SimpleTitle.vue b/src/components/nav/Titles/SimpleTitle.vue new file mode 100644 index 00000000..fe27d517 --- /dev/null +++ b/src/components/nav/Titles/SimpleTitle.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/interfaces/settings.ts b/src/interfaces/settings.ts new file mode 100644 index 00000000..fa57dd23 --- /dev/null +++ b/src/interfaces/settings.ts @@ -0,0 +1,29 @@ +export enum SettingType { + text, + select, + multiselect, + switch, +} + +export interface SettingOption { + title: string; + value: any; +} + +export interface Setting { + title: string; + type: SettingType; + options: SettingOption[]; + action: (arg0?: SettingOption) => void; +} + +export interface SettingGroup { + title?: string; + desc?: string; + settings: Setting[]; +} + +export interface SettingCategory { + title: string; + groups: SettingGroup[]; +} diff --git a/src/settings/general/index.ts b/src/settings/general/index.ts new file mode 100644 index 00000000..b8976153 --- /dev/null +++ b/src/settings/general/index.ts @@ -0,0 +1,15 @@ +import { SettingCategory } from "@/interfaces/settings"; +import setNowPlayingComponent from "./now-playing"; + +console.log(setNowPlayingComponent); + +export default { + title: "General", + groups: [ + { + title: "Repeat queue", + desc: "Do you want to do that?", + settings: [setNowPlayingComponent()], + }, + ], +} as SettingCategory; diff --git a/src/settings/general/now-playing.ts b/src/settings/general/now-playing.ts new file mode 100644 index 00000000..4a272fd3 --- /dev/null +++ b/src/settings/general/now-playing.ts @@ -0,0 +1,7 @@ +import { SettingType } from "@/interfaces/settings"; + +export default () => ({ + title: "Use Sidebar now playing card", + type: SettingType.switch, + action: () => console.log("should toggle something"), +}); diff --git a/src/settings/index.ts b/src/settings/index.ts new file mode 100644 index 00000000..8a9b52f8 --- /dev/null +++ b/src/settings/index.ts @@ -0,0 +1,3 @@ +import general from "./general"; + +export default [general]; diff --git a/src/views/SettingsView.vue b/src/views/SettingsView.vue index db2c989e..d8223c08 100644 --- a/src/views/SettingsView.vue +++ b/src/views/SettingsView.vue @@ -1,3 +1,33 @@ \ No newline at end of file +
+
+ +
+
+ + + + + diff --git a/tsconfig.json b/tsconfig.json index 66a397c2..d85c4851 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,21 +20,8 @@ "include": [ "src/**/*.ts", "src/**/*.d.ts", - "src/**/*.tsx", "src/**/*.vue", "src/**/*.svg" ], "references": [{ "path": "./tsconfig.node.json" }] -} - -// { -// "compilerOptions": { -// "strict": false, -// "jsx": "preserve", -// "paths": { -// "baseUrl": ["./"], -// "@/*": ["./src/*"] -// } -// }, -// "include": ["src/**/*"] -// } +} \ No newline at end of file