From 178cfde6c8886dfece7de394697f992364ac0402 Mon Sep 17 00:00:00 2001 From: liamcottle Date: Thu, 26 Dec 2024 14:50:17 +1300 Subject: [PATCH] implement colour picker for profile icon --- package-lock.json | 32 ++++++- package.json | 3 +- .../components/ColourPickerDropdown.vue | 91 +++++++++++++++++++ .../components/profile/ProfilePage.vue | 71 ++------------- src/frontend/main.js | 11 +++ 5 files changed, 145 insertions(+), 63 deletions(-) create mode 100644 src/frontend/components/ColourPickerDropdown.vue diff --git a/package-lock.json b/package-lock.json index 2b4caef..1aebb80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,8 @@ "vis-data": "^7.1.9", "vis-network": "^9.1.9", "vite": "^6.0.5", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "vuetify": "^3.7.6" }, "devDependencies": { "electron": "^30.0.8", @@ -5731,6 +5732,35 @@ "vue": "^3.2.0" } }, + "node_modules/vuetify": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.7.6.tgz", + "integrity": "sha512-lol0Va5HtMIqZfjccSD5DLv5v31R/asJXzc6s7ULy51PHr1DjXxWylZejhq0kVpMGW64MiV1FmA/p8eYQfOWfQ==", + "engines": { + "node": "^12.20 || >=14.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "typescript": ">=4.7", + "vite-plugin-vuetify": ">=1.0.0", + "vue": "^3.3.0", + "webpack-plugin-vuetify": ">=2.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vite-plugin-vuetify": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index a28204b..cd445ec 100644 --- a/package.json +++ b/package.json @@ -109,6 +109,7 @@ "vis-data": "^7.1.9", "vis-network": "^9.1.9", "vite": "^6.0.5", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "vuetify": "^3.7.6" } } diff --git a/src/frontend/components/ColourPickerDropdown.vue b/src/frontend/components/ColourPickerDropdown.vue new file mode 100644 index 0000000..764da16 --- /dev/null +++ b/src/frontend/components/ColourPickerDropdown.vue @@ -0,0 +1,91 @@ + + + diff --git a/src/frontend/components/profile/ProfilePage.vue b/src/frontend/components/profile/ProfilePage.vue index 6022038..abb1737 100644 --- a/src/frontend/components/profile/ProfilePage.vue +++ b/src/frontend/components/profile/ProfilePage.vue @@ -20,75 +20,21 @@
Select your Colours
-
+
-
-
Icon Colour
+
+
Icon
- +
-
-
Background Colour
+
+
Background
- +
@@ -124,9 +70,12 @@ import * as mdi from "@mdi/js"; import MaterialDesignIcon from "../../../../build/exe/lib/src/frontend/components/MaterialDesignIcon.vue"; import LxmfUserIcon from "../LxmfUserIcon.vue"; import DialogUtils from "../../js/DialogUtils"; +import ColourPickerDropdown from "../ColourPickerDropdown.vue"; + export default { name: 'ProfilePage', components: { + ColourPickerDropdown, LxmfUserIcon, MaterialDesignIcon, }, diff --git a/src/frontend/main.js b/src/frontend/main.js index 3018a8e..817e98a 100644 --- a/src/frontend/main.js +++ b/src/frontend/main.js @@ -7,6 +7,16 @@ import "./fonts/RobotoMonoNerdFont/font.css"; import App from './components/App.vue'; +// init vuetify +import 'vuetify/styles'; +import { createVuetify } from 'vuetify'; +import * as components from 'vuetify/components'; +import * as directives from 'vuetify/directives'; +const vuetify = createVuetify({ + components, + directives, +}) + // provide axios globally window.axios = axios; @@ -85,5 +95,6 @@ const router = createRouter({ createApp(App) .use(router) + .use(vuetify) .use(vClickOutside) .mount('#app');