celeroncoder / celeroncoder/themandi
React Review Audit
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
**Score: 83/100** · 2 errors · 357 warnings
Copy as prompt
```text
Fix the following React Review diagnostics in my codebase.
## Errors (2)
1. [error] nextjs-no-side-effect-in-get-handler — themandi/src/app/api/image-proxy/route.ts:7
GET handler has side effects (headers.set()) — use POST to prevent CSRF and unintended prefetch triggers
2. [error] require-reduced-motion — themandi/package.json:0
Project uses a motion library but has no prefers-reduced-motion handling — required for accessibility (WCAG 2.3.3)
## Warnings (357)
3. [warning] no-react19-deprecated-apis — themandi/src/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
4. [warning] no-react19-deprecated-apis — themandi/src/components/ui/accordion.tsx:10
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
5. [warning] no-react19-deprecated-apis — themandi/src/components/ui/accordion.tsx:22
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
6. [warning] design-no-redundant-size-axes — themandi/src/components/ui/accordion.tsx:36
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
7. [warning] no-react19-deprecated-apis — themandi/src/components/ui/accordion.tsx:42
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
8. [warning] nextjs-missing-metadata — themandi/src/app/cart/page.tsx:1
Page without metadata or generateMetadata export — hurts SEO
9. [warning] use-lazy-motion — themandi/src/app/cart/page.tsx:14
Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size
10. [warning] rerender-state-only-in-handlers — themandi/src/app/cart/page.tsx:35
useState "isLoading" is updated but never read in the component's return — use useRef so updates don't trigger re-renders
11. [warning] no-giant-component — themandi/src/app/cart/page.tsx:26
Component "CartPage" is 302 lines — consider breaking it into smaller focused components
12. [warning] react-compiler-destructure-method — themandi/src/app/cart/page.tsx:44
Destructure for clarity: `const { push } = useRouter()` then call `push(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
13. [warning] no-cascading-set-state — themandi/src/app/cart/page.tsx:74
4 setState calls in a single useEffect — consider using useReducer or deriving state
14. [warning] no-effect-event-handler — themandi/src/app/cart/page.tsx:74
useEffect simulating an event handler — move logic to an actual event handler instead
15. [warning] react-compiler-destructure-method — themandi/src/app/cart/page.tsx:109
Destructure for clarity: `const { push } = useRouter()` then call `push(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
16. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:148
w-8 h-8 → use the shorthand size-8 (Tailwind v3.4+)
17. [warning] design-no-bold-heading — themandi/src/app/cart/page.tsx:161
font-bold on
crushes counter shapes at display sizes — use font-semibold (600) or font-medium (500)
18. [warning] react-compiler-destructure-method — themandi/src/app/cart/page.tsx:177
Destructure for clarity: `const { push } = useRouter()` then call `push(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
19. [warning] design-no-space-on-flex-children — themandi/src/app/cart/page.tsx:199
space-x-6 on a flex/grid parent — use gap-x-6 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
20. [warning] design-no-space-on-flex-children — themandi/src/app/cart/page.tsx:216
space-x-2 on a flex/grid parent — use gap-x-2 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
21. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:220
w-6 h-6 → use the shorthand size-6 (Tailwind v3.4+)
22. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:231
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
23. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:239
w-6 h-6 → use the shorthand size-6 (Tailwind v3.4+)
24. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:248
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
25. [warning] design-no-space-on-flex-children — themandi/src/app/cart/page.tsx:253
space-x-4 on a flex/grid parent — use gap-x-4 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
26. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:262
w-8 h-8 → use the shorthand size-8 (Tailwind v3.4+)
27. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:265
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
28. [warning] design-no-redundant-size-axes — themandi/src/app/cart/page.tsx:310
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
29. [warning] design-no-three-period-ellipsis — themandi/src/app/cart/page.tsx:310
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)
30. [warning] no-react19-deprecated-apis — themandi/src/components/ui/select.tsx:20
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
31. [warning] design-no-redundant-size-axes — themandi/src/components/ui/select.tsx:34
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
32. [warning] no-react19-deprecated-apis — themandi/src/components/ui/select.tsx:40
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 — themandi/src/components/ui/select.tsx:57
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
34. [warning] no-react19-deprecated-apis — themandi/src/components/ui/select.tsx:75
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
35. [warning] no-react19-deprecated-apis — themandi/src/components/ui/select.tsx:107
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 — themandi/src/components/ui/select.tsx:119
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
37. [warning] design-no-redundant-size-axes — themandi/src/components/ui/select.tsx:131
w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)
38. [warning] design-no-redundant-size-axes — themandi/src/components/ui/select.tsx:133
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
39. [warning] no-react19-deprecated-apis — themandi/src/components/ui/select.tsx:141
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-default-tailwind-palette — themandi/src/components/image-loader.tsx:76
bg-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
41. [warning] no-react19-deprecated-apis — themandi/src/components/ui/input.tsx:8
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
42. [warning] click-events-have-key-events — themandi/src/app/purchases/page.tsx:187
Enforce a clickable non-interactive element has at least one keyboard event listener.
43. [warning] no-static-element-interactions — themandi/src/app/purchases/page.tsx:187
Static HTML elements with event handlers require a role.
44. [warning] nextjs-missing-metadata — themandi/src/app/purchases/page.tsx:1
Page without metadata or generateMetadata export — hurts SEO
45. [warning] no-giant-component — themandi/src/app/purchases/page.tsx:23
Component "PurchasesPage" is 430 lines — consider breaking it into smaller focused components
46. [warning] design-no-redundant-size-axes — themandi/src/app/purchases/page.tsx:96
w-8 h-8 → use the shorthand size-8 (Tailwind v3.4+)
47. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:109
bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
48. [warning] design-no-bold-heading — themandi/src/app/purchases/page.tsx:114
font-bold on
crushes counter shapes at display sizes — use font-semibold (600) or font-medium (500)
49. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:114
text-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
50. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:117
text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
51. [warning] rendering-hydration-mismatch-time — themandi/src/app/purchases/page.tsx:181
new Date() reachable from JSX renders differently on server vs client — wrap in useEffect+useState (client-only) or add suppressHydrationWarning to the parent if intentional
52. [warning] design-no-redundant-size-axes — themandi/src/app/purchases/page.tsx:150
w-8 h-8 → use the shorthand size-8 (Tailwind v3.4+)
53. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:154
text-gray-300 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
54. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:155
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
55. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:158
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
56. [warning] rendering-hydration-mismatch-time — themandi/src/app/purchases/page.tsx:181
new Date() reachable from JSX renders differently on server vs client — wrap in useEffect+useState (client-only) or add suppressHydrationWarning to the parent if intentional
57. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:174
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
58. [warning] rendering-hydration-mismatch-time — themandi/src/app/purchases/page.tsx:181
new Date() reachable from JSX renders differently on server vs client — wrap in useEffect+useState (client-only) or add suppressHydrationWarning to the parent if intentional
59. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:195
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
60. [warning] design-no-space-on-flex-children — themandi/src/app/purchases/page.tsx:219
space-x-3 on a flex/grid parent — use gap-x-3 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
61. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:220
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
62. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:220
bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
63. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:234
text-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
64. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:237
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
65. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:242
text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
66. [warning] design-no-space-on-flex-children — themandi/src/app/purchases/page.tsx:250
space-x-3 on a flex/grid parent — use gap-x-3 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
67. [warning] design-no-space-on-flex-children — themandi/src/app/purchases/page.tsx:251
space-x-1 on a flex/grid parent — use gap-x-1 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
68. [warning] no-array-index-as-key — themandi/src/app/purchases/page.tsx:256
Array index "index" used as key — causes bugs when list is reordered or filtered
69. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:257
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
70. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:257
bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
71. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:272
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
72. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:272
bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
73. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:273
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
74. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:280
text-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
75. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:283
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
76. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:288
text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
77. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:300
bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
78. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:305
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
79. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:314
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
80. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:314
bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
81. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:327
text-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
82. [warning] design-no-space-on-flex-children — themandi/src/app/purchases/page.tsx:330
space-y-1 on a flex/grid parent — use gap-y-1 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
83. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:331
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
84. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:335
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
85. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:342
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
86. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:353
text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
87. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:372
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
88. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:375
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
89. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:380
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
90. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:383
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
91. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:389
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
92. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:392
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
93. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:398
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
94. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:401
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
95. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:407
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
96. [warning] design-no-default-tailwind-palette — themandi/src/app/purchases/page.tsx:408
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
97. [warning] design-no-redundant-size-axes — themandi/src/app/purchases/page.tsx:438
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
98. [warning] design-no-three-period-ellipsis — themandi/src/app/purchases/page.tsx:438
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)
99. [warning] server-hoist-static-io — themandi/src/app/api/image-proxy/route.ts:30
fs.readFile() in GET route handler reads the same static asset every request — hoist to module scope so the read happens once at module load
100. [warning] server-hoist-static-io — themandi/src/app/api/image-proxy/route.ts:30
fs.readFile() in GET route handler reads the same static asset every request — hoist to module scope so the read happens once at module load
101. [warning] server-fetch-without-revalidate — themandi/src/app/api/image-proxy/route.ts:52
fetch(url) in a Server Component / route handler defaults to forever-caching — pass { next: { revalidate: } } / { next: { tags: [...] } } / { cache: "no-store" } so stale data doesn't quietly persist
102. [warning] no-react19-deprecated-apis — themandi/src/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
103. [warning] no-react19-deprecated-apis — themandi/src/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
104. [warning] no-react19-deprecated-apis — themandi/src/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
105. [warning] no-react19-deprecated-apis — themandi/src/components/ui/card.tsx:44
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
106. [warning] no-react19-deprecated-apis — themandi/src/components/ui/card.tsx:56
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
107. [warning] no-react19-deprecated-apis — themandi/src/components/ui/card.tsx:64
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
108. [warning] nextjs-missing-metadata — themandi/src/app/page.tsx:1
Page without metadata or generateMetadata export — hurts SEO
109. [warning] use-lazy-motion — themandi/src/app/page.tsx:17
Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size
110. [warning] no-full-lodash-import — themandi/src/app/page.tsx:19
Importing entire lodash library — import from 'lodash/functionName' instead
111. [warning] no-giant-component — themandi/src/app/page.tsx:25
Component "HomeContent" is 565 lines — consider breaking it into smaller focused components
112. [warning] react-compiler-destructure-method — themandi/src/app/page.tsx:30
Destructure for clarity: `const { get } = useSearchParams()` then call `get(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
113. [warning] react-compiler-destructure-method — themandi/src/app/page.tsx:31
Destructure for clarity: `const { get } = useSearchParams()` then call `get(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
114. [warning] react-compiler-destructure-method — themandi/src/app/page.tsx:32
Destructure for clarity: `const { get } = useSearchParams()` then call `get(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
115. [warning] react-compiler-destructure-method — themandi/src/app/page.tsx:33
Destructure for clarity: `const { get } = useSearchParams()` then call `get(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
116. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:135
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
117. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:153
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
118. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:171
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
119. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:190
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
120. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:222
from-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
121. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:230
border-gray-300 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
122. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:233
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
123. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:246
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
124. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:246
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
125. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:255
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
126. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:255
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
127. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:258
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
128. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:336
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
129. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:340
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
130. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:340
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
131. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:453
text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
132. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:453
text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
133. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:490
bg-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
134. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:491
w-10 h-10 → use the shorthand size-10 (Tailwind v3.4+)
135. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:491
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
136. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:493
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
137. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:496
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
138. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:553
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
139. [warning] design-no-three-period-ellipsis — themandi/src/app/page.tsx:553
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)
140. [warning] no-inline-bounce-easing — themandi/src/app/page.tsx:558
animate-bounce feels dated and tacky — use a subtle ease-out transform for natural deceleration
141. [warning] design-no-redundant-size-axes — themandi/src/app/page.tsx:558
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
142. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:573
border-gray-300 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
143. [warning] design-no-space-on-flex-children — themandi/src/app/page.tsx:574
space-y-2 on a flex/grid parent — use gap-y-2 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
144. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:575
text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
145. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:578
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
146. [warning] design-no-default-tailwind-palette — themandi/src/app/page.tsx:581
bg-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
147. [warning] no-react19-deprecated-apis — themandi/src/components/ui/button.tsx:43
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
148. [warning] use-lazy-motion — themandi/src/app/_component/product-card.tsx:20
Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size
149. [warning] design-no-redundant-size-axes — themandi/src/app/_component/product-card.tsx:111
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
150. [warning] design-no-bold-heading — themandi/src/app/_component/product-card.tsx:118
font-bold on
crushes counter shapes at display sizes — use font-semibold (600) or font-medium (500)
151. [warning] design-no-default-tailwind-palette — themandi/src/app/_component/product-card.tsx:131
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
152. [warning] design-no-default-tailwind-palette — themandi/src/app/_component/product-card.tsx:147
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
153. [warning] design-no-default-tailwind-palette — themandi/src/app/_component/product-card.tsx:168
text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
154. [warning] rendering-hydration-mismatch-time — themandi/src/app/_component/product-card.tsx:175
new Date() reachable from JSX renders differently on server vs client — wrap in useEffect+useState (client-only) or add suppressHydrationWarning to the parent if intentional
155. [warning] design-no-default-tailwind-palette — themandi/src/app/_component/product-card.tsx:173
text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
156. [warning] rendering-hydration-mismatch-time — themandi/src/app/_component/product-card.tsx:175
new Date() reachable from JSX renders differently on server vs client — wrap in useEffect+useState (client-only) or add suppressHydrationWarning to the parent if intentional
157. [warning] rendering-hydration-mismatch-time — themandi/src/app/_component/product-card.tsx:181
new Date() reachable from JSX renders differently on server vs client — wrap in useEffect+useState (client-only) or add suppressHydrationWarning to the parent if intentional
158. [warning] design-no-default-tailwind-palette — themandi/src/app/_component/product-card.tsx:179
text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
159. [warning] rendering-hydration-mismatch-time — themandi/src/app/_component/product-card.tsx:181
new Date() reachable from JSX renders differently on server vs client — wrap in useEffect+useState (client-only) or add suppressHydrationWarning to the parent if intentional
160. [warning] design-no-redundant-size-axes — themandi/src/app/_component/product-card.tsx:202
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
161. [warning] design-no-three-period-ellipsis — themandi/src/app/_component/product-card.tsx:203
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)
162. [warning] design-no-redundant-size-axes — themandi/src/app/_component/product-card.tsx:210
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
163. [warning] nextjs-missing-metadata — themandi/src/app/checkout/success/page.tsx:1
Page without metadata or generateMetadata export — hurts SEO
164. [warning] use-lazy-motion — themandi/src/app/checkout/success/page.tsx:10
Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size
165. [warning] rerender-state-only-in-handlers — themandi/src/app/checkout/success/page.tsx:13
useState "isProcessing" is updated but never read in the component's return — use useRef so updates don't trigger re-renders
166. [warning] no-cascading-set-state — themandi/src/app/checkout/success/page.tsx:19
3 setState calls in a single useEffect — consider using useReducer or deriving state
167. [warning] react-compiler-destructure-method — themandi/src/app/checkout/success/page.tsx:21
Destructure for clarity: `const { get } = useSearchParams()` then call `get(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
168. [warning] design-no-redundant-size-axes — themandi/src/app/checkout/success/page.tsx:51
w-12 h-12 → use the shorthand size-12 (Tailwind v3.4+)
169. [warning] design-no-default-tailwind-palette — themandi/src/app/checkout/success/page.tsx:56
text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
170. [warning] design-no-three-period-ellipsis — themandi/src/app/checkout/success/page.tsx:57
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)
171. [warning] no-scale-from-zero — themandi/src/app/checkout/success/page.tsx:71
scale: 0 makes elements appear from nowhere — use scale: 0.95 with opacity: 0 for natural entrance
172. [warning] no-gradient-text — themandi/src/app/checkout/success/page.tsx:78
Gradient text (bg-clip-text + bg-gradient) is decorative rather than meaningful — a common AI tell. Use solid colors for text
173. [warning] design-no-bold-heading — themandi/src/app/checkout/success/page.tsx:82
font-bold on
crushes counter shapes at display sizes — use font-semibold (600) or font-medium (500)
174. [warning] design-no-default-tailwind-palette — themandi/src/app/checkout/success/page.tsx:91
text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
175. [warning] design-no-redundant-size-axes — themandi/src/app/checkout/success/page.tsx:104
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
176. [warning] design-no-redundant-size-axes — themandi/src/app/checkout/success/page.tsx:114
w-8 h-8 → use the shorthand size-8 (Tailwind v3.4+)
177. [warning] design-no-redundant-size-axes — themandi/src/app/_component/header.tsx:54
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
178. [warning] design-no-redundant-size-axes — themandi/src/app/_component/header.tsx:55
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
179. [warning] design-no-redundant-size-axes — themandi/src/app/_component/header.tsx:57
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
180. [warning] design-no-redundant-size-axes — themandi/src/app/_component/header.tsx:67
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
181. [warning] server-sequential-independent-await — themandi/src/server/api/routers/analytics.ts:26
Sequential `await` without a data dependency on the previous result — wrap the independent calls in `Promise.all([...])` so they race instead of waterfalling
182. [warning] async-parallel — themandi/src/server/api/routers/analytics.ts:24
3 sequential await statements that appear independent — use Promise.all() for parallel execution
183. [warning] js-index-maps — themandi/src/server/api/routers/analytics.ts:193
array.find() in a loop is O(n*m) — build a Map for O(1) lookups
184. [warning] server-sequential-independent-await — themandi/src/server/api/routers/analytics.ts:227
Sequential `await` without a data dependency on the previous result — wrap the independent calls in `Promise.all([...])` so they race instead of waterfalling
185. [warning] async-parallel — themandi/src/server/api/routers/analytics.ts:225
3 sequential await statements that appear independent — use Promise.all() for parallel execution
186. [warning] no-react19-deprecated-apis — themandi/src/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
187. [warning] no-react19-deprecated-apis — themandi/src/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
188. [warning] no-react19-deprecated-apis — themandi/src/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
189. [warning] no-react19-deprecated-apis — themandi/src/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
190. [warning] design-no-redundant-size-axes — themandi/src/components/ui/toast.tsx:86
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
191. [warning] no-react19-deprecated-apis — themandi/src/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
192. [warning] no-react19-deprecated-apis — themandi/src/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
193. [warning] no-react19-deprecated-apis — themandi/src/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
194. [warning] no-react19-deprecated-apis — themandi/src/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
195. [warning] no-react19-deprecated-apis — themandi/src/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
196. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/input.tsx:8
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
197. [warning] prefer-dynamic-import — themandi-admin/src/app/_components/revenue-chart.tsx:4
"recharts" is a heavy library — use React.lazy() or next/dynamic for code splitting
198. [warning] design-no-redundant-size-axes — themandi-admin/src/app/_components/revenue-chart.tsx:190
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
199. [warning] design-no-redundant-size-axes — themandi-admin/src/app/_components/revenue-chart.tsx:196
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
200. [warning] design-no-redundant-size-axes — themandi-admin/src/app/_components/revenue-chart.tsx:206
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
201. [warning] no-react19-deprecated-apis — themandi-admin/src/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'`
202. [warning] no-react19-deprecated-apis — themandi-admin/src/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'`
203. [warning] no-react19-deprecated-apis — themandi-admin/src/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
204. [warning] no-react19-deprecated-apis — themandi-admin/src/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
205. [warning] no-react19-deprecated-apis — themandi-admin/src/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
206. [warning] no-react19-deprecated-apis — themandi-admin/src/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
207. [warning] no-react19-deprecated-apis — themandi-admin/src/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
208. [warning] design-no-space-on-flex-children — themandi-admin/src/app/_components/recent-sales.tsx:20
space-x-4 on a flex/grid parent — use gap-x-4 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
209. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/dropdown-menu.tsx:25
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 — themandi-admin/src/components/ui/dropdown-menu.tsx:47
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 — themandi-admin/src/components/ui/dropdown-menu.tsx:63
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 — themandi-admin/src/components/ui/dropdown-menu.tsx:82
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 — themandi-admin/src/components/ui/dropdown-menu.tsx:100
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
214. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/dropdown-menu.tsx:113
w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)
215. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/dropdown-menu.tsx:115
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
216. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/dropdown-menu.tsx:124
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
217. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/dropdown-menu.tsx:136
w-3.5 h-3.5 → use the shorthand size-3.5 (Tailwind v3.4+)
218. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/dropdown-menu.tsx:138
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
219. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/dropdown-menu.tsx:146
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 — themandi-admin/src/components/ui/dropdown-menu.tsx:164
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
221. [warning] server-sequential-independent-await — themandi-admin/src/app/_components/analytics-card.tsx:7
Sequential `await` without a data dependency on the previous result — wrap the independent calls in `Promise.all([...])` so they race instead of waterfalling
222. [warning] async-parallel — themandi-admin/src/app/_components/analytics-card.tsx:6
3 sequential await statements that appear independent — use Promise.all() for parallel execution
223. [warning] design-no-redundant-padding-axes — themandi-admin/src/app/_components/analytics-card.tsx:32
px-6 py-6 → use the shorthand p-6
224. [warning] no-react19-deprecated-apis — themandi-admin/src/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
225. [warning] no-react19-deprecated-apis — themandi-admin/src/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
226. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/dialog.tsx:48
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
227. [warning] no-react19-deprecated-apis — themandi-admin/src/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
228. [warning] no-react19-deprecated-apis — themandi-admin/src/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
229. [warning] no-react19-deprecated-apis — themandi-admin/src/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
230. [warning] async-await-in-loop — themandi-admin/src/server/seed.ts:426
await inside a for…of loop runs the calls sequentially — for independent operations, collect them and use `await Promise.all(items.map(...))` to run them concurrently
231. [warning] async-await-in-loop — themandi-admin/src/server/seed.ts:442
await inside a for…of loop runs the calls sequentially — for independent operations, collect them and use `await Promise.all(items.map(...))` to run them concurrently
232. [warning] async-await-in-loop — themandi-admin/src/server/seed.ts:461
await inside a for-loop runs the calls sequentially — for independent operations, collect them and use `await Promise.all(items.map(...))` to run them concurrently
233. [warning] async-await-in-loop — themandi-admin/src/server/seed.ts:594
await inside a for-loop runs the calls sequentially — for independent operations, collect them and use `await Promise.all(items.map(...))` to run them concurrently
234. [warning] no-danger — themandi-admin/src/components/ui/chart.tsx:86
Do not use `dangerouslySetInnerHTML` prop
235. [warning] prefer-dynamic-import — themandi-admin/src/components/ui/chart.tsx:4
"recharts" is a heavy library — use React.lazy() or next/dynamic for code splitting
236. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/chart.tsx:33
useContext is superseded by `use()` on React 19+ — `use()` reads context conditionally inside hooks, branches, and loops; switch to `import { use } from 'react'`
237. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/chart.tsx:42
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
238. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/chart.tsx:110
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
239. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/chart.tsx:267
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
240. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/chart.tsx:309
w-2 h-2 → use the shorthand size-2 (Tailwind v3.4+)
241. [warning] prefer-useReducer — themandi-admin/src/app/(dashboard)/users/_components/user-table/index.tsx:43
Component "UserTable" has 6 useState calls — consider useReducer for related state
242. [warning] js-combine-iterations — themandi-admin/src/app/(dashboard)/users/_components/user-table/index.tsx:112
.filter().map() iterates the array twice — combine into a single loop with .reduce() or for...of
243. [warning] design-no-space-on-flex-children — themandi-admin/src/app/(dashboard)/users/_components/user-table/index.tsx:182
space-x-2 on a flex/grid parent — use gap-x-2 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
244. [warning] heading-has-content — themandi-admin/src/components/ui/card.tsx:36
Headings must have content and the content must be accessible by a screen reader.
245. [warning] no-react19-deprecated-apis — themandi-admin/src/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
246. [warning] no-react19-deprecated-apis — themandi-admin/src/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
247. [warning] no-react19-deprecated-apis — themandi-admin/src/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
248. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/card.tsx:44
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
249. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/card.tsx:56
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
250. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/card.tsx:64
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
251. [warning] no-react19-deprecated-apis — themandi-admin/src/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
252. [warning] no-react19-deprecated-apis — themandi-admin/src/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
253. [warning] no-react19-deprecated-apis — themandi-admin/src/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
254. [warning] no-react19-deprecated-apis — themandi-admin/src/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
255. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/toast.tsx:86
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
256. [warning] no-react19-deprecated-apis — themandi-admin/src/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
257. [warning] no-react19-deprecated-apis — themandi-admin/src/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
258. [warning] js-hoist-intl — themandi-admin/src/app/(dashboard)/users/_components/user-table/columns.tsx:39
new Intl.NumberFormat() inside a function — hoist to module scope or wrap in useMemo so it isn't recreated each call
259. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/calendar.tsx:63
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
260. [warning] design-no-redundant-size-axes — themandi-admin/src/components/ui/calendar.tsx:64
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
261. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/textarea.tsx:8
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
262. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/button.tsx:43
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
263. [warning] no-react19-deprecated-apis — themandi-admin/src/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
264. [warning] no-react19-deprecated-apis — themandi-admin/src/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
265. [warning] no-react19-deprecated-apis — themandi-admin/src/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
266. [warning] no-react19-deprecated-apis — themandi-admin/src/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
267. [warning] no-react19-deprecated-apis — themandi-admin/src/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
268. [warning] no-react19-deprecated-apis — themandi-admin/src/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
269. [warning] no-react19-deprecated-apis — themandi-admin/src/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
270. [warning] no-react19-deprecated-apis — themandi-admin/src/components/ui/table.tsx:99
forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly
271. [warning] js-combine-iterations — themandi-admin/src/app/(dashboard)/products/_components/product-table/index.tsx:169
.filter().map() iterates the array twice — combine into a single loop with .reduce() or for...of
272. [warning] design-no-space-on-flex-children — themandi-admin/src/app/(dashboard)/products/_components/product-table/index.tsx:239
space-x-2 on a flex/grid parent — use gap-x-2 instead. Per-sibling margins phantom-gap on conditional render and don't mirror in RTL
273. [warning] no-react19-deprecated-apis — themandi-admin/src/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
274. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-table/columns.tsx:67
w-10 h-10 → use the shorthand size-10 (Tailwind v3.4+)
275. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-table/columns.tsx:77
w-10 h-10 → use the shorthand size-10 (Tailwind v3.4+)
276. [warning] js-hoist-intl — themandi-admin/src/app/(dashboard)/products/_components/product-table/columns.tsx:90
new Intl.NumberFormat() inside a function — hoist to module scope or wrap in useMemo so it isn't recreated each call
277. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-table/columns.tsx:116
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
278. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-table/columns.tsx:118
w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)
279. [warning] design-no-default-tailwind-palette — themandi-admin/src/app/(dashboard)/products/_components/product-table/columns.tsx:118
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
280. [warning] js-hoist-intl — themandi-admin/src/app/(dashboard)/products/_components/product-table/columns.tsx:205
new Intl.NumberFormat() inside a function — hoist to module scope or wrap in useMemo so it isn't recreated each call
281. [warning] no-giant-component — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:71
Component "ProductCreateDialog" is 442 lines — consider breaking it into smaller focused components
282. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:278
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
283. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:315
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
284. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:375
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
285. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:382
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
286. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:427
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
287. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:434
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
288. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:475
w-4 h-4 → use the shorthand size-4 (Tailwind v3.4+)
289. [warning] design-no-redundant-size-axes — themandi-admin/src/app/(dashboard)/products/_components/product-create-dialog.tsx:482
w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)
290. [warning] no-react19-deprecated-apis — themandi-admin/src/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'`
291. [warning] no-react19-deprecated-apis — themandi-admin/src/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
292. [warning] no-react19-deprecated-apis — themandi-admin/src/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
293. [warning] no-react19-deprecated-apis — themandi-admin/src/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
294. [warning] no-react19-deprecated-apis — themandi-admin/src/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
295. [warning] no-react19-deprecated-apis — themandi-admin/src/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
296. [warning] no-react19-deprecated-apis — themandi-admin/src/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
297. [warning] no-react19-deprecated-apis — themandi-admin/src/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
298. [warning] no-react19-deprecated-apis — themandi-admin/src/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
299. [warning] no-react19-deprecated-apis — themandi-admin/src/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
300. [warning] no-react19-deprecated-apis — themandi-admin/src/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
301. [warning] no-react19-deprecated-apis — themandi-admin/src/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
302. [warning] no-react19-deprecated-apis — themandi-admin/src/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
303. [warning] no-react19-deprecated-apis — themandi-admin/src/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
304. [warning] no-react19-deprecated-apis — themandi-admin/src/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
305. [warning] no-react19-deprecated-apis — themandi-admin/src/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
306. [warning] no-react19-deprecated-apis — themandi-admin/src/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
307. [warning] no-react19-deprecated-apis — themandi-admin/src/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
308. [warning] no-react19-deprecated-apis — themandi-admin/src/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
309. [warning] no-react19-deprecated-apis — themandi-admin/src/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
310. [warning] no-react19-deprecated-apis — themandi-admin/src/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
311. [warning] no-usememo-simple-expression — themandi-admin/src/components/ui/sidebar.tsx:654
useMemo wrapping a trivially cheap expression — memo overhead exceeds the computation
312. [warning] no-react19-deprecated-apis — themandi-admin/src/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
313. [warning] no-react19-deprecated-apis — themandi-admin/src/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
314. [warning] no-react19-deprecated-apis — themandi-admin/src/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
315. [warning] design-no-space-on-flex-children — themandi-admin/src/components/table-skeleton.tsx:42
space-x-2 on a flex/grid parent — use gap-x-2 instead. Per-sibling margins phantom-gap on conditional render and
---
_Issue body truncated. See the full report at [react.review/dashboard](https://react.review/dashboard)._
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.