@@ -91,8 +91,7 @@ const fragmentsWontUpdate = `const Component = () => {
9191const reactForwardRef = /* tsx */ `
9292export const InternalLink = React.forwardRef<HTMLAnchorElement, InternalLinkProps>(
9393 ({ variant, ...props }, ref) => (
94- <Link
95- data-component="InternalLink"
94+ <Link data-component="InternalLink"
9695 ref={ref}
9796 className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
9897 {...props}
@@ -118,8 +117,7 @@ export const InternalLink = React.forwardRef<HTMLAnchorElement, InternalLinkProp
118117const forwardRef = /* tsx */ `
119118export const InternalLink = forwardRef<HTMLAnchorElement, InternalLinkProps>(
120119 ({ variant, ...props }, ref) => (
121- <Link
122- data-component="InternalLink"
120+ <Link data-component="InternalLink"
123121 ref={ref}
124122 className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
125123 {...props}
@@ -142,6 +140,66 @@ export const InternalLink = forwardRef<HTMLAnchorElement, InternalLinkProps>(
142140 ),
143141);` ;
144142
143+ const defaultReactForwardRef = /* tsx */ `
144+ export default React.forwardRef<HTMLAnchorElement, InternalLinkProps>(
145+ function InternalLink({ variant, ...props }, ref) {
146+ return (
147+ <Link data-component="InternalLink"
148+ ref={ref}
149+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
150+ {...props}
151+ >
152+ {props.children}
153+ </Link>
154+ );
155+ }
156+ );` ;
157+
158+ const defaultReactForwardRefError = /* tsx */ `
159+ export default React.forwardRef<HTMLAnchorElement, InternalLinkProps>(
160+ function InternalLink({ variant, ...props }, ref) {
161+ return (
162+ <Link
163+ ref={ref}
164+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
165+ {...props}
166+ >
167+ {props.children}
168+ </Link>
169+ );
170+ }
171+ );` ;
172+
173+ const defaultForwardRef = /* tsx */ `
174+ export default forwardRef<HTMLAnchorElement, InternalLinkProps>(
175+ function InternalLink({ variant, ...props }, ref) {
176+ return (
177+ <Link data-component="InternalLink"
178+ ref={ref}
179+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
180+ {...props}
181+ >
182+ {props.children}
183+ </Link>
184+ );
185+ }
186+ );` ;
187+
188+ const defaultForwardRefError = /* tsx */ `
189+ export default forwardRef<HTMLAnchorElement, InternalLinkProps>(
190+ function InternalLink({ variant, ...props }, ref) {
191+ return (
192+ <Link
193+ ref={ref}
194+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
195+ {...props}
196+ >
197+ {props.children}
198+ </Link>
199+ );
200+ }
201+ );` ;
202+
145203const tests = {
146204 'data-component' : {
147205 // Require the actual rule definition
@@ -193,6 +251,12 @@ const tests = {
193251 {
194252 code : forwardRef ,
195253 } ,
254+ {
255+ code : defaultReactForwardRef ,
256+ } ,
257+ {
258+ code : defaultForwardRef ,
259+ } ,
196260 ] ,
197261 invalid : [
198262 {
@@ -239,6 +303,20 @@ const tests = {
239303 'InternalLink is missing the data-component attribute for the top-level element.' ,
240304 ] ,
241305 } ,
306+ {
307+ code : defaultReactForwardRefError ,
308+ output : defaultReactForwardRef ,
309+ errors : [
310+ 'InternalLink is missing the data-component attribute for the top-level element.' ,
311+ ] ,
312+ } ,
313+ {
314+ code : defaultForwardRefError ,
315+ output : defaultForwardRef ,
316+ errors : [
317+ 'InternalLink is missing the data-component attribute for the top-level element.' ,
318+ ] ,
319+ } ,
242320 ] ,
243321 } ,
244322 } ,
0 commit comments