From c03082a2318e2d88de280f54517b62546b14b429 Mon Sep 17 00:00:00 2001 From: Rallen Date: Thu, 20 Jan 2022 22:18:29 +0100 Subject: [PATCH 1/4] Fix prop warnings on animated DummyInput --- packages/react-select/src/internal/DummyInput.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-select/src/internal/DummyInput.tsx b/packages/react-select/src/internal/DummyInput.tsx index 2286f019a5..e0c666daa4 100644 --- a/packages/react-select/src/internal/DummyInput.tsx +++ b/packages/react-select/src/internal/DummyInput.tsx @@ -1,6 +1,7 @@ /** @jsx jsx */ import { Ref } from 'react'; import { jsx } from '@emotion/react'; +import { TransitionProps } from 'react-transition-group/Transition'; export default function DummyInput({ innerRef, @@ -8,10 +9,13 @@ export default function DummyInput({ }: JSX.IntrinsicElements['input'] & { readonly innerRef: Ref; }) { + // Remove animation props not meant for HTML elements + const { onExited, in: _, enter, exit, appear, ...noAnimProps } = props as (JSX.IntrinsicElements['input'] & Partial); + return ( Date: Tue, 8 Feb 2022 14:04:57 +0100 Subject: [PATCH 2/4] Alternative way to remove props. --- packages/react-select/src/internal/DummyInput.tsx | 6 +++--- packages/react-select/src/utils.ts | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/react-select/src/internal/DummyInput.tsx b/packages/react-select/src/internal/DummyInput.tsx index e0c666daa4..d4fc839c58 100644 --- a/packages/react-select/src/internal/DummyInput.tsx +++ b/packages/react-select/src/internal/DummyInput.tsx @@ -1,7 +1,7 @@ /** @jsx jsx */ import { Ref } from 'react'; import { jsx } from '@emotion/react'; -import { TransitionProps } from 'react-transition-group/Transition'; +import { removeProps } from '../utils'; export default function DummyInput({ innerRef, @@ -10,12 +10,12 @@ export default function DummyInput({ readonly innerRef: Ref; }) { // Remove animation props not meant for HTML elements - const { onExited, in: _, enter, exit, appear, ...noAnimProps } = props as (JSX.IntrinsicElements['input'] & Partial); + const filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear'); return ( ( ): OnChangeValue { return multiValue as OnChangeValue; } + +export const removeProps = ( + propsObj: Props, + ...properties: K +): Omit => { + let propsMap = Object.entries(propsObj).filter(([key]) => !properties.includes(key)); + + return propsMap.reduce((newProps: { [key: string]: any }, [key, val]) => { + newProps[key] = val; + return newProps; + }, {}) as Omit; +}; From f5cba28429469ad67c79198f53fff0deb87b271f Mon Sep 17 00:00:00 2001 From: Rall3n Date: Tue, 8 Feb 2022 14:16:54 +0100 Subject: [PATCH 3/4] Prettier changes --- packages/react-select/src/internal/DummyInput.tsx | 9 ++++++++- packages/react-select/src/utils.ts | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/react-select/src/internal/DummyInput.tsx b/packages/react-select/src/internal/DummyInput.tsx index d4fc839c58..4dd19134ae 100644 --- a/packages/react-select/src/internal/DummyInput.tsx +++ b/packages/react-select/src/internal/DummyInput.tsx @@ -10,7 +10,14 @@ export default function DummyInput({ readonly innerRef: Ref; }) { // Remove animation props not meant for HTML elements - const filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear'); + const filteredProps = removeProps( + props, + 'onExited', + 'in', + 'enter', + 'exit', + 'appear' + ); return ( ( propsObj: Props, ...properties: K ): Omit => { - let propsMap = Object.entries(propsObj).filter(([key]) => !properties.includes(key)); + let propsMap = Object.entries(propsObj).filter( + ([key]) => !properties.includes(key) + ); return propsMap.reduce((newProps: { [key: string]: any }, [key, val]) => { newProps[key] = val; From f1d780c4e98d121d5e4be5f78d32033f3cdbf749 Mon Sep 17 00:00:00 2001 From: Rall3n Date: Tue, 8 Feb 2022 14:19:06 +0100 Subject: [PATCH 4/4] Add changeset --- .changeset/wet-knives-punch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wet-knives-punch.md diff --git a/.changeset/wet-knives-punch.md b/.changeset/wet-knives-punch.md new file mode 100644 index 0000000000..511a0192f9 --- /dev/null +++ b/.changeset/wet-knives-punch.md @@ -0,0 +1,5 @@ +--- +'react-select': patch +--- + +Prevent transition props from being forwarded to `` element in `DummyInput` component