From 846e180bd5ebef89d10e12531e69978c7cb3278b Mon Sep 17 00:00:00 2001 From: wes337 Date: Sat, 19 Feb 2022 10:50:17 +0200 Subject: [PATCH 1/4] [@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/4] [@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/4] [@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 0d5ac9d390cec8b5af7f430bd834a3fb27b7aac4 Mon Sep 17 00:00:00 2001 From: wes337 Date: Fri, 14 Oct 2022 08:09:41 +0300 Subject: [PATCH 4/4] [@mantine/core] Menu - remove unused imports --- src/mantine-core/src/Menu/Menu.story.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mantine-core/src/Menu/Menu.story.tsx b/src/mantine-core/src/Menu/Menu.story.tsx index cc880010c47..366430da604 100644 --- a/src/mantine-core/src/Menu/Menu.story.tsx +++ b/src/mantine-core/src/Menu/Menu.story.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { IconTable, IconSearch } from '@tabler/icons'; import { WithinOverlays } from '@mantine/storybook'; import { Menu } from './Menu';