Fix the following React Review diagnostics in my codebase.
## Errors (68)
1. [error] rn-no-deprecated-modules — src/screens/category/UpdateCategory.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
2. [error] rn-no-deprecated-modules — src/screens/home/AdminHomeScreen.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
3. [error] rn-no-deprecated-modules — src/screens/document/DocumentScreen.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
4. [error] rn-no-deprecated-modules — src/screens/post/CreateReport.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
5. [error] jsx-key — src/screens/field/AdminField.jsx:72
Missing "key" prop for element in array.
6. [error] jsx-key — src/screens/field/AdminField.jsx:74
Missing "key" prop for element in array.
7. [error] jsx-key — src/screens/field/AdminField.jsx:76
Missing "key" prop for element in array.
8. [error] rn-no-deprecated-modules — src/screens/field/AdminField.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
9. [error] jsx-key — src/screens/post/PostListAdmin.jsx:116
Missing "key" prop for element in array.
10. [error] jsx-key — src/screens/post/PostListAdmin.jsx:118
Missing "key" prop for element in array.
11. [error] jsx-key — src/screens/post/PostListAdmin.jsx:127
Missing "key" prop for element in array.
12. [error] rn-no-deprecated-modules — src/screens/post/PostListAdmin.jsx:6
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
13. [error] rn-no-deprecated-modules — src/screens/profile/Profile.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
14. [error] jsx-key — src/screens/report/DocumentReported.jsx:37
Missing "key" prop for element in array.
15. [error] jsx-key — src/screens/report/DocumentReported.jsx:40
Missing "key" prop for element in array.
16. [error] jsx-key — src/screens/report/DocumentReported.jsx:40
Missing "key" prop for element in array.
17. [error] jsx-key — src/screens/report/DocumentReported.jsx:41
Missing "key" prop for element in array.
18. [error] rn-no-deprecated-modules — src/screens/report/DocumentReported.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
19. [error] rn-no-deprecated-modules — src/screens/post/UpdatePost.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
20. [error] rn-no-deprecated-modules — src/screens/tag/AddTag.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
21. [error] rn-no-deprecated-modules — src/screens/profile/UpdateProfile.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
22. [error] jsx-key — src/screens/report/PostReported.jsx:36
Missing "key" prop for element in array.
23. [error] jsx-key — src/screens/report/PostReported.jsx:39
Missing "key" prop for element in array.
24. [error] jsx-key — src/screens/report/PostReported.jsx:39
Missing "key" prop for element in array.
25. [error] jsx-key — src/screens/report/PostReported.jsx:40
Missing "key" prop for element in array.
26. [error] rn-no-deprecated-modules — src/screens/report/PostReported.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
27. [error] rn-no-deprecated-modules — src/screens/auth/Login.jsx:9
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
28. [error] rn-no-deprecated-modules — src/screens/tag/UpdateTag.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
29. [error] rn-no-deprecated-modules — src/navigators/ExploreNavigator.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
30. [error] rn-no-deprecated-modules — src/screens/auth/Signup.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
31. [error] rn-no-deprecated-modules — src/screens/document/CreateReport.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
32. [error] jsx-key — src/screens/document/DocumentListAdmin.jsx:118
Missing "key" prop for element in array.
33. [error] jsx-key — src/screens/document/DocumentListAdmin.jsx:120
Missing "key" prop for element in array.
34. [error] jsx-key — src/screens/document/DocumentListAdmin.jsx:128
Missing "key" prop for element in array.
35. [error] jsx-key — src/screens/document/DocumentListAdmin.jsx:132
Missing "key" prop for element in array.
36. [error] jsx-key — src/screens/document/DocumentListAdmin.jsx:140
Missing "key" prop for element in array.
37. [error] rn-no-deprecated-modules — src/screens/document/DocumentListAdmin.jsx:5
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
38. [error] rn-no-deprecated-modules — src/screens/document/DocumentSearch.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
39. [error] rn-no-deprecated-modules — src/screens/field/AddField.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
40. [error] rn-no-deprecated-modules — src/screens/AddDocument.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
41. [error] rn-no-deprecated-modules — src/screens/field/UpdateField.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
42. [error] rn-no-deprecated-modules — src/screens/post/CreatePost.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
43. [error] rn-no-deprecated-modules — src/screens/category/AddCategory.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
44. [error] rn-no-deprecated-modules — src/screens/post/PostSearch.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
45. [error] rn-no-deprecated-modules — src/screens/document/DocumentDetailScreen.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
46. [error] rn-no-deprecated-modules — src/screens/profile/OtherUserProfile.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
47. [error] rn-no-deprecated-modules — src/screens/profile/UpdatePassword.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
48. [error] rn-no-deprecated-modules — src/screens/document/EditDocumentScreen.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
49. [error] jsx-key — src/screens/user/AdminUser.jsx:92
Missing "key" prop for element in array.
50. [error] jsx-key — src/screens/user/AdminUser.jsx:96
Missing "key" prop for element in array.
51. [error] jsx-key — src/screens/user/AdminUser.jsx:96
Missing "key" prop for element in array.
52. [error] jsx-key — src/screens/user/AdminUser.jsx:101
Missing "key" prop for element in array.
53. [error] jsx-key — src/screens/user/AdminUser.jsx:103
Missing "key" prop for element in array.
54. [error] jsx-key — src/screens/user/AdminUser.jsx:105
Missing "key" prop for element in array.
55. [error] rn-no-deprecated-modules — src/screens/user/AdminUser.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
56. [error] rn-no-deprecated-modules — src/screens/report/PostReportDetail.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
57. [error] rn-no-deprecated-modules — src/screens/report/DocumentReportDetail.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
58. [error] jsx-key — src/screens/tag/AdminTag.jsx:82
Missing "key" prop for element in array.
59. [error] jsx-key — src/screens/tag/AdminTag.jsx:84
Missing "key" prop for element in array.
60. [error] jsx-key — src/screens/tag/AdminTag.jsx:86
Missing "key" prop for element in array.
61. [error] rn-no-deprecated-modules — src/screens/tag/AdminTag.jsx:4
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
62. [error] rn-no-deprecated-modules — src/components/AddDocumentModal.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
63. [error] rn-no-deprecated-modules — src/screens/AddPost.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
64. [error] rn-no-deprecated-modules — src/screens/auth/ForgetPassword.jsx:3
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
65. [error] jsx-key — src/screens/category/AdminCategory.jsx:72
Missing "key" prop for element in array.
66. [error] jsx-key — src/screens/category/AdminCategory.jsx:74
Missing "key" prop for element in array.
67. [error] jsx-key — src/screens/category/AdminCategory.jsx:76
Missing "key" prop for element in array.
68. [error] rn-no-deprecated-modules — src/screens/category/AdminCategory.jsx:1
"SafeAreaView" was removed from react-native — use react-native-safe-area-context instead
## Warnings (329)
69. [warning] rn-prefer-expo-image — src/screens/auth/Onboarding.jsx:2
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
70. [warning] rn-prefer-pressable — src/screens/auth/Onboarding.jsx:2
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
71. [warning] rn-no-single-element-style-array — src/screens/auth/Onboarding.jsx:12
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
72. [warning] rn-no-single-element-style-array — src/screens/auth/Onboarding.jsx:55
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
73. [warning] react-compiler-destructure-method — src/screens/auth/Onboarding.jsx:69
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
74. [warning] rerender-functional-setstate — src/screens/auth/Onboarding.jsx:72
setIndex(index + ...) — use functional update to avoid stale closures
75. [warning] react-compiler-destructure-method — src/screens/auth/Onboarding.jsx:72
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
76. [warning] no-barrel-import — src/navigators/ProfileNavigator.jsx:6
Import from barrel/index file — import directly from "../screens/profile/UpdatePassword" for better tree-shaking
77. [warning] rn-prefer-pressable — src/screens/category/UpdateCategory.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
78. [warning] react-compiler-destructure-method — src/screens/category/UpdateCategory.jsx:30
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
79. [warning] react-compiler-destructure-method — src/screens/category/UpdateCategory.jsx:50
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
80. [warning] design-no-default-tailwind-palette — src/screens/category/UpdateCategory.jsx:59
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
81. [warning] rn-prefer-pressable — src/screens/home/AdminHomeScreen.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
82. [warning] rn-prefer-content-inset-adjustment — src/screens/home/AdminHomeScreen.jsx:47
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-area handling
83. [warning] design-no-default-tailwind-palette — src/screens/home/AdminHomeScreen.jsx:47
bg-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
84. [warning] design-no-default-tailwind-palette — src/screens/home/AdminHomeScreen.jsx:80
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
85. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:95
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
86. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:107
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
87. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:122
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
88. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:135
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
89. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:150
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
90. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:162
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
91. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:177
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
92. [warning] react-compiler-destructure-method — src/screens/home/AdminHomeScreen.jsx:189
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
93. [warning] rn-prefer-pressable — src/screens/document/DocumentScreen.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
94. [warning] react-compiler-destructure-method — src/screens/document/DocumentScreen.jsx:62
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
95. [warning] rn-no-single-element-style-array — src/screens/document/DocumentScreen.jsx:66
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
96. [warning] react-compiler-destructure-method — src/screens/document/DocumentScreen.jsx:90
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
97. [warning] design-no-three-period-ellipsis — src/screens/document/DocumentScreen.jsx:91
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)
98. [warning] rn-no-inline-flatlist-renderitem — src/screens/document/DocumentScreen.jsx:116
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
99. [warning] rn-list-callback-per-row — src/screens/document/DocumentScreen.jsx:117
Inline onPress arrow inside renderItem creates a fresh closure per row — hoist with useCallback at list scope and pass the row id as a primitive prop
100. [warning] rn-no-inline-object-in-list-item — src/screens/document/DocumentScreen.jsx:119
Inline object literal on "style" inside renderItem — allocates a fresh reference per row and breaks memo() on the row component. Hoist outside renderItem or pass primitives
101. [warning] rn-no-inline-flatlist-renderitem — src/screens/document/DocumentScreen.jsx:142
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
102. [warning] rn-prefer-pressable — src/screens/post/CreateReport.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
103. [warning] react-compiler-destructure-method — src/screens/post/CreateReport.jsx:51
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
104. [warning] react-compiler-destructure-method — src/screens/post/CreateReport.jsx:59
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
105. [warning] rn-prefer-pressable — src/screens/field/AdminField.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
106. [warning] react-compiler-destructure-method — src/screens/field/AdminField.jsx:55
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
107. [warning] rn-prefer-content-inset-adjustment — src/screens/field/AdminField.jsx:87
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-area handling
108. [warning] react-compiler-destructure-method — src/screens/field/AdminField.jsx:91
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
109. [warning] react-compiler-destructure-method — src/screens/field/AdminField.jsx:110
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
110. [warning] rn-prefer-expo-image — src/screens/post/PostListAdmin.jsx:5
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
111. [warning] rn-prefer-pressable — src/screens/post/PostListAdmin.jsx:8
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
112. [warning] rn-prefer-content-inset-adjustment — src/screens/post/PostListAdmin.jsx:135
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-area handling
113. [warning] react-compiler-destructure-method — src/screens/post/PostListAdmin.jsx:139
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
114. [warning] rn-no-dimensions-get — src/screens/post/PostListAdmin.jsx:158
Dimensions.get() does not update on screen rotation or resize — use useWindowDimensions() for reactive layout
115. [warning] rn-prefer-expo-image — src/components/CommentRender.jsx:2
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
116. [warning] rn-prefer-pressable — src/components/CommentRender.jsx:2
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
117. [warning] design-no-default-tailwind-palette — src/components/CommentRender.jsx:19
bg-slate-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
118. [warning] design-no-default-tailwind-palette — src/components/CommentRender.jsx:20
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
119. [warning] react-compiler-destructure-method — src/components/CommentRender.jsx:22
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
120. [warning] rn-prefer-expo-image — src/screens/profile/Profile.jsx:1
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
121. [warning] rn-prefer-content-inset-adjustment — src/screens/profile/Profile.jsx:52
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-area handling
122. [warning] react-compiler-destructure-method — src/screens/profile/Profile.jsx:91
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
123. [warning] react-compiler-destructure-method — src/screens/profile/Profile.jsx:100
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
124. [warning] design-no-default-tailwind-palette — src/screens/profile/Profile.jsx:116
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 — src/screens/profile/Profile.jsx:123
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 — src/screens/profile/Profile.jsx:127
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
127. [warning] design-no-default-tailwind-palette — src/screens/profile/Profile.jsx:133
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
128. [warning] design-no-default-tailwind-palette — src/screens/profile/Profile.jsx:141
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
129. [warning] design-no-default-tailwind-palette — src/screens/profile/Profile.jsx:144
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
130. [warning] design-no-default-tailwind-palette — src/screens/profile/Profile.jsx:145
text-gray-400 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
131. [warning] rn-prefer-expo-image — src/components/PostVerticalItem.jsx:1
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
132. [warning] rn-prefer-pressable — src/components/PostVerticalItem.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
133. [warning] react-compiler-destructure-method — src/components/PostVerticalItem.jsx:52
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
134. [warning] design-no-default-tailwind-palette — src/components/PostVerticalItem.jsx:64
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
135. [warning] react-compiler-destructure-method — src/components/PostVerticalItem.jsx:93
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
136. [warning] react-compiler-destructure-method — src/components/PostVerticalItem.jsx:100
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
137. [warning] react-compiler-destructure-method — src/components/PostVerticalItem.jsx:114
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
138. [warning] design-no-default-tailwind-palette — src/components/PostVerticalItem.jsx:118
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
139. [warning] rn-prefer-expo-image — src/screens/post/PostDetail.jsx:1
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
140. [warning] rn-prefer-pressable — src/screens/post/PostDetail.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
141. [warning] no-giant-component — src/screens/post/PostDetail.jsx:16
Component "PostDetail" is 502 lines — consider breaking it into smaller focused components
142. [warning] prefer-useReducer — src/screens/post/PostDetail.jsx:16
Component "PostDetail" has 9 useState calls — consider useReducer for related state
143. [warning] rerender-state-only-in-handlers — src/screens/post/PostDetail.jsx:25
useState "isModalVisible" is updated but never read in the component's return — use useRef so updates don't trigger re-renders
144. [warning] query-mutation-missing-invalidation — src/screens/post/PostDetail.jsx:47
useMutation without a cache update — stale data may remain after the mutation. Call queryClient.invalidateQueries / setQueryData / resetQueries / refetchQueries inside onSuccess (or trigger a router refresh)
145. [warning] react-compiler-destructure-method — src/screens/post/PostDetail.jsx:57
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
146. [warning] react-compiler-destructure-method — src/screens/post/PostDetail.jsx:204
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
147. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:222
bg-gray-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
148. [warning] react-compiler-destructure-method — src/screens/post/PostDetail.jsx:225
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
149. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:237
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
150. [warning] react-compiler-destructure-method — src/screens/post/PostDetail.jsx:294
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
151. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:311
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 — src/screens/post/PostDetail.jsx:352
border-gray-300 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
153. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:384
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
154. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:425
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
155. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:460
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
156. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:477
border-gray-300 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
157. [warning] design-no-default-tailwind-palette — src/screens/post/PostDetail.jsx:486
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
158. [warning] rn-prefer-pressable — src/components/OptionModal.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
159. [warning] rn-prefer-pressable — src/screens/report/DocumentReported.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
160. [warning] react-compiler-destructure-method — src/screens/report/DocumentReported.jsx:42
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
161. [warning] rn-prefer-content-inset-adjustment — src/screens/report/DocumentReported.jsx:49
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-area handling
162. [warning] react-compiler-destructure-method — src/screens/report/DocumentReported.jsx:53
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
163. [warning] rn-no-dimensions-get — src/constants/appInfos.js:5
Dimensions.get() does not update on screen rotation or resize — use useWindowDimensions() for reactive layout
164. [warning] rn-no-dimensions-get — src/constants/appInfos.js:6
Dimensions.get() does not update on screen rotation or resize — use useWindowDimensions() for reactive layout
165. [warning] rn-prefer-expo-image — src/screens/post/UpdatePost.jsx:1
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
166. [warning] rn-prefer-pressable — src/screens/post/UpdatePost.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
167. [warning] rendering-usetransition-loading — src/screens/post/UpdatePost.jsx:24
useState for "isLoading" — if this guards a state transition (not an async fetch), consider useTransition instead
168. [warning] react-compiler-destructure-method — src/screens/post/UpdatePost.jsx:120
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
169. [warning] react-compiler-destructure-method — src/screens/post/UpdatePost.jsx:157
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
170. [warning] rn-prefer-pressable — src/screens/tag/AddTag.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
171. [warning] react-compiler-destructure-method — src/screens/tag/AddTag.jsx:26
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
172. [warning] react-compiler-destructure-method — src/screens/tag/AddTag.jsx:42
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
173. [warning] design-no-default-tailwind-palette — src/screens/tag/AddTag.jsx:51
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
174. [warning] rn-prefer-pressable — src/screens/profile/UpdateProfile.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
175. [warning] rerender-state-only-in-handlers — src/screens/profile/UpdateProfile.jsx:22
useState "gender" is updated but never read in the component's return — use useRef so updates don't trigger re-renders
176. [warning] react-compiler-destructure-method — src/screens/profile/UpdateProfile.jsx:61
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
177. [warning] react-compiler-destructure-method — src/screens/profile/UpdateProfile.jsx:74
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
178. [warning] design-no-default-tailwind-palette — src/screens/profile/UpdateProfile.jsx:86
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
179. [warning] design-no-default-tailwind-palette — src/screens/profile/UpdateProfile.jsx:97
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
180. [warning] design-no-default-tailwind-palette — src/screens/profile/UpdateProfile.jsx:108
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
181. [warning] design-no-default-tailwind-palette — src/screens/profile/UpdateProfile.jsx:120
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
182. [warning] rn-no-legacy-shadow-styles — src/styles/globalStyles.js:27
Legacy shadow styles "shadowColor", "shadowOffset", "shadowOpacity", "shadowRadius", "elevation" — use boxShadow for cross-platform shadows on the new architecture
183. [warning] rn-style-prefer-boxshadow — src/styles/globalStyles.js:28
shadowColor is iOS/Android-platform-specific — use the cross-platform CSS `boxShadow` string on RN v7+
184. [warning] no-barrel-import — src/navigators/CategoryNavigator.jsx:3
Import from barrel/index file — import directly from source modules: "../screens/category/AddCategory", "../screens/category/AdminCategory", "../screens/category/UpdateCategory"
185. [warning] rn-prefer-pressable — src/screens/report/PostReported.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
186. [warning] react-compiler-destructure-method — src/screens/report/PostReported.jsx:41
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
187. [warning] rn-prefer-content-inset-adjustment — src/screens/report/PostReported.jsx:48
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-area handling
188. [warning] react-compiler-destructure-method — src/screens/report/PostReported.jsx:52
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
189. [warning] no-barrel-import — src/navigators/AuthNavigator.jsx:1
Import from barrel/index file — import directly from source modules: "../screens/auth/ForgetPassword", "../screens/auth/NewPassword", "../screens/auth/OTP", "../screens/auth/Signup"
190. [warning] rn-prefer-expo-image — src/screens/auth/Login.jsx:3
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
191. [warning] rn-prefer-pressable — src/screens/auth/Login.jsx:3
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
192. [warning] rendering-usetransition-loading — src/screens/auth/Login.jsx:20
useState for "isLoading" — if this guards a state transition (not an async fetch), consider useTransition instead
193. [warning] react-compiler-destructure-method — src/screens/auth/Login.jsx:45
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
194. [warning] design-no-default-tailwind-palette — src/screens/auth/Login.jsx:87
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
195. [warning] design-no-default-tailwind-palette — src/screens/auth/Login.jsx:100
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
196. [warning] react-compiler-destructure-method — src/screens/auth/Login.jsx:114
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
197. [warning] react-compiler-destructure-method — src/screens/auth/Login.jsx:134
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
198. [warning] no-barrel-import — src/navigators/FieldNavigator.jsx:4
Import from barrel/index file — import directly from source modules: "../screens/field/AddField", "../screens/field/AdminField", "../screens/field/UpdateField"
199. [warning] rn-prefer-pressable — src/screens/tag/UpdateTag.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
200. [warning] react-compiler-destructure-method — src/screens/tag/UpdateTag.jsx:27
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
201. [warning] react-compiler-destructure-method — src/screens/tag/UpdateTag.jsx:44
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
202. [warning] design-no-default-tailwind-palette — src/screens/tag/UpdateTag.jsx:53
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
203. [warning] rn-prefer-pressable — src/navigators/ExploreNavigator.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
204. [warning] design-no-default-tailwind-palette — src/navigators/ExploreNavigator.jsx:68
bg-slate-100 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
205. [warning] rn-no-inline-flatlist-renderitem — src/navigators/ExploreNavigator.jsx:131
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
206. [warning] rn-no-inline-flatlist-renderitem — src/navigators/ExploreNavigator.jsx:149
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
207. [warning] rn-no-inline-flatlist-renderitem — src/navigators/ExploreNavigator.jsx:167
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
208. [warning] rn-no-inline-flatlist-renderitem — src/navigators/ExploreNavigator.jsx:181
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
209. [warning] rn-prefer-pressable — src/screens/auth/Signup.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
210. [warning] rendering-usetransition-loading — src/screens/auth/Signup.jsx:15
useState for "isLoading" — if this guards a state transition (not an async fetch), consider useTransition instead
211. [warning] react-compiler-destructure-method — src/screens/auth/Signup.jsx:39
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
212. [warning] react-compiler-destructure-method — src/screens/auth/Signup.jsx:48
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
213. [warning] react-compiler-destructure-method — src/screens/auth/Signup.jsx:77
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
214. [warning] design-no-default-tailwind-palette — src/screens/auth/Signup.jsx:92
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
215. [warning] design-no-default-tailwind-palette — src/screens/auth/Signup.jsx:104
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
216. [warning] design-no-default-tailwind-palette — src/screens/auth/Signup.jsx:116
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
217. [warning] design-no-default-tailwind-palette — src/screens/auth/Signup.jsx:128
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
218. [warning] design-no-default-tailwind-palette — src/screens/auth/Signup.jsx:142
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
219. [warning] react-compiler-destructure-method — src/screens/auth/Signup.jsx:171
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
220. [warning] no-barrel-import — src/navigators/TagNavigator.jsx:4
Import from barrel/index file — import directly from source modules: "../screens/tag/AddTag", "../screens/tag/AdminTag", "../screens/tag/UpdateTag"
221. [warning] no-barrel-import — src/navigators/PostNavigator.jsx:3
Import from barrel/index file — import directly from source modules: "../screens/post/CreateReport", "../screens/profile/OtherUserProfile", "../screens/post/PostComment", "../screens/post/PostDetail", "../screens/post/PostList", "../screens/post/PostSearch", "../screens/post/UpdatePost"
222. [warning] rn-prefer-pressable — src/screens/document/CreateReport.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
223. [warning] react-compiler-destructure-method — src/screens/document/CreateReport.jsx:50
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
224. [warning] react-compiler-destructure-method — src/screens/document/CreateReport.jsx:57
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
225. [warning] rn-prefer-expo-image — src/screens/document/DocumentListAdmin.jsx:8
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
226. [warning] rn-prefer-pressable — src/screens/document/DocumentListAdmin.jsx:7
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
227. [warning] react-compiler-destructure-method — src/screens/document/DocumentListAdmin.jsx:104
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
228. [warning] rn-prefer-content-inset-adjustment — src/screens/document/DocumentListAdmin.jsx:147
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-area handling
229. [warning] react-compiler-destructure-method — src/screens/document/DocumentListAdmin.jsx:151
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
230. [warning] rn-prefer-pressable — src/screens/document/DocumentSearch.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
231. [warning] prefer-useReducer — src/screens/document/DocumentSearch.jsx:14
Component "DocumentSearch" has 6 useState calls — consider useReducer for related state
232. [warning] rn-no-single-element-style-array — src/screens/document/DocumentSearch.jsx:98
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
233. [warning] react-compiler-destructure-method — src/screens/document/DocumentSearch.jsx:102
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
234. [warning] rn-prefer-pressable — src/screens/field/AddField.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
235. [warning] react-compiler-destructure-method — src/screens/field/AddField.jsx:27
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
236. [warning] react-compiler-destructure-method — src/screens/field/AddField.jsx:44
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
237. [warning] design-no-default-tailwind-palette — src/screens/field/AddField.jsx:53
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
238. [warning] rn-prefer-pressable — src/screens/AddDocument.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
239. [warning] rendering-usetransition-loading — src/screens/AddDocument.jsx:24
useState for "isLoading" — if this guards a state transition (not an async fetch), consider useTransition instead
240. [warning] react-compiler-destructure-method — src/screens/AddDocument.jsx:121
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
241. [warning] rn-prefer-pressable — src/screens/field/UpdateField.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
242. [warning] react-compiler-destructure-method — src/screens/field/UpdateField.jsx:31
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
243. [warning] react-compiler-destructure-method — src/screens/field/UpdateField.jsx:47
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
244. [warning] design-no-default-tailwind-palette — src/screens/field/UpdateField.jsx:56
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
245. [warning] rn-prefer-expo-image — src/screens/home/HomeScreen.jsx:1
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
246. [warning] rn-prefer-pressable — src/screens/home/HomeScreen.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
247. [warning] rn-no-single-element-style-array — src/screens/home/HomeScreen.jsx:49
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
248. [warning] rn-no-inline-flatlist-renderitem — src/screens/home/HomeScreen.jsx:91
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
249. [warning] rn-list-callback-per-row — src/screens/home/HomeScreen.jsx:119
Inline onPress arrow inside renderItem creates a fresh closure per row — hoist with useCallback at list scope and pass the row id as a primitive prop
250. [warning] rn-list-callback-per-row — src/screens/home/HomeScreen.jsx:121
Inline onPress arrow inside renderItem creates a fresh closure per row — hoist with useCallback at list scope and pass the row id as a primitive prop
251. [warning] rn-no-inline-object-in-list-item — src/screens/home/HomeScreen.jsx:97
Inline object literal on "source" inside renderItem — allocates a fresh reference per row and breaks memo() on the row component. Hoist outside renderItem or pass primitives
252. [warning] rn-no-inline-object-in-list-item — src/screens/home/HomeScreen.jsx:97
Inline object literal on "style" inside renderItem — allocates a fresh reference per row and breaks memo() on the row component. Hoist outside renderItem or pass primitives
253. [warning] design-no-default-tailwind-palette — src/screens/home/HomeScreen.jsx:114
text-gray-500 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
254. [warning] rn-no-inline-object-in-list-item — src/screens/home/HomeScreen.jsx:120
Inline object literal on "style" inside renderItem — allocates a fresh reference per row and breaks memo() on the row component. Hoist outside renderItem or pass primitives
255. [warning] rn-no-inline-object-in-list-item — src/screens/home/HomeScreen.jsx:123
Inline object literal on "style" inside renderItem — allocates a fresh reference per row and breaks memo() on the row component. Hoist outside renderItem or pass primitives
256. [warning] rn-no-inline-object-in-list-item — src/screens/home/HomeScreen.jsx:125
Inline object literal on "style" inside renderItem — allocates a fresh reference per row and breaks memo() on the row component. Hoist outside renderItem or pass primitives
257. [warning] rn-prefer-expo-image — src/screens/auth/NewPassword.jsx:3
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
258. [warning] rn-prefer-pressable — src/screens/auth/NewPassword.jsx:3
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
259. [warning] prefer-useReducer — src/screens/auth/NewPassword.jsx:10
Component "NewPassword" has 11 useState calls — consider useReducer for related state
260. [warning] rerender-state-only-in-handlers — src/screens/auth/NewPassword.jsx:39
useState "countdown" is updated but never read in the component's return — use useRef so updates don't trigger re-renders
261. [warning] react-compiler-destructure-method — src/screens/auth/NewPassword.jsx:77
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
262. [warning] react-compiler-destructure-method — src/screens/auth/NewPassword.jsx:128
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
263. [warning] design-no-space-on-flex-children — src/screens/auth/NewPassword.jsx:140
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
264. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:144
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
265. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:158
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
266. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:175
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
267. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:192
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
268. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:209
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
269. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:226
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
270. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:259
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
271. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:271
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
272. [warning] design-no-default-tailwind-palette — src/screens/auth/NewPassword.jsx:284
shadow-gray-600 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
273. [warning] rn-prefer-pressable — src/screens/post/CreatePost.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
274. [warning] react-compiler-destructure-method — src/screens/post/CreatePost.jsx:40
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
275. [warning] design-no-default-tailwind-palette — src/screens/post/CreatePost.jsx:48
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
276. [warning] rn-prefer-expo-image — src/components/DrawerCustom.jsx:1
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
277. [warning] rn-no-single-element-style-array — src/components/DrawerCustom.jsx:24
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
278. [warning] react-compiler-destructure-method — src/components/DrawerCustom.jsx:31
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
279. [warning] react-compiler-destructure-method — src/components/DrawerCustom.jsx:36
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
280. [warning] react-compiler-destructure-method — src/components/DrawerCustom.jsx:40
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
281. [warning] rn-prefer-pressable — src/screens/category/AddCategory.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
282. [warning] react-compiler-destructure-method — src/screens/category/AddCategory.jsx:27
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
283. [warning] react-compiler-destructure-method — src/screens/category/AddCategory.jsx:47
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
284. [warning] design-no-default-tailwind-palette — src/screens/category/AddCategory.jsx:56
border-gray-200 reads as the Tailwind template default — use zinc (true neutral), neutral (warmer), or stone (warmest)
285. [warning] rn-prefer-pressable — src/screens/post/PostList.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
286. [warning] rerender-state-only-in-handlers — src/screens/post/PostList.jsx:19
useState "page" is updated but never read in the component's return — use useRef so updates don't trigger re-renders
287. [warning] rerender-state-only-in-handlers — src/screens/post/PostList.jsx:20
useState "hasMore" is updated but never read in the component's return — use useRef so updates don't trigger re-renders
288. [warning] rn-no-single-element-style-array — src/screens/post/PostList.jsx:53
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
289. [warning] react-compiler-destructure-method — src/screens/post/PostList.jsx:78
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
290. [warning] design-no-three-period-ellipsis — src/screens/post/PostList.jsx:79
Three-period ellipsis ("...") in JSX text — use the actual ellipsis character "…" (or `…`)
291. [warning] rn-no-inline-flatlist-renderitem — src/screens/post/PostList.jsx:98
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
292. [warning] rerender-functional-setstate — src/screens/post/PostList.jsx:103
setPage(page + ...) — use functional update to avoid stale closures
293. [warning] rn-prefer-pressable — src/components/TopBackNavigate.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
294. [warning] react-compiler-destructure-method — src/components/TopBackNavigate.jsx:8
Destructure for clarity: `const { goBack } = useNavigation()` then call `goBack(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
295. [warning] rn-prefer-pressable — src/screens/post/PostSearch.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
296. [warning] rn-no-single-element-style-array — src/screens/post/PostSearch.jsx:40
Single-element style array on "style" — use style={value} instead of style={[value]} to avoid unnecessary array allocation
297. [warning] react-compiler-destructure-method — src/screens/post/PostSearch.jsx:44
Destructure for clarity: `const { navigate } = useNavigation()` then call `navigate(...)` directly — easier for React Compiler to memoize and clearer about which methods this component depends on
298. [warning] rn-no-inline-flatlist-renderitem — src/screens/post/PostSearch.jsx:80
Inline renderItem on <FlatList> creates a new function reference every render — extract to a named function or wrap in useCallback
299. [warning] rn-prefer-expo-image — src/screens/document/DocumentDetailScreen.jsx:1
Importing Image from react-native — prefer expo-image for caching, placeholders, and progressive loading (drop-in API)
300. [warning] rn-prefer-pressable — src/screens/document/DocumentDetailScreen.jsx:1
TouchableOpacity is legacy — use <Pressable> from react-native (or react-native-gesture-handler) for modern press handling
301. [warning] rn-prefer-content-inset-adjustment — src/screens/document/DocumentDetailScreen.jsx:36
<SafeAreaView> wrapping <ScrollView> — set `contentInsetAdjustmentBehavior="automatic"` on the ScrollView and drop the SafeAreaView wrapper for native safe-ar
---
_Issue body truncated. See the full report at [react.review/dashboard](https://react.review/dashboard)._
Copy as prompt