Skip to content

React Review Audit #12

Description

@react-doctor
⚠️ 233 warnings 87 score
Copy as prompt
Fix the following React Review diagnostics in my codebase.

## Warnings (233)

1. [warning] no-react19-deprecated-apis — components/ui/toast.tsx:12
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

2. [warning] no-react19-deprecated-apis — components/ui/toast.tsx:43
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

3. [warning] no-react19-deprecated-apis — components/ui/toast.tsx:58
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

4. [warning] no-react19-deprecated-apis — components/ui/toast.tsx:73
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

5. [warning] design-no-redundant-size-axes — components/ui/toast.tsx:86
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

6. [warning] no-react19-deprecated-apis — components/ui/toast.tsx:91
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

7. [warning] no-react19-deprecated-apis — components/ui/toast.tsx:103
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

8. [warning] no-react19-deprecated-apis — components/ui/carousel.tsx:36
   useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`

9. [warning] no-react19-deprecated-apis — components/ui/carousel.tsx:45
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

10. [warning] no-prop-callback-in-effect — components/ui/carousel.tsx:106
   useEffect calls prop callback "setApi" with local state in deps — this is the "lift state via callback" anti-pattern; lift state into a shared Provider so both sides read the same source

11. [warning] advanced-event-handler-refs — components/ui/carousel.tsx:109
   useEffect re-subscribes a "onSelect" listener every time the handler identity changes — store the handler in a ref and have the listener read `handlerRef.current()`, then drop it from the deps

12. [warning] no-react19-deprecated-apis — components/ui/carousel.tsx:153
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

13. [warning] no-react19-deprecated-apis — components/ui/carousel.tsx:175
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

14. [warning] no-react19-deprecated-apis — components/ui/carousel.tsx:197
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

15. [warning] design-no-redundant-size-axes — components/ui/carousel.tsx:219
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

16. [warning] no-react19-deprecated-apis — components/ui/carousel.tsx:226
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

17. [warning] design-no-redundant-size-axes — components/ui/carousel.tsx:248
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

18. [warning] no-react19-deprecated-apis — components/ui/tooltip.tsx:14
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

19. [warning] no-redundant-roles — components/ui/pagination.tsx:9
   The `nav` element has an implicit role of `navigation`. Defining this explicitly is redundant and should be avoided.

20. [warning] no-react19-deprecated-apis — components/ui/pagination.tsx:17
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

21. [warning] no-react19-deprecated-apis — components/ui/pagination.tsx:29
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

22. [warning] design-no-redundant-size-axes — components/ui/pagination.tsx:72
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

23. [warning] design-no-redundant-size-axes — components/ui/pagination.tsx:89
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

24. [warning] design-no-redundant-size-axes — components/ui/pagination.tsx:103
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

25. [warning] no-unknown-property — components/ui/command.tsx:42
   Unknown property found

26. [warning] no-react19-deprecated-apis — components/ui/command.tsx:11
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

27. [warning] no-react19-deprecated-apis — components/ui/command.tsx:38
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

28. [warning] design-no-redundant-size-axes — components/ui/command.tsx:43
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

29. [warning] no-react19-deprecated-apis — components/ui/command.tsx:57
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

30. [warning] no-react19-deprecated-apis — components/ui/command.tsx:70
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

31. [warning] no-react19-deprecated-apis — components/ui/command.tsx:83
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

32. [warning] no-react19-deprecated-apis — components/ui/command.tsx:99
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

33. [warning] no-react19-deprecated-apis — components/ui/command.tsx:111
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

34. [warning] design-no-redundant-size-axes — components/ui/resizable.tsx:39
   w-2.5 h-2.5 → use the shorthand size-2.5 (Tailwind v3.4+)

35. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:21
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

36. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:43
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

37. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:59
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

38. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:77
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

39. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:95
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

40. [warning] design-no-redundant-size-axes — components/ui/dropdown-menu.tsx:108
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

41. [warning] design-no-redundant-size-axes — components/ui/dropdown-menu.tsx:110
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

42. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:119
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

43. [warning] design-no-redundant-size-axes — components/ui/dropdown-menu.tsx:131
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

44. [warning] design-no-redundant-size-axes — components/ui/dropdown-menu.tsx:133
   w-2 h-2 → use the shorthand size-2 (Tailwind v3.4+)

45. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:141
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

46. [warning] no-react19-deprecated-apis — components/ui/dropdown-menu.tsx:159
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

47. [warning] no-react19-deprecated-apis — components/ui/button.tsx:42
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

48. [warning] no-react19-deprecated-apis — components/ui/alert-dialog.tsx:15
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

49. [warning] no-react19-deprecated-apis — components/ui/alert-dialog.tsx:30
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

50. [warning] no-react19-deprecated-apis — components/ui/alert-dialog.tsx:76
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

51. [warning] no-react19-deprecated-apis — components/ui/alert-dialog.tsx:88
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

52. [warning] no-react19-deprecated-apis — components/ui/alert-dialog.tsx:101
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

53. [warning] no-react19-deprecated-apis — components/ui/alert-dialog.tsx:113
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

54. [warning] no-react19-deprecated-apis — components/ui/sheet.tsx:18
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

55. [warning] no-react19-deprecated-apis — components/ui/sheet.tsx:56
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

56. [warning] design-no-redundant-size-axes — components/ui/sheet.tsx:69
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

57. [warning] no-react19-deprecated-apis — components/ui/sheet.tsx:105
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

58. [warning] no-react19-deprecated-apis — components/ui/sheet.tsx:117
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

59. [warning] no-react19-deprecated-apis — components/ui/input.tsx:5
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

60. [warning] no-danger — components/ui/chart.tsx:81
   Do not use `dangerouslySetInnerHTML` prop

61. [warning] prefer-dynamic-import — components/ui/chart.tsx:4
   "recharts" is a heavy library — use React.lazy() or next/dynamic for code splitting

62. [warning] no-react19-deprecated-apis — components/ui/chart.tsx:28
   useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`

