From 846e180bd5ebef89d10e12531e69978c7cb3278b Mon Sep 17 00:00:00 2001 From: wes337 Date: Sat, 19 Feb 2022 10:50:17 +0200 Subject: [PATCH 1/6] [@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/6] [@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 6384170b1f04f742bfcbdf44d83bb67c737c85e3 Mon Sep 17 00:00:00 2001 From: wes337 Date: Thu, 13 Oct 2022 22:37:38 +0300 Subject: [PATCH 3/6] [@mantine/core] Menu - revert PR #2646 --- src/mantine-core/src/Menu/Menu.story.tsx | 39 ------------------- .../src/Menu/MenuTarget/MenuTarget.tsx | 4 +- 2 files changed, 1 insertion(+), 42 deletions(-) diff --git a/src/mantine-core/src/Menu/Menu.story.tsx b/src/mantine-core/src/Menu/Menu.story.tsx index ce43670c956..cc880010c47 100644 --- a/src/mantine-core/src/Menu/Menu.story.tsx +++ b/src/mantine-core/src/Menu/Menu.story.tsx @@ -87,42 +87,3 @@ export function MenuTargetWithTooltip() { ); } - -export function WithinStickyHeaderPortal() { - const [isSticky, setIsSticky] = useState(false); - - useEffect(() => { - const makeSticky = () => { - setIsSticky(window.scrollY > 0); - }; - - document.addEventListener('scroll', makeSticky); - - return () => { - document.removeEventListener('scroll', makeSticky); - }; - }); - - return ( -
-
-
Header
-
- - - - - - - Item 1 - Item 2 - - -
-
-
- ); -} diff --git a/src/mantine-core/src/Menu/MenuTarget/MenuTarget.tsx b/src/mantine-core/src/Menu/MenuTarget/MenuTarget.tsx index 4d3fc3d7e1b..ff86dba2613 100644 --- a/src/mantine-core/src/Menu/MenuTarget/MenuTarget.tsx +++ b/src/mantine-core/src/Menu/MenuTarget/MenuTarget.tsx @@ -1,4 +1,4 @@ -import React, { cloneElement, forwardRef, useEffect } from 'react'; +import React, { cloneElement, forwardRef } from 'react'; import { isElement, createEventHandler } from '@mantine/utils'; import { useMenuContext } from '../Menu.context'; import { Popover } from '../../Popover'; @@ -35,8 +35,6 @@ export const MenuTarget = forwardRef( () => ctx.trigger === 'hover' && ctx.closeDropdown() ); - useEffect(() => ctx.closeDropdown, [children]); - return ( {cloneElement(children, { From bd340feb9946ba3bd95cc11cb2fd0dfca8890a17 Mon Sep 17 00:00:00 2001 From: wes337 Date: Sat, 29 Oct 2022 09:24:29 +0300 Subject: [PATCH 4/6] [Mantine/core] Slider: fix min/max values --- src/mantine-core/src/Slider/Slider.story.tsx | 23 +++++++++++++++++-- .../get-change-value/get-change-value.ts | 13 ++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/mantine-core/src/Slider/Slider.story.tsx b/src/mantine-core/src/Slider/Slider.story.tsx index 8d695a1caa2..6a8b0357a0e 100644 --- a/src/mantine-core/src/Slider/Slider.story.tsx +++ b/src/mantine-core/src/Slider/Slider.story.tsx @@ -45,6 +45,24 @@ function ThumbSize() { ); } +function OnChangeEnd() { + const [value, setValue] = useState(32); + + return ( +
+ setValue(v)} + /> +
+ ); +} + function Disabled() { const [disabled, handlers] = useDisclosure(true); @@ -179,11 +197,12 @@ storiesOf('Slider', module) .add('Thumb size', () => ) .add('Min and max numbers', () => (
- +
)) .add('Negative min number', () => (
- )); + )) + .add('On change end', () => ); diff --git a/src/mantine-core/src/Slider/utils/get-change-value/get-change-value.ts b/src/mantine-core/src/Slider/utils/get-change-value/get-change-value.ts index a18af5f0561..d9bb77bb07a 100644 --- a/src/mantine-core/src/Slider/utils/get-change-value/get-change-value.ts +++ b/src/mantine-core/src/Slider/utils/get-change-value/get-change-value.ts @@ -19,11 +19,12 @@ export function getChangeValue({ ? value : Math.min(Math.max(value, 0), containerWidth) / containerWidth; const dx = left * (max - min); - const minIsNegative = min <= 0; - const nextValue = - dx !== 0 ? Math.round(dx / step) * step + (minIsNegative ? min : 0) : Math.min(min, 0); - const nextValueWithPrecision = precision ? Number(nextValue.toFixed(precision)) : nextValue; - const finalValue = Math.min(nextValueWithPrecision, max); + const nextValue = (dx !== 0 ? Math.round(dx / step) * step : 0) + min; + const nextValueWithinStep = Math.max(nextValue - (nextValue % step), min); - return finalValue <= min ? min : finalValue; + if (precision !== undefined) { + return Number(nextValueWithinStep.toFixed(precision)); + } + + return nextValueWithinStep; } From 7c258588e43456df02e084e3ce3c3695dff291b4 Mon Sep 17 00:00:00 2001 From: wes337 Date: Sun, 30 Oct 2022 19:04:20 +0200 Subject: [PATCH 5/6] [@mantine/core] Slider: remove unneeded story --- src/mantine-core/src/Slider/Slider.story.tsx | 21 +------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/src/mantine-core/src/Slider/Slider.story.tsx b/src/mantine-core/src/Slider/Slider.story.tsx index 6a8b0357a0e..452b395fe7c 100644 --- a/src/mantine-core/src/Slider/Slider.story.tsx +++ b/src/mantine-core/src/Slider/Slider.story.tsx @@ -45,24 +45,6 @@ function ThumbSize() { ); } -function OnChangeEnd() { - const [value, setValue] = useState(32); - - return ( -
- setValue(v)} - /> -
- ); -} - function Disabled() { const [disabled, handlers] = useDisclosure(true); @@ -204,5 +186,4 @@ storiesOf('Slider', module)
- )) - .add('On change end', () => ); + )); From 6bdd102c7773bd4bfcb7cf1b3efcd553d7bc9546 Mon Sep 17 00:00:00 2001 From: wes337 Date: Sun, 30 Oct 2022 19:05:05 +0200 Subject: [PATCH 6/6] [@mantine/core] Slider: revert changes to minmax story --- src/mantine-core/src/Slider/Slider.story.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mantine-core/src/Slider/Slider.story.tsx b/src/mantine-core/src/Slider/Slider.story.tsx index 452b395fe7c..8d695a1caa2 100644 --- a/src/mantine-core/src/Slider/Slider.story.tsx +++ b/src/mantine-core/src/Slider/Slider.story.tsx @@ -179,7 +179,7 @@ storiesOf('Slider', module) .add('Thumb size', () => ) .add('Min and max numbers', () => (
- +
)) .add('Negative min number', () => (