From 0cd78f1c8f716f86f2c89ead970392935302a720 Mon Sep 17 00:00:00 2001 From: Eric Olkowski Date: Fri, 28 Jul 2023 13:47:49 -0400 Subject: [PATCH] fix(Card): updated warning logic for new clickable/selectable card --- packages/react-core/src/components/Card/Card.tsx | 6 +++++- packages/react-core/src/components/Card/CardHeader.tsx | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/react-core/src/components/Card/Card.tsx b/packages/react-core/src/components/Card/Card.tsx index 68e4fe3bcc0..abdf05d82b3 100644 --- a/packages/react-core/src/components/Card/Card.tsx +++ b/packages/react-core/src/components/Card/Card.tsx @@ -57,6 +57,8 @@ interface CardContextProps { isClickable: boolean; isSelectable: boolean; isDisabled: boolean; + // TODO: Remove hasSelectableInput when deprecated prop is removed + hasSelectableInput: boolean; } interface AriaProps { @@ -160,7 +162,9 @@ export const Card: React.FunctionComponent = ({ isExpanded, isClickable, isSelectable, - isDisabled + isDisabled, + // TODO: Remove hasSelectableInput when deprecated prop is removed + hasSelectableInput }} > {hasSelectableInput && ( diff --git a/packages/react-core/src/components/Card/CardHeader.tsx b/packages/react-core/src/components/Card/CardHeader.tsx index 862f7fbf9d8..c8b34353b34 100644 --- a/packages/react-core/src/components/Card/CardHeader.tsx +++ b/packages/react-core/src/components/Card/CardHeader.tsx @@ -79,7 +79,8 @@ export const CardHeader: React.FunctionComponent = ({ ...props }: CardHeaderProps) => ( - {({ cardId, isClickable, isSelectable, isDisabled: isCardDisabled }) => { + {/* TODO: Remove hasSelectableInput when deprecated props are removed */} + {({ cardId, isClickable, isSelectable, isDisabled: isCardDisabled, hasSelectableInput }) => { const cardHeaderToggle = (
); - if (actions?.actions && !(isClickable && isSelectable)) { + const isClickableOrSelectableOnly = (isClickable && !isSelectable) || (isSelectable && !isClickable); + // TODO: Remove following variable and update if block when deprecated prop is removed + // We don't want to throw a warning for the deprecated card + const isDeprecatedSelectableCard = hasSelectableInput; + if (actions?.actions && isClickableOrSelectableOnly && !isDeprecatedSelectableCard) { // eslint-disable-next-line no-console console.warn( `${