63. [warning] no-react19-deprecated-apis — components/ui/chart.tsx:37
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

64. [warning] no-react19-deprecated-apis — components/ui/chart.tsx:105
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

65. [warning] no-react19-deprecated-apis — components/ui/chart.tsx:261
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

66. [warning] design-no-redundant-size-axes — components/ui/chart.tsx:303
   w-2 h-2 → use the shorthand size-2 (Tailwind v3.4+)

67. [warning] heading-has-content — components/ui/alert.tsx:31
   Headings must have content and the content must be accessible by a screen reader.

68. [warning] no-react19-deprecated-apis — components/ui/alert.tsx:21
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

69. [warning] no-react19-deprecated-apis — components/ui/alert.tsx:29
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

70. [warning] no-react19-deprecated-apis — components/ui/alert.tsx:36
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

71. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:21
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

72. [warning] design-no-redundant-size-axes — components/ui/context-menu.tsx:37
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

73. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:42
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

74. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:57
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

75. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:74
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

76. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:92
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

77. [warning] design-no-redundant-size-axes — components/ui/context-menu.tsx:105
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

78. [warning] design-no-redundant-size-axes — components/ui/context-menu.tsx:107
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

79. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:116
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

80. [warning] design-no-redundant-size-axes — components/ui/context-menu.tsx:128
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

81. [warning] design-no-redundant-size-axes — components/ui/context-menu.tsx:130
   w-2 h-2 → use the shorthand size-2 (Tailwind v3.4+)

82. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:138
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

83. [warning] no-react19-deprecated-apis — components/ui/context-menu.tsx:156
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

84. [warning] no-react19-deprecated-apis — components/ui/card.tsx:5
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

85. [warning] no-react19-deprecated-apis — components/ui/card.tsx:20
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

86. [warning] no-react19-deprecated-apis — components/ui/card.tsx:32
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

87. [warning] no-react19-deprecated-apis — components/ui/card.tsx:47
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

88. [warning] no-react19-deprecated-apis — components/ui/card.tsx:59
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

89. [warning] no-react19-deprecated-apis — components/ui/card.tsx:67
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

90. [warning] no-react19-deprecated-apis — components/ui/textarea.tsx:5
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

91. [warning] no-react19-deprecated-apis — components/ui/breadcrumb.tsx:7
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

