Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

React Review Audit

Aperta
#1 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
nextjs, react, tailwindcss, typescript

Direzione di ricerca

Inizia dai punti di ingresso elencati: themandi/src/app/api/image-proxy/route.ts e themandi/package.json, quindi passa in rassegna le pagine e i componenti UI referenziati in themandi/src/app e themandi/src/components. Usa l’elenco diagnostico per guidare ogni modifica; il lavoro è completato quando sono stati risolti i due errori e tutti i 357 avvisi di questo audit, inclusi l’interazione accessibile e il supporto a reduced-motion.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Score: 83/100 · 2 errors · 357 warnings

Copy as prompt
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 <h1> 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 `&hellip;`)

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 <h1> 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 `&hellip;`)

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: <seconds> } } / { 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 `&hellip;`)

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 <h3> 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 `&hellip;`)

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 `&hellip;`)

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 <h1> 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)._
Lingua principale
TypeScript
Stelle
0
Fork
2
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.