#1

React Review Audit

Openreact-doctor[bot]opened 6mo ago

Score: 69/100 · 40 errors · 680 warnings

Copy as prompt
Fix the following React Review diagnostics in my codebase.

## Errors (40)

1. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:30
   Component "DeleteLesson" defined inside "CourseLesson" — creates new instance every render, destroying state

2. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:51
   Component "AddDescriptionToLesson" defined inside "CourseLesson" — creates new instance every render, destroying state

3. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:82
   Component "AddCaptionsToLesson" defined inside "CourseLesson" — creates new instance every render, destroying state

4. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:113
   Component "AddNotesToLesson" defined inside "CourseLesson" — creates new instance every render, destroying state

5. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:145
   Component "AddVideoToLesson" defined inside "CourseLesson" — creates new instance every render, destroying state

6. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:175
   Component "EditLessonName" defined inside "CourseLesson" — creates new instance every render, destroying state

7. [error] rules-of-hooks — src/modules/home/features/watchCourse/WatchCourse.tsx:32
   React Hook "useGetCourseById" is called conditionally. React Hooks must be called in the exact same order in every component render.

8. [error] rules-of-hooks — src/modules/home/features/userProfile/userProfile.tsx:45
   React Hook "useState" is called in function "Anonymous" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use".

9. [error] alt-text — src/modules/home/features/userProfile/_components/Dashbord.tsx:90
   Missing `alt` attribute.

10. [error] alt-text — src/modules/home/features/userProfile/_components/Dashbord.tsx:93
   Missing `alt` attribute.

11. [error] alt-text — src/modules/instructor/layout/MainLayout/MainLayout.tsx:47
   Missing `alt` attribute.

12. [error] alt-text — src/modules/instructor/layout/MainLayout/MainLayout.tsx:59
   Missing `alt` attribute.

13. [error] rules-of-hooks — src/modules/home/features/courseDetails/courseDetails.tsx:41
   React Hook "useParams" is called in function "Anonymous" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use".

14. [error] rules-of-hooks — src/modules/home/features/courseDetails/courseDetails.tsx:44
   React Hook "useGetCourseById" is called in function "Anonymous" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use".

15. [error] rules-of-hooks — src/modules/home/features/courseDetails/courseDetails.tsx:45
   React Hook "useModal" is called in function "Anonymous" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use".

16. [error] alt-text — src/modules/auth/components/SocialMediaBtn/SocialMediaBtn.tsx:21
   Missing `alt` attribute.

17. [error] alt-text — src/modules/auth/components/Button/Button.tsx:17
   Missing `alt` attribute.

18. [error] rules-of-hooks — src/modules/home/features/category/Category.tsx:16
   React Hook "useGetCategoryDetails" is called conditionally. React Hooks must be called in the exact same order in every component render.

19. [error] rules-of-hooks — src/modules/home/data/queries/home.query.ts:22
   React Hook "useQueryClient" is called in function "Anonymous" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use".

20. [error] rules-of-hooks — src/modules/shared/lib/interceptors.ts:51
   React Hook "useAuthStore" cannot be called in an async function.

21. [error] alt-text — src/modules/home/components/topCategory.tsx:127
   Missing `alt` attribute.

22. [error] no-nested-component-definition — src/modules/home/components/Course.tsx:58
   Component "LastThreeMonths" defined inside "Course" — creates new instance every render, destroying state

23. [error] alt-text — src/modules/auth/layout/MainLayout/MainLayout.tsx:18
   Missing `alt` attribute.

24. [error] alt-text — src/modules/shared/components/ui/toaster.tsx:23
   Missing `alt` attribute.

25. [error] alt-text — src/modules/shared/components/ui/toaster.tsx:24
   Missing `alt` attribute.

26. [error] alt-text — src/modules/shared/components/ui/toaster.tsx:25
   Missing `alt` attribute.

27. [error] alt-text — src/modules/shared/components/ui/toaster.tsx:26
   Missing `alt` attribute.

28. [error] jsx-key — src/modules/auth/features/Register/Register.tsx:29
   Missing "key" prop for element in iterator.

29. [error] alt-text — src/modules/auth/features/Register/Register.tsx:13
   Missing `alt` attribute.

30. [error] alt-text — src/modules/shared/components/Header/Header.tsx:93
   Missing `alt` attribute.

