Skip to content

Commit f39ee85

Browse files
committed
move toggle to color palette, rearrange settings
1 parent 0eeef0b commit f39ee85

File tree

7 files changed

+64
-41
lines changed

7 files changed

+64
-41
lines changed

src/hooks/use-block-color-schemes.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const useBlockColorSchemes = () => {
1313
} = useSelect( select => {
1414
const {
1515
colorSchemes,
16+
hideColorSchemeColors,
1617
baseColorScheme: _baseColorScheme,
1718
backgroundModeColorScheme: _backgroundModeColorScheme,
1819
containerModeColorScheme: _containerModeColorScheme,
@@ -52,12 +53,12 @@ export const useBlockColorSchemes = () => {
5253

5354
// get color groups for color palette picker.
5455
const getColorGroups = () => {
55-
const colorGroups = allColorSchemes.reduce( ( groups, scheme ) => {
56-
// only add colors if the option to add color scheme in the picker is enabled.
57-
if ( ! scheme.showInPicker ) {
58-
return groups
59-
}
56+
// only add colors if the option to add color scheme in the picker is enabled.
57+
if ( hideColorSchemeColors ) {
58+
return []
59+
}
6060

61+
const colorGroups = allColorSchemes.reduce( ( groups, scheme ) => {
6162
// Add name and slug to each color in the color scheme
6263
const colors = Object.entries( scheme.colorScheme ).reduce( ( colors, [ property, value ] ) => {
6364
// Only add colors that have values.

src/plugins/global-settings/color-schemes/color-scheme-picker.js

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
InspectorSubHeader,
1313
ColorPaletteControl,
1414
AdvancedTextControl,
15-
AdvancedToggleControl,
1615
ColorSchemePreview,
1716
ColorSchemePresetPicker,
1817
DEFAULT_COLOR_SCHEME_COLORS,
@@ -153,17 +152,6 @@ const ColorSchemePicker = props => {
153152
updateColorSchemes( currentItem )
154153
}
155154

156-
const onChangeShowInPicker = value => {
157-
if ( ! itemInEdit ) {
158-
return
159-
}
160-
const currentItem = cloneDeep( itemInEdit )
161-
currentItem.showInPicker = value === '' ? false : value
162-
setItemInEdit( currentItem )
163-
164-
updateColorSchemes( currentItem )
165-
}
166-
167155
// Update the current color scheme when a preset is selected.
168156
const onPresetClick = colors => {
169157
if ( ! itemInEdit ) {
@@ -306,12 +294,6 @@ const ColorSchemePicker = props => {
306294
/>
307295
</div>
308296

309-
<AdvancedToggleControl
310-
label={ __( 'Show color scheme colors in color picker', i18n ) }
311-
checked={ itemInEdit?.showInPicker }
312-
onChange={ value => onChangeShowInPicker( value ) }
313-
defaultValue={ itemInEdit?.key?.startsWith( 'scheme-default' ) }
314-
/>
315297
{ COLOR_SETTINGS.map( ( settings, index ) => (
316298
<ColorPaletteControl
317299
key={ index }

src/plugins/global-settings/color-schemes/index.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ import { PanelAdvancedSettings, ProControlButton } from '~stackable/components'
1919
import { addFilter, applyFilters } from '@wordpress/hooks'
2020
import { Fragment, useState } from '@wordpress/element'
2121
import { __ } from '@wordpress/i18n'
22+
import { ToggleControl } from '@wordpress/components'
23+
import { useSelect, dispatch } from '@wordpress/data'
24+
import { models } from '@wordpress/api'
2225

2326
export { GlobalColorSchemeStyles } from './editor-loader'
2427

@@ -28,7 +31,10 @@ addFilter( 'stackable.global-settings.inspector', 'stackable/global-color-scheme
2831
return (
2932
<Fragment>
3033
{ output }
31-
<PanelAdvancedSettings title={ __( 'Global Color Schemes', i18n ) }>
34+
<PanelAdvancedSettings
35+
title={ __( 'Global Color Schemes', i18n ) }
36+
initialOpen={ true }
37+
>
3238
{ ! itemInEdit && <p className="components-base-control__help">
3339
{ __( 'Color schemes are applied to all blocks and sections of your entire website.', i18n ) }
3440
&nbsp;
@@ -49,3 +55,25 @@ addFilter( 'stackable.global-settings.inspector', 'stackable/global-color-scheme
4955
)
5056
} )
5157

58+
addFilter( 'stackable.global-settings.inspector.global-colors.toggle-controls', 'stackable/global-color-schemes', output => {
59+
const { hideColorSchemeColors } = useSelect( select => select( 'stackable/global-color-schemes' ).getSettings() )
60+
61+
const onChange = value => {
62+
dispatch( 'stackable/global-color-schemes' ).updateSettings( {
63+
hideColorSchemeColors: value,
64+
} )
65+
66+
const settings = new models.Settings( { stackable_global_hide_color_scheme_colors: value } ) // eslint-disable-line camelcase
67+
settings.save()
68+
}
69+
70+
return <>
71+
{ output }
72+
<ToggleControl
73+
label={ __( 'Show Color Scheme Colors', i18n ) }
74+
checked={ ! hideColorSchemeColors }
75+
onChange={ value => onChange( ! value ) }
76+
/>
77+
78+
</>
79+
} )

src/plugins/global-settings/color-schemes/index.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ public function register_color_schemes() {
6969
'type' => 'object',
7070
'properties' => Stackable_Global_Color_Schemes::get_color_scheme_properties( $string_properties )
7171
),
72-
'showInPicker' => array( 'type' => 'boolean' ),
7372
)
7473
)
7574
)
@@ -78,6 +77,18 @@ public function register_color_schemes() {
7877
)
7978
);
8079

80+
register_setting(
81+
'stackable_global_settings',
82+
'stackable_global_hide_color_scheme_colors',
83+
array(
84+
'type' => 'boolean',
85+
'description' => __( 'Hide color scheme colors in the Stackable color picker', STACKABLE_I18N ),
86+
'sanitize_callback' => 'sanitize_text_field',
87+
'show_in_rest' => true,
88+
'default' => '',
89+
)
90+
);
91+
8192
register_setting(
8293
'stackable_global_settings',
8394
'stackable_global_base_color_scheme',

src/plugins/global-settings/color-schemes/store.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import domReady from '@wordpress/dom-ready'
1414
// Include all the stored state.
1515
const DEFAULT_STATE = {
1616
colorSchemes: [],
17+
hideColorSchemeColors: '',
1718
baseColorScheme: '',
1819
backgroundModeColorScheme: '',
1920
containerModeColorScheme: '',
@@ -24,9 +25,9 @@ const STORE_ACTIONS = {
2425
type: 'UPDATE_COLOR_SCHEMES',
2526
colorSchemes,
2627
} ),
27-
updateDefaultColorScheme: colorSchemeObj => ( {
28-
type: 'UPDATE_DEFAULT_COLOR_SCHEME',
29-
colorSchemeObj,
28+
updateSettings: settings => ( {
29+
type: 'UPDATE_SETTINGS',
30+
settings,
3031
} ),
3132
}
3233

@@ -47,10 +48,10 @@ const STORE_REDUCER = ( state = DEFAULT_STATE, action ) => {
4748
colorSchemes: action.colorSchemes,
4849
}
4950
}
50-
case 'UPDATE_DEFAULT_COLOR_SCHEME': {
51+
case 'UPDATE_SETTINGS': {
5152
return {
5253
...state,
53-
...action.colorSchemeObj,
54+
...action.settings,
5455
}
5556
}
5657
default: {
@@ -70,6 +71,7 @@ domReady( () => {
7071
fetchSettings().then( response => {
7172
const {
7273
stackable_global_color_schemes: _colorSchemes,
74+
stackable_global_hide_color_scheme_colors: hideColorSchemeColors,
7375
stackable_global_base_color_scheme: baseColorScheme,
7476
stackable_global_background_mode_color_scheme: backgroundModeColorScheme,
7577
stackable_global_container_mode_color_scheme: containerModeColorScheme,
@@ -88,7 +90,6 @@ domReady( () => {
8890
buttonTextColor: { desktop: '' },
8991
buttonOutlineColor: { desktop: '' },
9092
},
91-
showInPicker: true,
9293
}, {
9394
name: 'Color Scheme 2',
9495
key: 'scheme-default-2',
@@ -102,16 +103,16 @@ domReady( () => {
102103
buttonTextColor: { desktop: '' },
103104
buttonOutlineColor: { desktop: '' },
104105
},
105-
showInPicker: true,
106106
} ]
107107

108-
const defaultColorScheme = {
108+
const settings = {
109+
colorSchemes,
110+
hideColorSchemeColors,
109111
baseColorScheme,
110112
backgroundModeColorScheme,
111113
containerModeColorScheme,
112114
}
113115

114-
dispatch( 'stackable/global-color-schemes' ).updateColorSchemes( colorSchemes )
115-
dispatch( 'stackable/global-color-schemes' ).updateDefaultColorScheme( defaultColorScheme )
116+
dispatch( 'stackable/global-color-schemes' ).updateSettings( settings )
116117
} )
117118
} )

src/plugins/global-settings/colors/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import rgba from 'color-rgba'
1616
/**
1717
* WordPress dependencies
1818
*/
19-
import { addFilter } from '@wordpress/hooks'
19+
import { addFilter, applyFilters } from '@wordpress/hooks'
2020
import { Fragment } from '@wordpress/element'
2121
import { __ } from '@wordpress/i18n'
2222
import { dispatch, useSelect } from '@wordpress/data'
@@ -102,13 +102,12 @@ addFilter( 'stackable.global-settings.inspector', 'stackable/global-colors', out
102102
settings.save()
103103
}
104104

105+
const ColorToggleControls = applyFilters( 'stackable.global-settings.inspector.global-colors.toggle-controls', Fragment )
106+
105107
return (
106108
<Fragment>
107109
{ output }
108-
<PanelAdvancedSettings
109-
title={ __( 'Global Color Palette', i18n ) }
110-
initialOpen={ true }
111-
>
110+
<PanelAdvancedSettings title={ __( 'Global Color Palette', i18n ) }>
112111
<p className="components-base-control__help">
113112
{ __( 'Change your color palette for all your blocks across your site.', i18n ) }
114113
&nbsp;
@@ -136,6 +135,7 @@ addFilter( 'stackable.global-settings.inspector', 'stackable/global-colors', out
136135
checked={ ! hideSiteEditorColors }
137136
onChange={ value => onChangeHideSiteEditorColors( ! value ) }
138137
/>
138+
{ ColorToggleControls }
139139
</PanelAdvancedSettings>
140140
</Fragment>
141141
)

src/plugins/global-settings/editor-loader.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
/**
66
* Internal dependencies
77
*/
8-
import { GlobalColorStyles } from './colors'
98
import { GlobalColorSchemeStyles } from './color-schemes'
9+
import { GlobalColorStyles } from './colors'
1010
import { GlobalTypographyStyles } from './typography'
1111
import { GlobalSpacingAndBordersStyles } from './spacing-and-borders'
1212
import { GlobalButtonsAndIconsStyles } from './buttons-and-icons'

0 commit comments

Comments
 (0)