diff --git a/NUXT/layouts/default.vue b/NUXT/layouts/default.vue index fbdf8ab..9b287ca 100644 --- a/NUXT/layouts/default.vue +++ b/NUXT/layouts/default.vue @@ -3,7 +3,7 @@ -
{ //Set timeout is required to make it load properly... dont ask me why -Front const darkTheme = localStorage.getItem('darkTheme'); if (darkTheme == "true") { this.$vuetify.theme.dark = darkTheme; - + this.$vuetube.statusBar.setDark(); + const isOled = localStorage.getItem('isOled') - + if(isOled == "true") { this.$vuetify.theme.themes.dark.accent = '#000', this.$vuetify.theme.themes.dark.accent2 = '#000', @@ -146,6 +147,8 @@ export default { this.$vuetify.theme.themes.dark.accent2 = '#222', this.$vuetify.theme.themes.dark.background = '#333' } + } else { + this.$vuetube.statusBar.setLight() } }, 0); diff --git a/NUXT/nuxt.config.js b/NUXT/nuxt.config.js index 0c1a1d5..72b0dd6 100644 --- a/NUXT/nuxt.config.js +++ b/NUXT/nuxt.config.js @@ -16,8 +16,7 @@ export default { target: 'static', plugins: [ { src: "~/plugins/youtube", mode: "client" }, - { src: "~/plugins/vuetube", mode: "client" }, - { src: "~/plugins/libs", mode: "client" } + { src: "~/plugins/vuetube", mode: "client" } ], generate: { dir: '../dist' diff --git a/NUXT/pages/mods/theme.vue b/NUXT/pages/mods/theme.vue index c7dd20a..e7e41d1 100644 --- a/NUXT/pages/mods/theme.vue +++ b/NUXT/pages/mods/theme.vue @@ -47,7 +47,7 @@ NOTE: This doesn't save after closing the app (yet) - + @@ -114,7 +114,7 @@ export default { watch: { accentColor: function (val, oldVal) { this.$vuetify.theme.currentTheme.primary = val; - let primaryAlt = this.$libs.hexToRgb(val); + let primaryAlt = this.$vuetube.hexToRgb(val); let rgbEdit = 130; //Light Mode if (localStorage.getItem('darkTheme') === "true") rgbEdit = -80; //Dark Mode @@ -125,8 +125,8 @@ export default { if (primaryAlt[i] < 0) primaryAlt[i] = 0; } - primaryAlt = this.$libs.rgbToHex(primaryAlt.r, primaryAlt.g, primaryAlt.b); - + primaryAlt = this.$vuetube.rgbToHex(primaryAlt.r, primaryAlt.g, primaryAlt.b); + this.$vuetify.theme.currentTheme.primaryAlt = primaryAlt; diff --git a/NUXT/plugins/libs.js b/NUXT/plugins/libs.js deleted file mode 100644 index f9fb6cd..0000000 --- a/NUXT/plugins/libs.js +++ /dev/null @@ -1,22 +0,0 @@ -const module = { - - hexToRgb: function (hex, callback) { - var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); - return result ? { - r: parseInt(result[1], 16), - g: parseInt(result[2], 16), - b: parseInt(result[3], 16) - } : null; - }, - - rgbToHex: function(r, g, b) { - return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); - } - - -} - -//--- Start ---// -export default ({ app }, inject) => { - inject('libs', module) -} diff --git a/NUXT/plugins/utils.js b/NUXT/plugins/utils.js index 1d07b73..8114596 100644 --- a/NUXT/plugins/utils.js +++ b/NUXT/plugins/utils.js @@ -1,13 +1,28 @@ -// Collection of functions that are useful but non-specific to any particular files +// Collection of functions that are useful but non-specific to any particular files function getBetweenStrings(data, start_string, end_string) { - const regex = new RegExp(`${escapeRegExp(start_string)}(.*?)${escapeRegExp(end_string)}`, "s"); - const match = data.match(regex); - return match ? match[1] : undefined; + const regex = new RegExp(`${escapeRegExp(start_string)}(.*?)${escapeRegExp(end_string)}`, "s"); + const match = data.match(regex); + return match ? match[1] : undefined; } function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } -module.exports = { getBetweenStrings }; \ No newline at end of file + + +function hexToRgb(hex) { + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result ? { + r: parseInt(result[1], 16), + g: parseInt(result[2], 16), + b: parseInt(result[3], 16) + } : null; +} + +function rgbToHex(r, g, b) { + return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); +} + +module.exports = { getBetweenStrings, hexToRgb, rgbToHex }; diff --git a/NUXT/plugins/vuetube.js b/NUXT/plugins/vuetube.js index cf6c0ff..aa1233a 100644 --- a/NUXT/plugins/vuetube.js +++ b/NUXT/plugins/vuetube.js @@ -1,6 +1,8 @@ //--- Modules/Imports ---// import { Http } from '@capacitor-community/http'; +import { StatusBar, Style } from '@capacitor/status-bar'; import constants from '../static/constants'; +import { hexToRgb, rgbToHex } from './utils'; const module = { @@ -37,11 +39,35 @@ const module = { callback(err) }); - } + }, + + statusBar: { + async hide() { + return await StatusBar.hide(); + }, + async show() { + return await StatusBar.show(); + }, + async setLight() { + return await StatusBar.setStyle({ style: Style.Light }); + }, + async setDark() { + return await StatusBar.setStyle({ style: Style.Dark }); + }, + async setTransparent() { + return StatusBar.setOverlaysWebView({ overlay: true }); + }, + async setBackground(color) { + return await setBackgroundColor({color: color}); + } + }, + + hexToRgb(hex) { return hexToRgb(hex); }, + rgbToHex(r, g, b) { return rgbToHex(r, g, b); } } //--- Start ---// export default ({ app }, inject) => { inject('vuetube', module) -} \ No newline at end of file +} diff --git a/package.json b/package.json index cacc6ce..8d55535 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@capacitor/browser": "^1.0.7", "@capacitor/cli": "^3.4.0", "@capacitor/core": "^3.4.0", - "@capacitor/device": "^1.1.2" + "@capacitor/device": "^1.1.2", + "@capacitor/status-bar": "^1.0.8" } }