aboutsummaryrefslogtreecommitdiff
path: root/src/services/style_setter/style_setter.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/style_setter/style_setter.js')
-rw-r--r--src/services/style_setter/style_setter.js26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js
index e6724d60..95198ec7 100644
--- a/src/services/style_setter/style_setter.js
+++ b/src/services/style_setter/style_setter.js
@@ -8,7 +8,7 @@ import { chunk } from 'lodash'
export const generateTheme = async (input, callbacks) => {
const {
- onNewRule = (rule) => {},
+ onNewRule = (rule, isLazy) => {},
onLazyFinished = () => {},
onEagerFinished = () => {}
} = callbacks
@@ -38,9 +38,9 @@ export const generateTheme = async (input, callbacks) => {
parts[1],
'}'
].join('')
- onNewRule(newRule)
+ onNewRule(newRule, false)
} else {
- onNewRule(rule)
+ onNewRule(rule, false)
}
})
onEagerFinished()
@@ -67,9 +67,9 @@ export const generateTheme = async (input, callbacks) => {
parts[1],
'}'
].join('')
- onNewRule(newRule)
+ onNewRule(newRule, true)
} else {
- onNewRule(rule)
+ onNewRule(rule, true)
}
})
// const t1 = performance.now()
@@ -89,13 +89,23 @@ export const generateTheme = async (input, callbacks) => {
export const applyTheme = async (input) => {
const styleSheet = new CSSStyleSheet()
- document.adoptedStyleSheets = [styleSheet]
+ const lazyStyleSheet = new CSSStyleSheet()
const { lazyProcessFunc } = await generateTheme(
input,
{
- onNewRule (rule) {
- styleSheet.insertRule(rule, 'index-max')
+ onNewRule (rule, isLazy) {
+ if (isLazy) {
+ lazyStyleSheet.insertRule(rule, 'index-max')
+ } else {
+ styleSheet.insertRule(rule, 'index-max')
+ }
+ },
+ onEagerFinished () {
+ document.adoptedStyleSheets = [styleSheet]
+ },
+ onLazyFinished () {
+ document.adoptedStyleSheets = [styleSheet, lazyStyleSheet]
}
}
)