From 9b788ccf13a2018a8ff0b6bed1607770bfec314d Mon Sep 17 00:00:00 2001
From: 135e2 <135e2@135e2.tk>
Date: Sat, 13 Aug 2022 21:35:54 +0800
Subject: feat(SettingsPage): reimplement backgroundImage customization
A pretty basic implementation to change bgImage dynamically, which was formerly reverted.
Ref: ffd55641317ebd6344e92eb8a3204981846b5e05
---
src/components/SettingsPage.vue | 45 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 43 insertions(+), 2 deletions(-)
(limited to 'src/components')
diff --git a/src/components/SettingsPage.vue b/src/components/SettingsPage.vue
index 8dc35b1..79a92fe 100644
--- a/src/components/SettingsPage.vue
+++ b/src/components/SettingsPage.vue
@@ -30,6 +30,23 @@
+
+
+
+
+ Save
+ Reset
+
+
+
@@ -40,7 +57,7 @@
Clear Output
-
+
Otonashi is a simple, easy-to-use classboard app, built by 135e2
@@ -58,7 +75,7 @@
export default {
name: "SettingsPage",
props: ["realTitleSize", "realContentSize"],
- emits: ["updateTitleSize", "updateContentSize"],
+ emits: ["updateTitleSize", "updateContentSize", "updateBackgroundImageURL"],
computed: {
currentTitle() {
@@ -66,6 +83,8 @@ export default {
case 1:
return "MainPage Settings";
case 2:
+ return "Background Settings";
+ case 3:
return "Developer Settings";
default:
return "About Otonashi";
@@ -85,6 +104,7 @@ export default {
},
mounted() {
+ this.loadFromLS();
// Sync titleSize with realTitleSize
this.titleSize = this.realTitleSize;
// Same
@@ -92,6 +112,7 @@ export default {
},
data: () => ({
+ backgroundImageURL: "",
titleSize: 35,
contentSize: "text-h5",
debugLog: "",
@@ -100,6 +121,17 @@ export default {
methods: {
// LocalStorage
+ loadFromLS() {
+ this.backgroundImageURL =
+ JSON.parse(localStorage.getItem("backgroundImageURL")) ||
+ this.backgroundImageURL;
+ },
+ writeToLS() {
+ localStorage.setItem(
+ "backgroundImageURL",
+ JSON.stringify(this.backgroundImageURL)
+ );
+ },
clearLS() {
localStorage.clear();
this.debugLog += "LocalStorage cleared.\n";
@@ -107,6 +139,15 @@ export default {
showLSDebug() {
this.debugLog += `LS in JSON format: ${JSON.stringify(localStorage)}\n`;
},
+ saveBackgroundImageURL() {
+ this.$emit("updateBackgroundImageURL", this.backgroundImageURL);
+ this.writeToLS();
+ },
+ resetBackgroundImageURL() {
+ // Reset URL and emit event.
+ this.backgroundImageURL = "";
+ this.saveBackgroundImageURL();
+ },
},
};
--
cgit v1.2.3