@@ -132,8 +132,7 @@ const classComponentNested = `class Car extends React.Component {
132132const reactForwardRef = /* tsx */ `
133133export const InternalLink = React.forwardRef<HTMLAnchorElement, InternalLinkProps>(
134134 ({ variant, ...props }, ref) => (
135- <Link
136- data-component="InternalLink"
135+ <Link data-component="InternalLink"
137136 ref={ref}
138137 className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
139138 {...props}
@@ -159,8 +158,7 @@ export const InternalLink = React.forwardRef<HTMLAnchorElement, InternalLinkProp
159158const forwardRef = /* tsx */ `
160159export const InternalLink = forwardRef<HTMLAnchorElement, InternalLinkProps>(
161160 ({ variant, ...props }, ref) => (
162- <Link
163- data-component="InternalLink"
161+ <Link data-component="InternalLink"
164162 ref={ref}
165163 className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
166164 {...props}
@@ -183,6 +181,66 @@ export const InternalLink = forwardRef<HTMLAnchorElement, InternalLinkProps>(
183181 ),
184182);` ;
185183
184+ const defaultReactForwardRef = /* tsx */ `
185+ export default React.forwardRef<HTMLAnchorElement, InternalLinkProps>(
186+ function InternalLink({ variant, ...props }, ref) {
187+ return (
188+ <Link data-component="InternalLink"
189+ ref={ref}
190+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
191+ {...props}
192+ >
193+ {props.children}
194+ </Link>
195+ );
196+ }
197+ );` ;
198+
199+ const defaultReactForwardRefError = /* tsx */ `
200+ export default React.forwardRef<HTMLAnchorElement, InternalLinkProps>(
201+ function InternalLink({ variant, ...props }, ref) {
202+ return (
203+ <Link
204+ ref={ref}
205+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
206+ {...props}
207+ >
208+ {props.children}
209+ </Link>
210+ );
211+ }
212+ );` ;
213+
214+ const defaultForwardRef = /* tsx */ `
215+ export default forwardRef<HTMLAnchorElement, InternalLinkProps>(
216+ function InternalLink({ variant, ...props }, ref) {
217+ return (
218+ <Link data-component="InternalLink"
219+ ref={ref}
220+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
221+ {...props}
222+ >
223+ {props.children}
224+ </Link>
225+ );
226+ }
227+ );` ;
228+
229+ const defaultForwardRefError = /* tsx */ `
230+ export default forwardRef<HTMLAnchorElement, InternalLinkProps>(
231+ function InternalLink({ variant, ...props }, ref) {
232+ return (
233+ <Link
234+ ref={ref}
235+ className={classNames(css.link, { [css.inverse]: variant === 'inverse' })}
236+ {...props}
237+ >
238+ {props.children}
239+ </Link>
240+ );
241+ }
242+ );` ;
243+
186244const tests = {
187245 'data-component' : {
188246 // Require the actual rule definition
@@ -234,6 +292,12 @@ const tests = {
234292 {
235293 code : forwardRef ,
236294 } ,
295+ {
296+ code : defaultReactForwardRef ,
297+ } ,
298+ {
299+ code : defaultForwardRef ,
300+ } ,
237301 ] ,
238302 invalid : [
239303 {
@@ -294,6 +358,20 @@ const tests = {
294358 'InternalLink is missing the data-component attribute for the top-level element.' ,
295359 ] ,
296360 } ,
361+ {
362+ code : defaultReactForwardRefError ,
363+ output : defaultReactForwardRef ,
364+ errors : [
365+ 'InternalLink is missing the data-component attribute for the top-level element.' ,
366+ ] ,
367+ } ,
368+ {
369+ code : defaultForwardRefError ,
370+ output : defaultForwardRef ,
371+ errors : [
372+ 'InternalLink is missing the data-component attribute for the top-level element.' ,
373+ ] ,
374+ } ,
297375 ] ,
298376 } ,
299377 } ,
0 commit comments