From 5505a89e8aad717a0b4a7665b23a317110d38cb5 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 22 Apr 2024 23:40:39 +0300 Subject: implement a simple caching system for themes 3 --- src/services/theme_data/theme_data_3.service.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/services/theme_data/theme_data_3.service.js') diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js index 7457ab99..844e951a 100644 --- a/src/services/theme_data/theme_data_3.service.js +++ b/src/services/theme_data/theme_data_3.service.js @@ -1,4 +1,5 @@ import { convert, brightness } from 'chromatism' +import sum from 'hash-sum' import { flattenDeep } from 'lodash' import { alphaBlend, @@ -142,8 +143,12 @@ componentsContext.keys().forEach(key => { components[component.name] = component }) +const checksum = sum(components) + const ruleToSelector = genericRuleToSelector(components) +export const getChecksum = () => checksum + export const init = (extraRuleset, ultimateBackgroundColor) => { const staticVars = {} const stacked = {} @@ -463,6 +468,7 @@ export const init = (extraRuleset, ultimateBackgroundColor) => { return { lazy: result.filter(x => typeof x === 'function'), eager: result.filter(x => typeof x !== 'function'), - staticVars + staticVars, + checksum } } -- cgit v1.2.3-70-g09d2 From 6ea69eb51a480e3ab81a69b99f92165fc97f8177 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 24 Apr 2024 15:09:52 +0300 Subject: checksum -> engineChecksum for clarity --- src/services/style_setter/style_setter.js | 8 ++++---- src/services/theme_data/theme_data_3.service.js | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/services/theme_data/theme_data_3.service.js') diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js index 17682bd4..369d2c9f 100644 --- a/src/services/style_setter/style_setter.js +++ b/src/services/style_setter/style_setter.js @@ -1,6 +1,6 @@ import { hex2rgb } from '../color_convert/color_convert.js' import { generatePreset } from '../theme_data/theme_data.service.js' -import { init, getChecksum } from '../theme_data/theme_data_3.service.js' +import { init, getEngineChecksum } from '../theme_data/theme_data_3.service.js' import { convertTheme2To3 } from '../theme_data/theme2_to_theme3.js' import { getCssRules } from '../theme_data/css_utils.js' import { defaultState } from '../../modules/config.js' @@ -97,7 +97,7 @@ export const tryLoadCache = () => { console.error('Failed to decode theme cache:', e) return false } - if (cache.checksum === getChecksum()) { + if (cache.engineChecksum === getEngineChecksum()) { const styleSheet = new CSSStyleSheet() const lazyStyleSheet = new CSSStyleSheet() @@ -108,7 +108,7 @@ export const tryLoadCache = () => { return true } else { - console.warn('Checksum doesn\'t match, cache not usable, clearing') + console.warn('Engine checksum doesn\'t match, cache not usable, clearing') localStorage.removeItem('pleroma-fe-theme-cache') } } @@ -136,7 +136,7 @@ export const applyTheme = async (input, onFinish = (data) => {}) => { }, onLazyFinished () { document.adoptedStyleSheets = [styleSheet, lazyStyleSheet] - const cache = { checksum: getChecksum(), data: [styleArray, lazyStyleArray] } + const cache = { engineChecksum: getEngineChecksum(), data: [styleArray, lazyStyleArray] } onFinish(cache) localStorage.setItem('pleroma-fe-theme-cache', JSON.stringify(cache)) } diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js index 844e951a..15b4493e 100644 --- a/src/services/theme_data/theme_data_3.service.js +++ b/src/services/theme_data/theme_data_3.service.js @@ -143,11 +143,11 @@ componentsContext.keys().forEach(key => { components[component.name] = component }) -const checksum = sum(components) +const engineChecksum = sum(components) const ruleToSelector = genericRuleToSelector(components) -export const getChecksum = () => checksum +export const getEngineChecksum = () => engineChecksum export const init = (extraRuleset, ultimateBackgroundColor) => { const staticVars = {} @@ -469,6 +469,6 @@ export const init = (extraRuleset, ultimateBackgroundColor) => { lazy: result.filter(x => typeof x === 'function'), eager: result.filter(x => typeof x !== 'function'), staticVars, - checksum + engineChecksum } } -- cgit v1.2.3-70-g09d2