From 051ed277f15fb249a8e9b21efc4564581111d7fa Mon Sep 17 00:00:00 2001 From: supertiger1234 Date: Mon, 10 Feb 2020 16:41:12 +0000 Subject: [PATCH] added pako compression for css themes --- package-lock.json | 7 +++--- package.json | 1 + .../Popouts/SettingsPanels/MyThemes.vue | 19 +++++++++------- .../app/Tabs/Explore/themesTemplate.vue | 22 ++++++++++++------- src/utils/cssZip.js | 15 +++++++++++++ src/views/App.vue | 16 +++++++++----- 6 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 src/utils/cssZip.js diff --git a/package-lock.json b/package-lock.json index fecded3..b4818f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8464,10 +8464,9 @@ "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parallel-transform": { "version": "1.2.0", diff --git a/package.json b/package.json index 03e803f..a8bf92b 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "core-js": "^3.4.3", "linkify-it": "^2.2.0", "match-sorter": "^4.0.2", + "pako": "^1.0.11", "simple-markdown": "^0.7.1", "socket.io-client": "^2.3.0", "twemoji": "^12.1.4", diff --git a/src/components/app/Popouts/Popouts/SettingsPanels/MyThemes.vue b/src/components/app/Popouts/Popouts/SettingsPanels/MyThemes.vue index 620d82f..8668d7a 100644 --- a/src/components/app/Popouts/Popouts/SettingsPanels/MyThemes.vue +++ b/src/components/app/Popouts/Popouts/SettingsPanels/MyThemes.vue @@ -49,6 +49,7 @@ import ThemeTemplate from "./MyThemeTemplate"; import Editor from "./themesEditor"; import MakePublic from "./MyThemesMakePublic"; import Spinner from "@/components/Spinner"; +import { unzip, zip } from "@/utils/cssZip"; import ThemeService from "@/services/ThemeService"; export default { @@ -103,23 +104,25 @@ export default { } this.saving = true; this.name = name; + const base64 = zip(css); + if (typeof this.editing === "string") { - await ThemeService.update({ name, css }, this.editing); + await ThemeService.update({ name, css: base64 }, this.editing); this.applyButton(this.editing); } else { - const response = await ThemeService.save({ name, css }); + const response = await ThemeService.save({ name, css: base64 }); this.editing = response.result.data.id; - this.applyButton(response.result.data.id, css); + this.applyButton(response.result.data.id, base64); } this.saving = false; }, - async applyButton(id, css) { - if (css) { - this.code = css; + async applyButton(id, base64) { + if (base64) { + this.code = unzip(base64); } else { const { ok, result } = await ThemeService.getTheme(id); if (ok) { - this.code = result.data.css; + this.code = unzip(result.data.css) || result.data.css; } } // save to local storage. @@ -143,7 +146,7 @@ export default { if (ok) { const { name, css } = result.data; this.name = name; - this.code = css; + this.code = unzip(css) || css; this.editing = id; } }, diff --git a/src/components/app/Tabs/Explore/themesTemplate.vue b/src/components/app/Tabs/Explore/themesTemplate.vue index ce91de1..45cf5ef 100644 --- a/src/components/app/Tabs/Explore/themesTemplate.vue +++ b/src/components/app/Tabs/Explore/themesTemplate.vue @@ -40,6 +40,9 @@