31. [error] jsx-key — src/modules/instructor/features/NewCourse/components/Steps/PublishCourse/components/AddInstructor/AddInstructor.tsx:40
   Missing "key" prop for element in iterator.

32. [error] jsx-key — src/modules/auth/features/Login/Login.tsx:59
   Missing "key" prop for element in iterator.

33. [error] alt-text — src/modules/auth/features/Login/Login.tsx:43
   Missing `alt` attribute.

34. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/PublishCourse/PublishCourse.tsx:13
   Component "CreateNewCourse" defined inside "PublishCourse" — creates new instance every render, destroying state

35. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseSection/EditSectionModal.tsx:20
   Component "ChangeSectionNameHandler" defined inside "EditSectionModal" — creates new instance every render, destroying state

36. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseSection/CourseSection.tsx:34
   Component "DeleteSection" defined inside "CourseSection" — creates new instance every render, destroying state

37. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseSection/CourseSection.tsx:47
   Component "EditSectionName" defined inside "CourseSection" — creates new instance every render, destroying state

38. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseSection/CourseSection.tsx:71
   Component "AddLesson" defined inside "CourseSection" — creates new instance every render, destroying state

39. [error] no-nested-component-definition — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/EditLessonModal.tsx:21
   Component "ChangeLessonNameHandler" defined inside "EditLessonModal" — creates new instance every render, destroying state

40. [error] require-reduced-motion — package.json:0
   Project uses a motion library but has no prefers-reduced-motion handling — required for accessibility (WCAG 2.3.3)

## Warnings (680)

41. [warning] no-react19-deprecated-apis — src/modules/home/features/watchCourse/_components/Progress.tsx:5
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

42. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Progress.tsx:18
   bg-slate-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

43. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/CardIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

44. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/CardIcon.tsx:18
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

45. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/CardIcon.tsx:25
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

46. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/CardIcon.tsx:32
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

47. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/CardIcon.tsx:39
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

48. [warning] use-lazy-motion — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:15
   Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size

49. [warning] no-giant-component — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:26
   Component "CourseLesson" is 302 lines — consider breaking it into smaller focused components

50. [warning] no-scale-from-zero — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:222
   scale: 0 makes elements appear from nowhere — use scale: 0.95 with opacity: 0 for natural entrance

51. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/CourseLesson.tsx:234
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

52. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/LecturesDescription.tsx:11
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

53. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/CalendarIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

54. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/CalendarIcon.tsx:32
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

55. [warning] rendering-svg-precision — src/modules/shared/assets/icons/Upload/UploadVideoIcon.tsx:15
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

56. [warning] rendering-svg-precision — src/modules/shared/assets/icons/Upload/UploadVideoIcon.tsx:19
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

57. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/AddVideoModal.tsx:41
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

58. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/components/CourseLesson/AddVideoModal.tsx:42
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

59. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/LectureNotes.tsx:18
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

60. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/AvatarIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

61. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/AvatarIcon.tsx:18
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

62. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/AvatarIcon.tsx:24
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

63. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Stats/AvatarIcon.tsx:30
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

64. [warning] rendering-svg-precision — src/modules/shared/assets/icons/Upload/UploadImageIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

65. [warning] rendering-svg-precision — src/modules/shared/assets/icons/Upload/UploadImageIcon.tsx:21
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

66. [warning] rendering-svg-precision — src/modules/shared/assets/icons/Upload/UploadImageIcon.tsx:28
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

67. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/HeroSection.tsx:24
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

68. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/_components/HeroSection.tsx:26
   w-[50px] h-[50px] → use the shorthand size-[50px] (Tailwind v3.4+)

69. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/HeroSection.tsx:32
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

70. [warning] click-events-have-key-events — src/modules/home/features/watchCourse/_components/Comments.tsx:75
   Enforce a clickable non-interactive element has at least one keyboard event listener.

71. [warning] no-static-element-interactions — src/modules/home/features/watchCourse/_components/Comments.tsx:75
   Static HTML elements with event handlers require a role.

72. [warning] use-lazy-motion — src/modules/home/features/watchCourse/_components/Comments.tsx:2
   Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size

73. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/_components/Comments.tsx:61
   w-[45px] h-[45px] → use the shorthand size-[45px] (Tailwind v3.4+)

74. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:66
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

75. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:68
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

76. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:70
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

77. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:76
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

78. [warning] no-scale-from-zero — src/modules/home/features/watchCourse/_components/Comments.tsx:87
   scale: 0 makes elements appear from nowhere — use scale: 0.95 with opacity: 0 for natural entrance

79. [warning] no-scale-from-zero — src/modules/home/features/watchCourse/_components/Comments.tsx:89
   scale: 0 makes elements appear from nowhere — use scale: 0.95 with opacity: 0 for natural entrance

80. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:91
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

81. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:93
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

82. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:95
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

83. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:99
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

84. [warning] rerender-state-only-in-handlers — src/modules/home/features/watchCourse/_components/Comments.tsx:113
   useState "replayOpen" is updated but never read in the component's return — use useRef so updates don't trigger re-renders

85. [warning] no-array-index-as-key — src/modules/home/features/watchCourse/_components/Comments.tsx:120
   Array index "index" used as key — causes bugs when list is reordered or filtered

86. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:127
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

87. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Comments.tsx:131
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

88. [warning] no-render-in-render — src/modules/home/features/watchCourse/_components/Comments.tsx:133
   Inline render function "renderComments()" — extract to a separate component for proper reconciliation

89. [warning] no-render-in-render — src/modules/home/features/watchCourse/_components/Comments.tsx:148
   Inline render function "renderComments()" — extract to a separate component for proper reconciliation

90. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/AttachFiels.tsx:12
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

91. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/AttachFiels.tsx:12
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

92. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/AttachFiels.tsx:17
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

93. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/SmallLogo.tsx:25
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

94. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:16
   text-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

95. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:40
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

96. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:41
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

97. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/_components/Acordination.tsx:44
   w-[18px] h-[18px] → use the shorthand size-[18px] (Tailwind v3.4+)

98. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:44
   border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

99. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:49
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

100. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:55
   text-gray-300 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

101. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:69
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

102. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:70
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

103. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/_components/Acordination.tsx:73
   w-[18px] h-[18px] → use the shorthand size-[18px] (Tailwind v3.4+)

104. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:73
   border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

105. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:78
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

106. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/Acordination.tsx:84
   text-gray-300 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

107. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Settings.tsx:11
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

108. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Settings.tsx:18
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

109. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/Curriculum/Curriculum.tsx:146
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

110. [warning] no-react19-deprecated-apis — src/modules/home/features/watchCourse/_components/AcordianationUi.tsx:10
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

111. [warning] no-react19-deprecated-apis — src/modules/home/features/watchCourse/_components/AcordianationUi.tsx:18
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

112. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/_components/AcordianationUi.tsx:39
   w-5 h-5 → use the shorthand size-5 (Tailwind v3.4+)

113. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/_components/AcordianationUi.tsx:43
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

114. [warning] no-react19-deprecated-apis — src/modules/home/features/watchCourse/_components/AcordianationUi.tsx:68
   forwardRef is no longer needed on React 19+ — refs are regular props on function components; remove forwardRef and pass ref directly

115. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/NewCourse.tsx:11
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

116. [warning] no-effect-event-handler — src/modules/instructor/features/NewCourse/components/Steps/BasicInformation/BasicInformation.tsx:45
   useEffect simulating an event handler — move logic to an actual event handler instead

117. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:45
   text-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

118. [warning] design-no-space-on-flex-children — src/modules/home/features/watchCourse/WatchCourse.tsx:52
   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

119. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/WatchCourse.tsx:54
   w-10 h-10 → use the shorthand size-10 (Tailwind v3.4+)

120. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:54
   border-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

121. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/WatchCourse.tsx:59
   w-10 h-10 → use the shorthand size-10 (Tailwind v3.4+)

122. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:59
   border-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

123. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/WatchCourse.tsx:64
   w-10 h-10 → use the shorthand size-10 (Tailwind v3.4+)

124. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:64
   border-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

125. [warning] design-no-redundant-size-axes — src/modules/home/features/watchCourse/WatchCourse.tsx:69
   w-10 h-10 → use the shorthand size-10 (Tailwind v3.4+)

126. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:69
   border-gray-800 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

127. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:76
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

128. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:83
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

129. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:89
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

130. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:97
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

