@@ -89,10 +89,13 @@ const ColorSchemePicker = props => {
8989 setDisplayHoverNotice,
9090 } = props
9191
92- const { colorSchemes } = useSelect ( select => {
93- const { colorSchemes : _colorSchemes } = select ( 'stackable/global-color-schemes' ) . getSettings ( )
92+ const {
93+ colorSchemes, cachedCss,
94+ } = useSelect ( select => {
95+ const { colorSchemes : _colorSchemes , cachedCss } = select ( 'stackable/global-color-schemes' ) . getSettings ( )
9496 return {
9597 colorSchemes : cloneDeep ( _colorSchemes ) ,
98+ cachedCss,
9699 }
97100 } )
98101
@@ -125,7 +128,7 @@ const ColorSchemePicker = props => {
125128
126129 // Add a custom color scheme
127130 const handleAddItem = ( event , scheme = null ) => {
128- doAction ( 'stackable.global-settings.global-color-schemes.custom-color-schemes.add-color-scheme' , scheme , setItemInEdit , saveTimeout )
131+ doAction ( 'stackable.global-settings.global-color-schemes.custom-color-schemes.add-color-scheme' , scheme , setItemInEdit , cachedCss , saveTimeout )
129132 }
130133
131134 // For sorting custom color schemes
@@ -137,7 +140,7 @@ const ColorSchemePicker = props => {
137140 clearTimeout ( saveTimeout )
138141
139142 // If the color scheme being edited is a custom color scheme, customUpdate will return true
140- const customUpdate = applyFilters ( 'stackable.global-settings.global-color-schemes.update-color-schemes' , false , currentItem , saveTimeout )
143+ const customUpdate = applyFilters ( 'stackable.global-settings.global-color-schemes.update-color-schemes' , false , currentItem , cachedCss , saveTimeout )
141144
142145 if ( ! customUpdate ) {
143146 // Do this only when the color scheme being edited is the default/fixed color schemes (the first two color schemes)
@@ -146,12 +149,17 @@ const ColorSchemePicker = props => {
146149 updatedColorSchemes [ currentIndex ] = currentItem
147150
148151 saveTimeout = setTimeout ( ( ) => {
149- const settings = new models . Settings ( { stackable_global_color_schemes : updatedColorSchemes } ) // eslint-disable-line camelcase
152+ const settings = new models . Settings ( {
153+ stackable_global_color_schemes : updatedColorSchemes , // eslint-disable-line camelcase
154+ // Clear the cached CSS when the color scheme is updated
155+ ...( cachedCss ? { stackable_global_color_scheme_generated_css : '' } : { } ) , // eslint-disable-line camelcase
156+ } )
150157 settings . save ( )
151158 } , 300 )
152159
153160 // Update our store.
154161 dispatch ( 'stackable/global-color-schemes' ) . updateColorSchemes ( updatedColorSchemes )
162+ dispatch ( 'stackable/global-color-schemes' ) . updateSettings ( { cachedCss : '' } )
155163 }
156164 }
157165
@@ -255,7 +263,7 @@ const ColorSchemePicker = props => {
255263
256264 const onDeleteItem = item => {
257265 // If the color scheme to be deleted is a custom color scheme, customDelete will return true
258- const customDelete = applyFilters ( 'stackable.global-settings.global-color-schemes.delete-color-scheme' , false , item , setItemInEdit , saveTimeout )
266+ const customDelete = applyFilters ( 'stackable.global-settings.global-color-schemes.delete-color-scheme' , false , item , setItemInEdit , cachedCss , saveTimeout )
259267
260268 if ( ! customDelete ) {
261269 // Do not delete if it is not a custom color scheme, reset it to the default value instead.
0 commit comments