From 846e180bd5ebef89d10e12531e69978c7cb3278b Mon Sep 17 00:00:00 2001 From: wes337 Date: Sat, 19 Feb 2022 10:50:17 +0200 Subject: [PATCH 1/3] [@mantine/core] Select: only use open/close callback when value changes --- src/mantine-core/src/components/Select/Select.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mantine-core/src/components/Select/Select.tsx b/src/mantine-core/src/components/Select/Select.tsx index 9f646fefba3..84a4cd8dcf2 100644 --- a/src/mantine-core/src/components/Select/Select.tsx +++ b/src/mantine-core/src/components/Select/Select.tsx @@ -214,6 +214,10 @@ export const Select = forwardRef( const isDeselectable = allowDeselect === undefined ? clearable : allowDeselect; const setDropdownOpened = (opened: boolean) => { + if (dropdownOpened === opened) { + return; + } + _setDropdownOpened(opened); const handler = opened ? onDropdownOpen : onDropdownClose; typeof handler === 'function' && handler(); From 9e8045f8e430043f8540a86ef65eba31b9f7e47d Mon Sep 17 00:00:00 2001 From: Wesley Moses Date: Sat, 19 Feb 2022 11:43:41 +0200 Subject: [PATCH 2/3] [@mantine/core] Select: do not use early return --- src/mantine-core/src/components/Select/Select.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/mantine-core/src/components/Select/Select.tsx b/src/mantine-core/src/components/Select/Select.tsx index 84a4cd8dcf2..29e0b1ca717 100644 --- a/src/mantine-core/src/components/Select/Select.tsx +++ b/src/mantine-core/src/components/Select/Select.tsx @@ -214,13 +214,11 @@ export const Select = forwardRef( const isDeselectable = allowDeselect === undefined ? clearable : allowDeselect; const setDropdownOpened = (opened: boolean) => { - if (dropdownOpened === opened) { - return; + if (dropdownOpened !== opened) { + _setDropdownOpened(opened); + const handler = opened ? onDropdownOpen : onDropdownClose; + typeof handler === 'function' && handler(); } - - _setDropdownOpened(opened); - const handler = opened ? onDropdownOpen : onDropdownClose; - typeof handler === 'function' && handler(); }; const isCreatable = creatable && typeof getCreateLabel === 'function'; From cb603986da50f3ddbdbfb233ccefc40fdb3162ea Mon Sep 17 00:00:00 2001 From: wes337 Date: Thu, 18 Aug 2022 09:40:54 +0300 Subject: [PATCH 3/3] [@mantine/core] Multiselect: fix line heights --- .../src/MultiSelect/MultiSelect.story.tsx | 21 +++++++++++++++++++ .../src/MultiSelect/MultiSelect.styles.ts | 6 +++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/mantine-core/src/MultiSelect/MultiSelect.story.tsx b/src/mantine-core/src/MultiSelect/MultiSelect.story.tsx index e6d99a9db3b..44b53fab043 100644 --- a/src/mantine-core/src/MultiSelect/MultiSelect.story.tsx +++ b/src/mantine-core/src/MultiSelect/MultiSelect.story.tsx @@ -1,4 +1,6 @@ import React from 'react'; +import { Stack } from '../Stack'; +import { TextInput } from '../TextInput'; import { MultiSelect } from './MultiSelect'; export default { title: 'MultiSelect' }; @@ -27,3 +29,22 @@ export function EmptyGroup() { /> ); } + +export function SizeXSLineHeight() { + return ( + + + + + + ); +} diff --git a/src/mantine-core/src/MultiSelect/MultiSelect.styles.ts b/src/mantine-core/src/MultiSelect/MultiSelect.styles.ts index 9117c0c0151..195405e634d 100644 --- a/src/mantine-core/src/MultiSelect/MultiSelect.styles.ts +++ b/src/mantine-core/src/MultiSelect/MultiSelect.styles.ts @@ -17,8 +17,6 @@ export default createStyles((theme, { size, invalid }: MultiSelectStylesParams) alignItems: 'center', flexWrap: 'wrap', marginLeft: -theme.spacing.xs / 2, - paddingTop: theme.spacing.xs / 2 - 2, - paddingBottom: theme.spacing.xs / 2 - 2, boxSizing: 'border-box', }, @@ -27,6 +25,7 @@ export default createStyles((theme, { size, invalid }: MultiSelectStylesParams) }, searchInput: { + ...theme.fn.fontStyles(), flex: 1, minWidth: 60, backgroundColor: 'transparent', @@ -34,9 +33,10 @@ export default createStyles((theme, { size, invalid }: MultiSelectStylesParams) outline: 0, fontSize: theme.fn.size({ size, sizes: theme.fontSizes }), padding: 0, - margin: theme.spacing.xs / 2, + marginLeft: theme.spacing.xs / 2, appearance: 'none', color: 'inherit', + lineHeight: `${theme.fn.size({ size, sizes: INPUT_SIZES }) - 2}px`, '&::placeholder': { opacity: 1,