131. [warning] design-no-default-tailwind-palette — src/modules/home/features/watchCourse/WatchCourse.tsx:101
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

132. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Message.tsx:13
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

133. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Message.tsx:20
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

134. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Message.tsx:26
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

135. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Message.tsx:32
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

136. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/AdvanceInformation/components/UploadVideo/UploadVideo.tsx:9
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

137. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/AdvanceInformation/components/UploadVideo/UploadVideo.tsx:13
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

138. [warning] click-events-have-key-events — src/modules/home/features/userProfile/userProfile.tsx:90
   Enforce a clickable non-interactive element has at least one keyboard event listener.

139. [warning] no-static-element-interactions — src/modules/home/features/userProfile/userProfile.tsx:90
   Static HTML elements with event handlers require a role.

140. [warning] design-no-redundant-size-axes — src/modules/home/features/userProfile/userProfile.tsx:59
   w-[110px] h-[110px] → use the shorthand size-[110px] (Tailwind v3.4+)

141. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/userProfile.tsx:67
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

142. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/userProfile.tsx:70
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

143. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/userProfile.tsx:87
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

144. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/AdvanceInformation/components/UploadImage/UploadImage.tsx:21
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

145. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/AdvanceInformation/components/UploadImage/UploadImage.tsx:34
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

146. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Earning.tsx:11
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

147. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Earning.tsx:18
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

148. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Earning.tsx:25
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

149. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Sidebar/Earning.tsx:32
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

150. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/AdvanceInformation/AdvanceInformation.tsx:27
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

151. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/Steps/AdvanceInformation/AdvanceInformation.tsx:39
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

152. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:37
   text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

153. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:40
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

154. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:45
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

155. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:50
   text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

156. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:54
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

157. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:58
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

158. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:71
   text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

159. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:75
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

160. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:79
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

161. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:95
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

162. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:98
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

163. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:108
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

164. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Teacher.tsx:109
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

165. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/SaveChanges/SaveChanges.tsx:10
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

166. [warning] no-array-index-as-key — src/modules/home/features/userProfile/_components/Dashbord.tsx:58
   Array index "index" used as key — causes bugs when list is reordered or filtered

167. [warning] design-no-redundant-size-axes — src/modules/home/features/userProfile/_components/Dashbord.tsx:71
   w-[70px] h-[70px] → use the shorthand size-[70px] (Tailwind v3.4+)

168. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Dashbord.tsx:78
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

169. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Dashbord.tsx:79
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

170. [warning] design-no-space-on-flex-children — src/modules/home/features/userProfile/_components/Dashbord.tsx:88
   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

171. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Dashbord.tsx:98
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

172. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Dashbord.tsx:103
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

173. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Dashbord.tsx:106
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

174. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Dashbord.tsx:108
   bg-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

175. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/NavBar/SearchIcon.tsx:13
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

176. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/NavBar/SearchIcon.tsx:20
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

177. [warning] click-events-have-key-events — src/modules/instructor/features/NewCourse/components/MultipleAnswer/MultipleAnswer.tsx:27
   Enforce a clickable non-interactive element has at least one keyboard event listener.

178. [warning] use-lazy-motion — src/modules/instructor/features/NewCourse/components/MultipleAnswer/MultipleAnswer.tsx:2
   Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size

179. [warning] no-derived-useState — src/modules/instructor/features/NewCourse/components/MultipleAnswer/MultipleAnswer.tsx:16
   useState initialized from prop "defaultValue" — if this value should stay in sync with the prop, derive it during render instead

180. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/MultipleAnswer/MultipleAnswer.tsx:22
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

181. [warning] design-no-default-tailwind-palette — src/modules/instructor/features/NewCourse/components/MultipleAnswer/MultipleAnswer.tsx:23
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

182. [warning] no-scale-from-zero — src/modules/instructor/features/NewCourse/components/MultipleAnswer/MultipleAnswer.tsx:47
   scale: 0 makes elements appear from nowhere — use scale: 0.95 with opacity: 0 for natural entrance

183. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:38
   text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

184. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:41
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

185. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:46
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

186. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:51
   text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

187. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:55
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

188. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:59
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

189. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:71
   text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

190. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:75
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

191. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:79
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

192. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:91
   text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

193. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:95
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

194. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:99
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

195. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:113
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

196. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:116
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

197. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:118
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

198. [warning] design-no-default-tailwind-palette — src/modules/home/features/userProfile/_components/Courses.tsx:121
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

199. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/NavBar/Notification.tsx:13
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

200. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/NavBar/Notification.tsx:20
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

201. [warning] no-uncontrolled-input — src/modules/instructor/layout/NavBar/components/search/Search.tsx:9
   <input value={value}> — "value" is initialized as undefined (uncontrolled), then becomes controlled on first set; React warns about this flip. Initialize useState with an explicit value (e.g. `useState("")`)

202. [warning] design-no-default-tailwind-palette — src/modules/instructor/layout/NavBar/components/search/Search.tsx:10
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

203. [warning] design-no-default-tailwind-palette — src/modules/instructor/layout/NavBar/components/search/Search.tsx:10
   placeholder-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

204. [warning] design-no-default-tailwind-palette — src/modules/instructor/layout/NavBar/components/search/Search.tsx:10
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

205. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Dashboard/ActivityCommentIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

206. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Dashboard/ActivityCommentIcon.tsx:18
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

207. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Dashboard/ActivityCommentIcon.tsx:22
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

208. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/Dashboard/ActivityCommentIcon.tsx:26
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

209. [warning] design-no-redundant-size-axes — src/modules/instructor/layout/NavBar/components/Profile/Profile.tsx:11
   w-12 h-12 → use the shorthand size-12 (Tailwind v3.4+)

210. [warning] click-events-have-key-events — src/modules/home/features/courses/_components/courseDetails.tsx:102
   Enforce a clickable non-interactive element has at least one keyboard event listener.

211. [warning] no-static-element-interactions — src/modules/home/features/courses/_components/courseDetails.tsx:102
   Static HTML elements with event handlers require a role.

212. [warning] use-lazy-motion — src/modules/home/features/courses/_components/courseDetails.tsx:4
   Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size

213. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:131
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

214. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:137
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

215. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:141
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

216. [warning] no-array-index-as-key — src/modules/home/features/courses/_components/courseDetails.tsx:143
   Array index "index" used as key — causes bugs when list is reordered or filtered

217. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:166
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

218. [warning] design-no-space-on-flex-children — src/modules/home/features/courses/_components/courseDetails.tsx:169
   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

219. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:172
   w-[18px] h-[18px] → use the shorthand size-[18px] (Tailwind v3.4+)

220. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:172
   text-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

221. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:172
   border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

222. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:176
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

223. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:191
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

224. [warning] design-no-space-on-flex-children — src/modules/home/features/courses/_components/courseDetails.tsx:192
   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

225. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:196
   w-[18px] h-[18px] → use the shorthand size-[18px] (Tailwind v3.4+)

226. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:196
   text-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

227. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:196
   border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

228. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:200
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

229. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:205
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

230. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:214
   w-[300px] h-[300px] → use the shorthand size-[300px] (Tailwind v3.4+)

231. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:215
   w-[300px] h-[300px] → use the shorthand size-[300px] (Tailwind v3.4+)

232. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:216
   w-[300px] h-[300px] → use the shorthand size-[300px] (Tailwind v3.4+)

233. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:217
   w-[300px] h-[300px] → use the shorthand size-[300px] (Tailwind v3.4+)

234. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:219
   w-[300px] h-[300px] → use the shorthand size-[300px] (Tailwind v3.4+)

235. [warning] design-no-redundant-size-axes — src/modules/home/features/courses/_components/courseDetails.tsx:224
   w-[300px] h-[300px] → use the shorthand size-[300px] (Tailwind v3.4+)

236. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:250
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

237. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:268
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

238. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:279
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

239. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:291
   bg-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

240. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:304
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

241. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/courseDetails.tsx:307
   text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

242. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/deleteIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

243. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/deleteIcon.tsx:35
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

244. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/deleteIcon.tsx:42
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

245. [warning] design-no-default-tailwind-palette — src/modules/instructor/layout/NavBar/components/Notifications/Notification.tsx:6
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

246. [warning] design-no-redundant-size-axes — src/modules/instructor/layout/NavBar/components/Notifications/Notification.tsx:7
   w-3 h-3 → use the shorthand size-3 (Tailwind v3.4+)

247. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/Suggestion.tsx:22
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