92. [warning] no-react19-deprecated-apis — components/ui/breadcrumb.tsx:15
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

93. [warning] no-react19-deprecated-apis — components/ui/breadcrumb.tsx:30
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

94. [warning] no-react19-deprecated-apis — components/ui/breadcrumb.tsx:42
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

95. [warning] no-react19-deprecated-apis — components/ui/breadcrumb.tsx:60
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

96. [warning] design-no-redundant-size-axes — components/ui/breadcrumb.tsx:101
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

97. [warning] no-react19-deprecated-apis — components/ui/form.tsx:45
   useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`

98. [warning] no-react19-deprecated-apis — components/ui/form.tsx:46
   useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`

99. [warning] no-react19-deprecated-apis — components/ui/form.tsx:75
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

100. [warning] no-react19-deprecated-apis — components/ui/form.tsx:89
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

101. [warning] no-react19-deprecated-apis — components/ui/form.tsx:106
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

102. [warning] no-react19-deprecated-apis — components/ui/form.tsx:128
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

103. [warning] no-react19-deprecated-apis — components/ui/form.tsx:145
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

104. [warning] no-react19-deprecated-apis — components/ui/toggle.tsx:31
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

105. [warning] nextjs-missing-metadata — app/page.tsx:1
   Page without metadata or generateMetadata export — hurts SEO

106. [warning] design-no-redundant-size-axes — app/page.tsx:44
   w-1.5 h-1.5 → use the shorthand size-1.5 (Tailwind v3.4+)

107. [warning] design-no-redundant-size-axes — app/page.tsx:103
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

108. [warning] design-no-redundant-size-axes — app/page.tsx:108
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

109. [warning] design-no-redundant-size-axes — app/page.tsx:118
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

110. [warning] design-no-redundant-size-axes — app/page.tsx:131
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

111. [warning] design-no-redundant-size-axes — app/page.tsx:138
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

112. [warning] no-react19-deprecated-apis — components/ui/drawer.tsx:25
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

113. [warning] no-react19-deprecated-apis — components/ui/drawer.tsx:37
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

114. [warning] no-react19-deprecated-apis — components/ui/drawer.tsx:80
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

115. [warning] no-react19-deprecated-apis — components/ui/drawer.tsx:95
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

116. [warning] design-no-redundant-size-axes — components/github-star-button.tsx:23
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

117. [warning] no-react19-deprecated-apis — components/ui/accordion.tsx:11
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

118. [warning] no-react19-deprecated-apis — components/ui/accordion.tsx:23
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

119. [warning] design-no-redundant-size-axes — components/ui/accordion.tsx:37
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

120. [warning] no-react19-deprecated-apis — components/ui/accordion.tsx:43
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

121. [warning] no-react19-deprecated-apis — components/ui/input-otp.tsx:9
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

122. [warning] no-react19-deprecated-apis — components/ui/input-otp.tsx:25
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

123. [warning] no-react19-deprecated-apis — components/ui/input-otp.tsx:33
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

