From 81bd72d53365a6828f593daa04d771871f645cf2 Mon Sep 17 00:00:00 2001 From: Kiril Zhelyazkov Date: Mon, 5 Oct 2020 13:41:39 +0300 Subject: [PATCH 1/4] Make custom-font-size accept string value --- .../components/src/font-size-picker/index.js | 45 +++++++++++++------ .../src/font-size-picker/style.scss | 6 +++ 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/packages/components/src/font-size-picker/index.js b/packages/components/src/font-size-picker/index.js index a762aa979c591..e22f8344171ef 100644 --- a/packages/components/src/font-size-picker/index.js +++ b/packages/components/src/font-size-picker/index.js @@ -4,7 +4,7 @@ import { __ } from '@wordpress/i18n'; import { useInstanceId } from '@wordpress/compose'; import { textColor } from '@wordpress/icons'; -import { useMemo } from '@wordpress/element'; +import { useMemo, useState } from '@wordpress/element'; /** * Internal dependencies @@ -13,6 +13,7 @@ import Button from '../button'; import RangeControl from '../range-control'; import CustomSelectControl from '../custom-select-control'; import VisuallyHidden from '../visually-hidden'; +import ToggleControl from '../toggle-control'; const DEFAULT_FONT_SIZE = 'default'; const CUSTOM_FONT_SIZE = 'custom'; @@ -60,6 +61,8 @@ export default function FontSizePicker( { [ fontSizes, disableCustomFontSizes ] ); + const [ advancedFontSizing, setAdvancedFontSizing ] = useState( false ); + if ( ! options ) { return null; } @@ -68,11 +71,30 @@ export default function FontSizePicker( { const fontSizePickerNumberId = `components-font-size-picker__number#${ instanceId }`; + const customInputProps = advancedFontSizing + ? { + id: fontSizePickerNumberId, + className: 'components-font-size-picker__number-full-size', + onChange: ( event ) => onChange( event.target.value ), + ariaLabel: __( 'Custom' ), + value: value || '', + placeholder: 'e.g. calc(2rem - 13.5px)', + } + : { + id: fontSizePickerNumberId, + className: 'components-font-size-picker__number', + type: 'number', + min: 1, + onChange: ( event ) => onChange( Number( event.target.value ) ), + ariaLabel: __( 'Custom' ), + value: value || '', + }; + return (
{ __( 'Font size' ) }
- { fontSizes.length > 0 && ( + { fontSizes.length > 0 && ! advancedFontSizing && ( { __( 'Custom' ) } - { - onChange( Number( event.target.value ) ); - } } - aria-label={ __( 'Custom' ) } - value={ value || '' } - /> +
) }