248. [warning] design-no-default-tailwind-palette — src/modules/home/features/courses/_components/Suggestion.tsx:23
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

249. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/UploadFileIcon.tsx:15
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

250. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/UploadFileIcon.tsx:19
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

251. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/UploadFileIcon.tsx:26
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

252. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/UploadFileIcon.tsx:33
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

253. [warning] design-no-default-tailwind-palette — src/modules/instructor/layout/NavBar/NavBar.tsx:21
   text-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

254. [warning] design-no-default-tailwind-palette — src/modules/instructor/layout/NavBar/NavBar.tsx:22
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

255. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/PublishCourseIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

256. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/PublishCourseIcon.tsx:18
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

257. [warning] click-events-have-key-events — src/modules/instructor/layout/MainLayout/MainLayout.tsx:47
   Enforce a clickable non-interactive element has at least one keyboard event listener.

258. [warning] click-events-have-key-events — src/modules/instructor/layout/MainLayout/MainLayout.tsx:59
   Enforce a clickable non-interactive element has at least one keyboard event listener.

259. [warning] click-events-have-key-events — src/modules/instructor/layout/MainLayout/MainLayout.tsx:99
   Enforce a clickable non-interactive element has at least one keyboard event listener.

260. [warning] no-static-element-interactions — src/modules/instructor/layout/MainLayout/MainLayout.tsx:99
   Static HTML elements with event handlers require a role.

261. [warning] use-lazy-motion — src/modules/instructor/layout/MainLayout/MainLayout.tsx:8
   Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size

262. [warning] no-derived-state-effect — src/modules/instructor/layout/MainLayout/MainLayout.tsx:28
   Derived state in useEffect — compute during render instead

263. [warning] no-array-index-as-key — src/modules/instructor/layout/MainLayout/MainLayout.tsx:80
   Array index "index" used as key — causes bugs when list is reordered or filtered

264. [warning] design-no-default-tailwind-palette — src/modules/instructor/layout/MainLayout/MainLayout.tsx:104
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

265. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/EditIcon.tsx:12
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

266. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/EditIcon.tsx:26
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

267. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/courseDetails.tsx:68
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

268. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/courseDetails.tsx:72
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

269. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:47
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

270. [warning] no-array-index-as-key — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:48
   Array index "index" used as key — causes bugs when list is reordered or filtered

271. [warning] design-no-redundant-size-axes — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:50
   w-[200px] h-[200px] → use the shorthand size-[200px] (Tailwind v3.4+)

272. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:61
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

273. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:65
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

274. [warning] no-array-index-as-key — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:71
   Array index "index" used as key — causes bugs when list is reordered or filtered

275. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:78
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

276. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:79
   text-gray-900 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

277. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/courseInstructor.tsx:87
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

278. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/CurriculumIcon.tsx:14
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

279. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/CurriculumIcon.tsx:18
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

280. [warning] design-no-default-tailwind-palette — src/modules/auth/components/SocialMediaBtn/SocialMediaBtn.tsx:18
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

281. [warning] design-no-default-tailwind-palette — src/modules/auth/components/SocialMediaBtn/SocialMediaBtn.tsx:18
   bg-gray-50 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

282. [warning] design-no-default-tailwind-palette — src/modules/auth/components/SocialMediaBtn/SocialMediaBtn.tsx:20
   border-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

283. [warning] no-array-index-as-key — src/modules/home/features/courseDetails/_components/WhatWillLearnInCourse.tsx:27
   Array index "index" used as key — causes bugs when list is reordered or filtered

284. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/WhatWillLearnInCourse.tsx:29
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

285. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/StudentFeedbackSelect.tsx:15
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

286. [warning] design-no-default-tailwind-palette — src/modules/home/features/courseDetails/_components/StudentFeedbackSelect.tsx:19
   text-gray-700 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)

287. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/CheckedStepIcons.tsx:13
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

288. [warning] rendering-svg-precision — src/modules/instructor/assets/icons/CreateCourse/CheckedStepIcons.tsx:20
   SVG d attribute uses 4+ decimal precision — truncate to 1–2 decimals to shrink markup with no visible difference

289. [warning] design-no-default-tailwind-palette —

---

_Issue body truncated. See the full report at [react.review/dashboard](https://react.review/dashboard)._

Activity

0

No activity yet.