124. [warning] no-react19-deprecated-apis — components/ui/input-otp.tsx:37
   useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`

125. [warning] no-react19-deprecated-apis — components/ui/input-otp.tsx:61
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

126. [warning] no-react19-deprecated-apis — components/ui/avatar.tsx:8
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

127. [warning] no-react19-deprecated-apis — components/ui/avatar.tsx:23
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

128. [warning] no-react19-deprecated-apis — components/ui/avatar.tsx:35
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

129. [warning] no-react19-deprecated-apis — components/ui/navigation-menu.tsx:8
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

130. [warning] no-react19-deprecated-apis — components/ui/navigation-menu.tsx:26
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

131. [warning] no-react19-deprecated-apis — components/ui/navigation-menu.tsx:47
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

132. [warning] design-no-redundant-size-axes — components/ui/navigation-menu.tsx:58
   w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)

133. [warning] no-react19-deprecated-apis — components/ui/navigation-menu.tsx:65
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

134. [warning] no-react19-deprecated-apis — components/ui/navigation-menu.tsx:82
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

135. [warning] no-react19-deprecated-apis — components/ui/navigation-menu.tsx:100
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

136. [warning] design-no-redundant-size-axes — components/ui/navigation-menu.tsx:112
   w-2 h-2 → use the shorthand size-2 (Tailwind v3.4+)

137. [warning] no-react19-deprecated-apis — components/ui/hover-card.tsx:12
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

138. [warning] design-no-redundant-size-axes — components/ui/calendar.tsx:60
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

139. [warning] design-no-redundant-size-axes — components/ui/calendar.tsx:62
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

140. [warning] no-react19-deprecated-apis — components/ui/radio-group.tsx:9
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

141. [warning] no-react19-deprecated-apis — components/ui/radio-group.tsx:23
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

142. [warning] design-no-redundant-size-axes — components/ui/radio-group.tsx:37
   w-2.5 h-2.5 → use the shorthand size-2.5 (Tailwind v3.4+)

143. [warning] no-react19-deprecated-apis — components/ui/progress.tsx:8
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

144. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:19
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

145. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:34
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

146. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:49
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

147. [warning] design-no-redundant-size-axes — components/ui/menubar.tsx:65
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

148. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:70
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

149. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:85
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

150. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:110
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

151. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:128
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

152. [warning] design-no-redundant-size-axes — components/ui/menubar.tsx:141
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

153. [warning] design-no-redundant-size-axes — components/ui/menubar.tsx:143
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

154. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:151
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

155. [warning] design-no-redundant-size-axes — components/ui/menubar.tsx:163
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

156. [warning] design-no-redundant-size-axes — components/ui/menubar.tsx:165
   w-2 h-2 → use the shorthand size-2 (Tailwind v3.4+)

157. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:173
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

158. [warning] no-react19-deprecated-apis — components/ui/menubar.tsx:191
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

159. [warning] no-react19-deprecated-apis — components/ui/checkbox.tsx:9
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

160. [warning] design-no-redundant-size-axes — components/ui/checkbox.tsx:24
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

161. [warning] no-react19-deprecated-apis — components/ui/separator.tsx:8
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

162. [warning] no-react19-deprecated-apis — components/ui/select.tsx:15
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

163. [warning] design-no-redundant-size-axes — components/ui/select.tsx:29
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

164. [warning] no-react19-deprecated-apis — components/ui/select.tsx:35
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

165. [warning] design-no-redundant-size-axes — components/ui/select.tsx:47
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

166. [warning] no-react19-deprecated-apis — components/ui/select.tsx:52
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

167. [warning] design-no-redundant-size-axes — components/ui/select.tsx:64
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

168. [warning] no-react19-deprecated-apis — components/ui/select.tsx:70
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

169. [warning] no-react19-deprecated-apis — components/ui/select.tsx:102
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

170. [warning] no-react19-deprecated-apis — components/ui/select.tsx:114
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

171. [warning] design-no-redundant-size-axes — components/ui/select.tsx:126
   w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)

172. [warning] design-no-redundant-size-axes — components/ui/select.tsx:128
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

173. [warning] no-react19-deprecated-apis — components/ui/select.tsx:137
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

174. [warning] no-react19-deprecated-apis — components/ui/label.tsx:13
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

175. [warning] no-react19-deprecated-apis — components/ui/dialog.tsx:17
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

176. [warning] no-react19-deprecated-apis — components/ui/dialog.tsx:32
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

177. [warning] design-no-redundant-size-axes — components/ui/dialog.tsx:48
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

178. [warning] no-react19-deprecated-apis — components/ui/dialog.tsx:84
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

179. [warning] no-react19-deprecated-apis — components/ui/dialog.tsx:99
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

180. [warning] no-react19-deprecated-apis — components/ui/slider.tsx:8
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

181. [warning] design-no-redundant-size-axes — components/ui/slider.tsx:23
   w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)

182. [warning] no-react19-deprecated-apis — components/ui/popover.tsx:12
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

183. [warning] rerender-state-only-in-handlers — components/pdf2md-loader.tsx:14
   useState "pdf2md" is updated but never read in the component's return — use useRef so updates don't trigger re-renders

184. [warning] no-react19-deprecated-apis — components/ui/tabs.tsx:10
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

185. [warning] no-react19-deprecated-apis — components/ui/tabs.tsx:25
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

186. [warning] no-react19-deprecated-apis — components/ui/tabs.tsx:40
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

187. [warning] no-react19-deprecated-apis — components/ui/table.tsx:5
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

188. [warning] no-react19-deprecated-apis — components/ui/table.tsx:19
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

189. [warning] no-react19-deprecated-apis — components/ui/table.tsx:27
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

190. [warning] no-react19-deprecated-apis — components/ui/table.tsx:39
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

191. [warning] no-react19-deprecated-apis — components/ui/table.tsx:54
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

192. [warning] no-react19-deprecated-apis — components/ui/table.tsx:69
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

193. [warning] no-react19-deprecated-apis — components/ui/table.tsx:84
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

194. [warning] no-react19-deprecated-apis — components/ui/table.tsx:96
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

195. [warning] no-react19-deprecated-apis — components/ui/scroll-area.tsx:8
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

196. [warning] no-react19-deprecated-apis — components/ui/scroll-area.tsx:26
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

197. [warning] no-react19-deprecated-apis — components/ui/toggle-group.tsx:17
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

198. [warning] no-react19-deprecated-apis — components/ui/toggle-group.tsx:35
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

199. [warning] no-react19-deprecated-apis — components/ui/toggle-group.tsx:40
   useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`

200. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:42
   useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`

201. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:50
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

202. [warning] no-derived-useState — components/ui/sidebar.tsx:75
   useState initialized from prop "defaultOpen" — if this value should stay in sync with the prop, derive it during render instead

203. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:159
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

204. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:262
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

205. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:288
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

206. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:317
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

207. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:335
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

208. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:353
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

209. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:368
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

210. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:383
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

211. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:398
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

212. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:416
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

213. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:431
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

214. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:452
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

215. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:475
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

216. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:488
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

217. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:501
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

218. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:536
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

219. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:595
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

220. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:626
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

221. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:647
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

222. [warning] no-usememo-simple-expression — components/ui/sidebar.tsx:654
   useMemo wrapping a trivially cheap expression — memo overhead exceeds the computation

223. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:685
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

224. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:702
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

225. [warning] no-react19-deprecated-apis — components/ui/sidebar.tsx:708
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

226. [warning] prefer-useReducer — components/file-uploader.tsx:20
   Component "FileUploader" has 5 useState calls — consider useReducer for related state

227. [warning] no-cascading-set-state — components/file-uploader.tsx:28
   3 setState calls in a single useEffect — consider using useReducer or deriving state

228. [warning] design-no-redundant-size-axes — components/file-uploader.tsx:130
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

229. [warning] design-no-redundant-size-axes — components/file-uploader.tsx:150
   w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)

230. [warning] design-no-redundant-size-axes — components/file-uploader.tsx:164
   w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)

231. [warning] design-no-three-period-ellipsis — components/file-uploader.tsx:172
   Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)

232. [warning] no-generic-handler-names — components/file-uploader.tsx:199
   Non-descriptive handler name "handleChange" — name should describe what it does, not when it runs

233. [warning] no-react19-deprecated-apis — components/ui/switch.tsx:8
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

⚠️ Warnings (233)

forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly · 169 in 40 files

no-react19-deprecated-apis

Pass ref as a regular prop on function components — forwardRef is no longer needed in React 19+. Replace useContext(X) with use(X) for branch-aware context reads. Only enabled on projects detected as React 19+.

File Lines
components/ui/sidebar.tsx 42, 50, 159, 262, 288, 317, 335, 353, +16 more
components/ui/menubar.tsx 19, 34, 49, 70, 85, 110, 128, 151, +2 more
components/ui/dropdown-menu.tsx 21, 43, 59, 77, 95, 119, 141, 159
components/ui/context-menu.tsx 21, 42, 57, 74, 92, 116, 138, 156
components/ui/table.tsx 5, 19, 27, 39, 54, 69, 84, 96
…and 35 more files view on react.review
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+) · 49 in 22 files

design-no-redundant-size-axes

Collapse w-N h-N to size-N (Tailwind v3.4+) when both axes match

File Lines
app/page.tsx 44, 103, 108, 118, 131, 138
components/ui/context-menu.tsx 37, 105, 107, 128, 130
components/ui/menubar.tsx 65, 141, 143, 163, 165
components/ui/select.tsx 29, 47, 64, 126, 128
components/ui/dropdown-menu.tsx 108, 110, 131, 133
…and 17 more files view on react.review
useEffect calls prop callback "setApi" with local state in deps — this is the "lift state via callback" anti-pattern; lift state into a shared Provider so both sides read the same source · 1 in 1 file

no-prop-callback-in-effect

Lift the shared state into a Provider so both sides read the same source — no useEffect-driven sync needed

File Lines
components/ui/carousel.tsx 106
useEffect re-subscribes a "onSelect" listener every time the handler identity changes — store the handler in a ref and have the listener read `handlerRef.current()`, then drop it from the deps · 1 in 1 file

advanced-event-handler-refs

Store the handler in a ref and have the listener read handlerRef.current() — the subscription stays put while the latest handler is always called

File Lines
components/ui/carousel.tsx 109
The `nav` element has an implicit role of `navigation`. Defining this explicitly is redundant and should be avoided. · 1 in 1 file

no-redundant-roles

Remove the redundant role navigation from the element nav.

File Lines
components/ui/pagination.tsx 9
Unknown property found · 1 in 1 file

no-unknown-property

Remove unknown property

File Lines
components/ui/command.tsx 42
Do not use `dangerouslySetInnerHTML` prop · 1 in 1 file

no-danger

dangerouslySetInnerHTML is a way to inject HTML into your React component. This is dangerous because it can easily lead to XSS vulnerabilities.

File Lines
components/ui/chart.tsx 81
"recharts" is a heavy library — use React.lazy() or next/dynamic for code splitting · 1 in 1 file

prefer-dynamic-import

Use const Component = dynamic(() => import('library'), { ssr: false }) from next/dynamic or React.lazy()

File Lines
components/ui/chart.tsx 4
Headings must have content and the content must be accessible by a screen reader. · 1 in 1 file

heading-has-content

Provide screen reader accessible content when using heading elements.

File Lines
components/ui/alert.tsx 31
Page without metadata or generateMetadata export — hurts SEO · 1 in 1 file

nextjs-missing-metadata

Add export const metadata = { title: '...', description: '...' } or export async function generateMetadata()

File Lines
app/page.tsx 1
useState "pdf2md" is updated but never read in the component's return — use useRef so updates don't trigger re-renders · 1 in 1 file

rerender-state-only-in-handlers

Replace useState with useRef when the value is only mutated and never read in render — ref.current = ... updates without re-rendering the component

File Lines
components/pdf2md-loader.tsx 14
useState initialized from prop "defaultOpen" — if this value should stay in sync with the prop, derive it during render instead · 1 in 1 file

no-derived-useState

Remove useState and compute the value inline: const value = transform(propName)

File Lines
components/ui/sidebar.tsx 75
useMemo wrapping a trivially cheap expression — memo overhead exceeds the computation · 1 in 1 file

no-usememo-simple-expression

Remove useMemo — property access, math, and ternaries are already cheap without memoization

File Lines
components/ui/sidebar.tsx 654
Component "FileUploader" has 5 useState calls — consider useReducer for related state · 1 in 1 file

prefer-useReducer

Group related state: const [state, dispatch] = useReducer(reducer, { field1, field2, ... })

File Lines
components/file-uploader.tsx 20
3 setState calls in a single useEffect — consider using useReducer or deriving state · 1 in 1 file

no-cascading-set-state

Combine into useReducer: const [state, dispatch] = useReducer(reducer, initialState)

File Lines
components/file-uploader.tsx 28
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`) · 1 in 1 file

design-no-three-period-ellipsis

Use the typographic ellipsis "…" (or …) instead of three periods — pairs with action-with-followup labels ("Rename…", "Loading…")

File Lines
components/file-uploader.tsx 172
Non-descriptive handler name "handleChange" — name should describe what it does, not when it runs · 1 in 1 file

no-generic-handler-names

Rename to describe the action: e.g. handleSubmitsaveUserProfile, handleClicktoggleSidebar

File Lines
components/file-uploader.tsx 199

Reviewed by reactreview for commit b7229e4. Configure here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions