From 750d89de9af19f188a6532560d3aa310507e05a9 Mon Sep 17 00:00:00 2001 From: Russell Anderson Date: Tue, 25 Oct 2022 16:40:36 -0500 Subject: [PATCH] fix: rollback ref on unstyled link (#864) * fix: rollback ref on unstyled link Consuming LinkComponent has been a challenge downstream. We don't actually need the focus style manager to handle unstyled links as far as I can tell, so the console warnings should be resolved without having to keep drilling down into child Link components. * test: update pagination snap --- packages/button/components/ButtonBase.tsx | 5 ++--- packages/link/components/UnstyledLink.tsx | 14 ++++---------- packages/link/types.ts | 4 +--- .../__snapshots__/pagination.test.tsx.snap | 8 ++++++++ 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/packages/button/components/ButtonBase.tsx b/packages/button/components/ButtonBase.tsx index 975eca85c..084103023 100644 --- a/packages/button/components/ButtonBase.tsx +++ b/packages/button/components/ButtonBase.tsx @@ -125,7 +125,7 @@ const ButtonContent = ({ iconStart, iconEnd, isProcessing, children }) => { ); }; -const ButtonNode = React.forwardRef( +const ButtonNode = React.forwardRef( ( { appearance, @@ -178,7 +178,6 @@ const ButtonNode = React.forwardRef( onClick={handleClick} tabIndex={enabled ? 0 : -1} openInNewTab={openInNewTab} - ref={ref} {...other} > } + ref={ref} aria-haspopup={ariaHaspopup} aria-label={ariaLabel} {...other} diff --git a/packages/link/components/UnstyledLink.tsx b/packages/link/components/UnstyledLink.tsx index b7b4a2b41..7f5d9905c 100644 --- a/packages/link/components/UnstyledLink.tsx +++ b/packages/link/components/UnstyledLink.tsx @@ -2,29 +2,23 @@ import React from "react"; import { LinkComponentContext } from "../../uiKitProvider/link/context"; import { ExpandedLinkProps } from "../types"; -const UnstyledLink = (props: ExpandedLinkProps, ref) => { +const UnstyledLink = (props: ExpandedLinkProps) => { const { href, url, target, openInNewTab, children, ...rest } = props; // Context is used for `UIKitProvider` link delegation const LinkComponent = React.useContext(LinkComponentContext); if (LinkComponent) { - return ; + return ; } const rel = target === "_blank" || openInNewTab ? "noopener" : undefined; const blankTargetOrDefault = !target && openInNewTab ? "_blank" : target; return ( - + {children} ); }; -export default React.forwardRef(UnstyledLink); +export default UnstyledLink; diff --git a/packages/link/types.ts b/packages/link/types.ts index ddf4e7165..b6b55cbdc 100644 --- a/packages/link/types.ts +++ b/packages/link/types.ts @@ -15,6 +15,4 @@ export interface LinkProps { export type ExpandedLinkProps = LinkProps & Omit, "ref">; -export type LinkComponent = React.ComponentType< - LinkProps & React.HTMLProps ->; +export type LinkComponent = React.ComponentType; diff --git a/packages/pagination/__snapshots__/pagination.test.tsx.snap b/packages/pagination/__snapshots__/pagination.test.tsx.snap index e5baf7141..75e08b365 100644 --- a/packages/pagination/__snapshots__/pagination.test.tsx.snap +++ b/packages/pagination/__snapshots__/pagination.test.tsx.snap @@ -335,6 +335,7 @@ exports[`Pagination rendering renders default 1`] = ` class="emotion-8" data-cy="textInput-label" for="textInput-2" + hidden="" />