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 @@
+
+
+
+
{{ group.title }}
+
{{ group.desc }}
+
+
+
+
+ {{ setting.title }}
+
+
+
+
+
+
+
+
+
+
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 @@
-
-Hello, settings here 😁
-
\ 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 @@
+
+
+
+
+ {{ group.title }}
+
+
+
+
+
+
+
+
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 @@
-
-
- Playlists
-
-
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 @@
+
+ {{ text }}
+
+
+
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 @@
-Hello, settings here 😁
-
\ 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