UNPKG

@wordpress/block-editor

Version:
54 lines (51 loc) 2.01 kB
import { createElement } from "@wordpress/element"; /** * WordPress dependencies */ import { store as blocksStore } from '@wordpress/blocks'; import { useMemo, useCallback } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { SelectControl } from '@wordpress/components'; import { useSelect } from '@wordpress/data'; /** * Internal dependencies */ import { store as blockEditorStore } from '../../store'; export default function DefaultStylePicker({ blockName }) { const { preferredStyle, onUpdatePreferredStyleVariations, styles } = useSelect(select => { var _preferredStyleVariat, _preferredStyleVariat2; const settings = select(blockEditorStore).getSettings(); const preferredStyleVariations = settings.__experimentalPreferredStyleVariations; return { preferredStyle: preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : (_preferredStyleVariat = preferredStyleVariations.value) === null || _preferredStyleVariat === void 0 ? void 0 : _preferredStyleVariat[blockName], onUpdatePreferredStyleVariations: (_preferredStyleVariat2 = preferredStyleVariations === null || preferredStyleVariations === void 0 ? void 0 : preferredStyleVariations.onChange) !== null && _preferredStyleVariat2 !== void 0 ? _preferredStyleVariat2 : null, styles: select(blocksStore).getBlockStyles(blockName) }; }, [blockName]); const selectOptions = useMemo(() => [{ label: __('Not set'), value: '' }, ...styles.map(({ label, name }) => ({ label, value: name }))], [styles]); const selectOnChange = useCallback(blockStyle => { onUpdatePreferredStyleVariations(blockName, blockStyle); }, [blockName, onUpdatePreferredStyleVariations]); return onUpdatePreferredStyleVariations && createElement(SelectControl, { options: selectOptions, value: preferredStyle || '', label: __('Default Style'), onChange: selectOnChange }); } //# sourceMappingURL=index.js.map