@oxyhq/services 6.9.44 → 6.9.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/lib/commonjs/ui/components/OxyPayButton.js +4 -2
  2. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  3. package/lib/commonjs/ui/components/OxyProvider.js +6 -5
  4. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  5. package/lib/commonjs/ui/components/OxySignInButton.js +83 -82
  6. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  7. package/lib/commonjs/ui/components/SignInModal.js +271 -102
  8. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  9. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +76 -121
  10. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  11. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +24 -15
  12. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  13. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +32 -18
  14. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  15. package/lib/commonjs/ui/components/icon/OxyIcon.js +5 -4
  16. package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -1
  17. package/lib/commonjs/ui/components/index.js +0 -35
  18. package/lib/commonjs/ui/components/index.js.map +1 -1
  19. package/lib/commonjs/ui/components/internal/PinInput.js +3 -2
  20. package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
  21. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +83 -219
  22. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  23. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +26 -13
  24. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  25. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +50 -28
  26. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  27. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +83 -48
  28. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  29. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +11 -10
  30. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  31. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +38 -23
  32. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  33. package/lib/commonjs/ui/constants/theme.js +2 -2
  34. package/lib/commonjs/ui/constants/theme.js.map +1 -1
  35. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +4 -3
  36. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountCenterScreen.js +13 -13
  38. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +117 -142
  40. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +112 -78
  42. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +213 -144
  44. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +26 -14
  46. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/FeedbackScreen.js +57 -51
  48. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/FileManagementScreen.js +108 -86
  50. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/HistoryViewScreen.js +109 -130
  52. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +15 -8
  54. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +60 -54
  56. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +12 -9
  58. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +66 -93
  60. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +159 -190
  62. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +20 -22
  64. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +16 -17
  66. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/SessionManagementScreen.js +127 -70
  68. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/UserLinksScreen.js +13 -29
  70. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +110 -52
  72. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +3 -5
  74. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  75. package/lib/commonjs/ui/utils/fileManagement.js +0 -21
  76. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  77. package/lib/module/ui/components/OxyPayButton.js +4 -2
  78. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  79. package/lib/module/ui/components/OxyProvider.js +6 -5
  80. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  81. package/lib/module/ui/components/OxySignInButton.js +84 -83
  82. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  83. package/lib/module/ui/components/SignInModal.js +271 -100
  84. package/lib/module/ui/components/SignInModal.js.map +1 -1
  85. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +76 -122
  86. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  87. package/lib/module/ui/components/fileManagement/FileViewer.js +24 -15
  88. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  89. package/lib/module/ui/components/fileManagement/UploadPreview.js +32 -19
  90. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  91. package/lib/module/ui/components/icon/OxyIcon.js +5 -4
  92. package/lib/module/ui/components/icon/OxyIcon.js.map +1 -1
  93. package/lib/module/ui/components/index.js +0 -5
  94. package/lib/module/ui/components/index.js.map +1 -1
  95. package/lib/module/ui/components/internal/PinInput.js +3 -2
  96. package/lib/module/ui/components/internal/PinInput.js.map +1 -1
  97. package/lib/module/ui/components/modals/DeleteAccountModal.js +83 -220
  98. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  99. package/lib/module/ui/components/payment/PaymentDetailsStep.js +26 -13
  100. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  101. package/lib/module/ui/components/payment/PaymentMethodStep.js +49 -26
  102. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  103. package/lib/module/ui/components/payment/PaymentReviewStep.js +84 -48
  104. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  105. package/lib/module/ui/components/payment/PaymentSuccessStep.js +11 -9
  106. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  107. package/lib/module/ui/components/payment/PaymentSummaryStep.js +38 -22
  108. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  109. package/lib/module/ui/constants/theme.js +2 -2
  110. package/lib/module/ui/constants/theme.js.map +1 -1
  111. package/lib/module/ui/context/hooks/useAuthOperations.js +4 -3
  112. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  113. package/lib/module/ui/screens/AccountCenterScreen.js +12 -13
  114. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  115. package/lib/module/ui/screens/AccountOverviewScreen.js +117 -142
  116. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  117. package/lib/module/ui/screens/AccountSettingsScreen.js +112 -78
  118. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  119. package/lib/module/ui/screens/AccountSwitcherScreen.js +213 -145
  120. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  121. package/lib/module/ui/screens/AccountVerificationScreen.js +28 -16
  122. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  123. package/lib/module/ui/screens/FeedbackScreen.js +48 -42
  124. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  125. package/lib/module/ui/screens/FileManagementScreen.js +110 -88
  126. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  127. package/lib/module/ui/screens/HistoryViewScreen.js +110 -131
  128. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  129. package/lib/module/ui/screens/LanguageSelectorScreen.js +16 -9
  130. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  131. package/lib/module/ui/screens/LegalDocumentsScreen.js +61 -55
  132. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  133. package/lib/module/ui/screens/PaymentGatewayScreen.js +12 -9
  134. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  135. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +66 -94
  136. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  137. package/lib/module/ui/screens/PrivacySettingsScreen.js +161 -192
  138. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  139. package/lib/module/ui/screens/SavesCollectionsScreen.js +21 -23
  140. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  141. package/lib/module/ui/screens/SearchSettingsScreen.js +17 -18
  142. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  143. package/lib/module/ui/screens/SessionManagementScreen.js +128 -72
  144. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  145. package/lib/module/ui/screens/UserLinksScreen.js +15 -31
  146. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  147. package/lib/module/ui/screens/WelcomeNewUserScreen.js +110 -52
  148. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  149. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +4 -6
  150. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  151. package/lib/module/ui/utils/fileManagement.js +0 -20
  152. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  153. package/lib/typescript/commonjs/ui/components/OxyPayButton.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +0 -1
  156. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  159. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  162. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/ui/components/icon/OxyIcon.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/ui/components/index.d.ts +0 -5
  165. package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  168. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  170. package/lib/typescript/commonjs/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  171. package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +1 -1
  176. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  182. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  185. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  193. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  195. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -4
  196. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  197. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  198. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  199. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +0 -1
  200. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  201. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  202. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  203. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  204. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  205. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  206. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  207. package/lib/typescript/module/ui/components/icon/OxyIcon.d.ts.map +1 -1
  208. package/lib/typescript/module/ui/components/index.d.ts +0 -5
  209. package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
  210. package/lib/typescript/module/ui/components/internal/PinInput.d.ts.map +1 -1
  211. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  212. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  213. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  214. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  215. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  216. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  217. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  218. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  219. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +1 -1
  220. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  221. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  222. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  223. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  224. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  225. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  226. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  227. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  228. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  229. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  230. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  231. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  232. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  233. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  234. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  235. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  236. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  237. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  238. package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  239. package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -4
  240. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  241. package/package.json +3 -3
  242. package/src/ui/components/OxyPayButton.tsx +5 -3
  243. package/src/ui/components/OxyProvider.tsx +6 -5
  244. package/src/ui/components/OxySignInButton.tsx +82 -81
  245. package/src/ui/components/SignInModal.tsx +186 -42
  246. package/src/ui/components/fileManagement/FileDetailsModal.tsx +69 -99
  247. package/src/ui/components/fileManagement/FileViewer.tsx +25 -15
  248. package/src/ui/components/fileManagement/UploadPreview.tsx +58 -46
  249. package/src/ui/components/icon/OxyIcon.tsx +5 -4
  250. package/src/ui/components/index.ts +0 -5
  251. package/src/ui/components/internal/PinInput.tsx +4 -3
  252. package/src/ui/components/modals/DeleteAccountModal.tsx +79 -221
  253. package/src/ui/components/payment/PaymentDetailsStep.tsx +16 -19
  254. package/src/ui/components/payment/PaymentMethodStep.tsx +33 -35
  255. package/src/ui/components/payment/PaymentReviewStep.tsx +63 -67
  256. package/src/ui/components/payment/PaymentSuccessStep.tsx +4 -12
  257. package/src/ui/components/payment/PaymentSummaryStep.tsx +26 -33
  258. package/src/ui/constants/theme.ts +2 -2
  259. package/src/ui/context/hooks/useAuthOperations.ts +4 -3
  260. package/src/ui/screens/AccountCenterScreen.tsx +36 -139
  261. package/src/ui/screens/AccountOverviewScreen.tsx +107 -163
  262. package/src/ui/screens/AccountSettingsScreen.tsx +142 -156
  263. package/src/ui/screens/AccountSwitcherScreen.tsx +226 -199
  264. package/src/ui/screens/AccountVerificationScreen.tsx +34 -25
  265. package/src/ui/screens/FeedbackScreen.tsx +50 -38
  266. package/src/ui/screens/FileManagementScreen.tsx +88 -88
  267. package/src/ui/screens/HistoryViewScreen.tsx +79 -207
  268. package/src/ui/screens/LanguageSelectorScreen.tsx +19 -7
  269. package/src/ui/screens/LegalDocumentsScreen.tsx +46 -63
  270. package/src/ui/screens/PaymentGatewayScreen.tsx +11 -12
  271. package/src/ui/screens/PremiumSubscriptionScreen.tsx +73 -93
  272. package/src/ui/screens/PrivacySettingsScreen.tsx +81 -193
  273. package/src/ui/screens/SavesCollectionsScreen.tsx +23 -23
  274. package/src/ui/screens/SearchSettingsScreen.tsx +11 -19
  275. package/src/ui/screens/SessionManagementScreen.tsx +130 -76
  276. package/src/ui/screens/UserLinksScreen.tsx +15 -32
  277. package/src/ui/screens/WelcomeNewUserScreen.tsx +46 -20
  278. package/src/ui/screens/karma/KarmaFAQScreen.tsx +4 -6
  279. package/src/ui/utils/fileManagement.ts +0 -30
  280. package/lib/commonjs/ui/components/GroupedItem.js +0 -138
  281. package/lib/commonjs/ui/components/GroupedItem.js.map +0 -1
  282. package/lib/commonjs/ui/components/GroupedSection.js +0 -41
  283. package/lib/commonjs/ui/components/GroupedSection.js.map +0 -1
  284. package/lib/commonjs/ui/components/Section.js +0 -39
  285. package/lib/commonjs/ui/components/Section.js.map +0 -1
  286. package/lib/commonjs/ui/components/SectionTitle.js +0 -29
  287. package/lib/commonjs/ui/components/SectionTitle.js.map +0 -1
  288. package/lib/commonjs/ui/components/SettingRow.js +0 -90
  289. package/lib/commonjs/ui/components/SettingRow.js.map +0 -1
  290. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +0 -206
  291. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +0 -1
  292. package/lib/commonjs/ui/utils/confirmAction.js +0 -28
  293. package/lib/commonjs/ui/utils/confirmAction.js.map +0 -1
  294. package/lib/module/ui/components/GroupedItem.js +0 -135
  295. package/lib/module/ui/components/GroupedItem.js.map +0 -1
  296. package/lib/module/ui/components/GroupedSection.js +0 -37
  297. package/lib/module/ui/components/GroupedSection.js.map +0 -1
  298. package/lib/module/ui/components/Section.js +0 -34
  299. package/lib/module/ui/components/Section.js.map +0 -1
  300. package/lib/module/ui/components/SectionTitle.js +0 -25
  301. package/lib/module/ui/components/SectionTitle.js.map +0 -1
  302. package/lib/module/ui/components/SettingRow.js +0 -85
  303. package/lib/module/ui/components/SettingRow.js.map +0 -1
  304. package/lib/module/ui/components/internal/GroupedPillButtons.js +0 -202
  305. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +0 -1
  306. package/lib/module/ui/utils/confirmAction.js +0 -25
  307. package/lib/module/ui/utils/confirmAction.js.map +0 -1
  308. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts +0 -24
  309. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +0 -1
  310. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts +0 -30
  311. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts.map +0 -1
  312. package/lib/typescript/commonjs/ui/components/Section.d.ts +0 -12
  313. package/lib/typescript/commonjs/ui/components/Section.d.ts.map +0 -1
  314. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts +0 -10
  315. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts.map +0 -1
  316. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts +0 -20
  317. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts.map +0 -1
  318. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  319. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  320. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts +0 -7
  321. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts.map +0 -1
  322. package/lib/typescript/module/ui/components/GroupedItem.d.ts +0 -24
  323. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +0 -1
  324. package/lib/typescript/module/ui/components/GroupedSection.d.ts +0 -30
  325. package/lib/typescript/module/ui/components/GroupedSection.d.ts.map +0 -1
  326. package/lib/typescript/module/ui/components/Section.d.ts +0 -12
  327. package/lib/typescript/module/ui/components/Section.d.ts.map +0 -1
  328. package/lib/typescript/module/ui/components/SectionTitle.d.ts +0 -10
  329. package/lib/typescript/module/ui/components/SectionTitle.d.ts.map +0 -1
  330. package/lib/typescript/module/ui/components/SettingRow.d.ts +0 -20
  331. package/lib/typescript/module/ui/components/SettingRow.d.ts.map +0 -1
  332. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  333. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  334. package/lib/typescript/module/ui/utils/confirmAction.d.ts +0 -7
  335. package/lib/typescript/module/ui/utils/confirmAction.d.ts.map +0 -1
  336. package/src/ui/components/GroupedItem.tsx +0 -161
  337. package/src/ui/components/GroupedSection.tsx +0 -60
  338. package/src/ui/components/Section.tsx +0 -42
  339. package/src/ui/components/SectionTitle.tsx +0 -27
  340. package/src/ui/components/SettingRow.tsx +0 -98
  341. package/src/ui/components/internal/GroupedPillButtons.tsx +0 -250
  342. package/src/ui/utils/confirmAction.ts +0 -23
@@ -1,4 +1,4 @@
1
- import React, { useState, useCallback, useEffect, useMemo } from 'react';
1
+ import React, { useState, useCallback, useEffect } from 'react';
2
2
  import {
3
3
  View,
4
4
  Text,
@@ -8,7 +8,9 @@ import {
8
8
  } from 'react-native';
9
9
  import type { BaseScreenProps } from '../types/navigation';
10
10
  import { toast } from '../../lib/sonner';
11
- import { Header, Section, Avatar, SettingRow, LoadingState, EmptyState, GroupedSection } from '../components';
11
+ import { Header, Avatar, LoadingState, EmptyState } from '../components';
12
+ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
13
+ import { Switch } from '@oxyhq/bloom/switch';
12
14
  import { useI18n } from '../hooks/useI18n';
13
15
  import { useTheme } from '@oxyhq/bloom/theme';
14
16
  import { useSettingToggles } from '../hooks/useSettingToggle';
@@ -197,71 +199,6 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
197
199
 
198
200
  const bloomTheme = useTheme();
199
201
 
200
- // Convert blocked users to GroupedSection items
201
- const blockedUserItems = useMemo(() => {
202
- return blockedUsers.map((blocked) => {
203
- const { userId, username, avatar } = extractUserInfo(blocked, 'blockedId');
204
- const avatarUri = avatar && oxyServices
205
- ? oxyServices.getFileDownloadUrl(avatar, 'thumb')
206
- : undefined;
207
-
208
- return {
209
- id: userId,
210
- title: username,
211
- customIcon: (
212
- <Avatar
213
- uri={avatarUri}
214
- name={username}
215
- size={40}
216
- />
217
- ),
218
- customContent: (
219
- <TouchableOpacity
220
- onPress={() => handleUnblock(userId)}
221
- style={[styles.actionButton, { backgroundColor: bloomTheme.colors.backgroundSecondary }]}
222
- >
223
- <Text style={[styles.actionButtonText, { color: bloomTheme.colors.error }]}>
224
- {t('privacySettings.unblock') || 'Unblock'}
225
- </Text>
226
- </TouchableOpacity>
227
- ),
228
- };
229
- });
230
- }, [blockedUsers, oxyServices, bloomTheme, handleUnblock, t]);
231
-
232
- // Convert restricted users to GroupedSection items
233
- const restrictedUserItems = useMemo(() => {
234
- return restrictedUsers.map((restricted) => {
235
- const { userId, username, avatar } = extractUserInfo(restricted, 'restrictedId');
236
- const avatarUri = avatar && oxyServices
237
- ? oxyServices.getFileDownloadUrl(avatar, 'thumb')
238
- : undefined;
239
-
240
- return {
241
- id: userId,
242
- title: username,
243
- subtitle: t('privacySettings.restrictedDescription') || 'Limited interactions',
244
- customIcon: (
245
- <Avatar
246
- uri={avatarUri}
247
- name={username}
248
- size={40}
249
- />
250
- ),
251
- customContent: (
252
- <TouchableOpacity
253
- onPress={() => handleUnrestrict(userId)}
254
- style={[styles.actionButton, { backgroundColor: bloomTheme.colors.backgroundSecondary }]}
255
- >
256
- <Text style={[styles.actionButtonText, { color: bloomTheme.colors.primary }]}>
257
- {t('privacySettings.unrestrict') || 'Unrestrict'}
258
- </Text>
259
- </TouchableOpacity>
260
- ),
261
- };
262
- });
263
- }, [restrictedUsers, oxyServices, bloomTheme, handleUnrestrict, t]);
264
-
265
202
  if (isLoading) {
266
203
  return (
267
204
  <View style={[styles.container, { backgroundColor: bloomTheme.colors.background }]}>
@@ -287,183 +224,103 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
287
224
 
288
225
  <ScrollView style={styles.content}>
289
226
  {/* Account Privacy */}
290
- <Section title={t('privacySettings.sections.account') || 'ACCOUNT PRIVACY'} isFirst={true}>
291
- <SettingRow
227
+ <SettingsListGroup title={t('privacySettings.sections.account') || 'ACCOUNT PRIVACY'}>
228
+ <SettingsListItem
292
229
  title={t('privacySettings.isPrivateAccount') || 'Private Account'}
293
230
  description={t('privacySettings.isPrivateAccountDesc') || 'Only approved followers can see your posts'}
294
- value={settings.isPrivateAccount}
295
- onValueChange={() => toggle('isPrivateAccount')}
296
- disabled={isSaving}
297
- textColor={bloomTheme.colors.text}
298
- mutedTextColor={bloomTheme.colors.textSecondary}
299
- borderColor={bloomTheme.colors.border}
231
+ rightElement={<Switch value={settings.isPrivateAccount} onValueChange={() => toggle('isPrivateAccount')} disabled={isSaving} />}
300
232
  />
301
- <SettingRow
233
+ <SettingsListItem
302
234
  title={t('privacySettings.profileVisibility') || 'Profile Visibility'}
303
235
  description={t('privacySettings.profileVisibilityDesc') || 'Control who can view your profile'}
304
- value={settings.profileVisibility}
305
- onValueChange={() => toggle('profileVisibility')}
306
- disabled={isSaving}
307
- textColor={bloomTheme.colors.text}
308
- mutedTextColor={bloomTheme.colors.textSecondary}
309
- borderColor={bloomTheme.colors.border}
236
+ rightElement={<Switch value={settings.profileVisibility} onValueChange={() => toggle('profileVisibility')} disabled={isSaving} />}
310
237
  />
311
- <SettingRow
238
+ <SettingsListItem
312
239
  title={t('privacySettings.hideOnlineStatus') || 'Hide Online Status'}
313
240
  description={t('privacySettings.hideOnlineStatusDesc') || 'Don\'t show when you\'re online'}
314
- value={settings.hideOnlineStatus}
315
- onValueChange={() => toggle('hideOnlineStatus')}
316
- disabled={isSaving}
317
- textColor={bloomTheme.colors.text}
318
- mutedTextColor={bloomTheme.colors.textSecondary}
319
- borderColor={bloomTheme.colors.border}
241
+ rightElement={<Switch value={settings.hideOnlineStatus} onValueChange={() => toggle('hideOnlineStatus')} disabled={isSaving} />}
320
242
  />
321
- <SettingRow
243
+ <SettingsListItem
322
244
  title={t('privacySettings.hideLastSeen') || 'Hide Last Seen'}
323
245
  description={t('privacySettings.hideLastSeenDesc') || 'Don\'t show when you were last active'}
324
- value={settings.hideLastSeen}
325
- onValueChange={() => toggle('hideLastSeen')}
326
- disabled={isSaving}
327
- textColor={bloomTheme.colors.text}
328
- mutedTextColor={bloomTheme.colors.textSecondary}
329
- borderColor={bloomTheme.colors.border}
246
+ rightElement={<Switch value={settings.hideLastSeen} onValueChange={() => toggle('hideLastSeen')} disabled={isSaving} />}
330
247
  />
331
- </Section>
248
+ </SettingsListGroup>
332
249
 
333
250
  {/* Interactions */}
334
- <Section title={t('privacySettings.sections.interactions') || 'INTERACTIONS'} >
335
- <SettingRow
251
+ <SettingsListGroup title={t('privacySettings.sections.interactions') || 'INTERACTIONS'}>
252
+ <SettingsListItem
336
253
  title={t('privacySettings.allowTagging') || 'Allow Tagging'}
337
254
  description={t('privacySettings.allowTaggingDesc') || 'Let others tag you in posts'}
338
- value={settings.allowTagging}
339
- onValueChange={() => toggle('allowTagging')}
340
- disabled={isSaving}
341
- textColor={bloomTheme.colors.text}
342
- mutedTextColor={bloomTheme.colors.textSecondary}
343
- borderColor={bloomTheme.colors.border}
255
+ rightElement={<Switch value={settings.allowTagging} onValueChange={() => toggle('allowTagging')} disabled={isSaving} />}
344
256
  />
345
- <SettingRow
257
+ <SettingsListItem
346
258
  title={t('privacySettings.allowMentions') || 'Allow Mentions'}
347
259
  description={t('privacySettings.allowMentionsDesc') || 'Let others mention you'}
348
- value={settings.allowMentions}
349
- onValueChange={() => toggle('allowMentions')}
350
- disabled={isSaving}
351
- textColor={bloomTheme.colors.text}
352
- mutedTextColor={bloomTheme.colors.textSecondary}
353
- borderColor={bloomTheme.colors.border}
260
+ rightElement={<Switch value={settings.allowMentions} onValueChange={() => toggle('allowMentions')} disabled={isSaving} />}
354
261
  />
355
- <SettingRow
262
+ <SettingsListItem
356
263
  title={t('privacySettings.allowDirectMessages') || 'Allow Direct Messages'}
357
264
  description={t('privacySettings.allowDirectMessagesDesc') || 'Let others send you direct messages'}
358
- value={settings.allowDirectMessages}
359
- onValueChange={() => toggle('allowDirectMessages')}
360
- disabled={isSaving}
361
- textColor={bloomTheme.colors.text}
362
- mutedTextColor={bloomTheme.colors.textSecondary}
363
- borderColor={bloomTheme.colors.border}
265
+ rightElement={<Switch value={settings.allowDirectMessages} onValueChange={() => toggle('allowDirectMessages')} disabled={isSaving} />}
364
266
  />
365
- <SettingRow
267
+ <SettingsListItem
366
268
  title={t('privacySettings.hideReadReceipts') || 'Hide Read Receipts'}
367
269
  description={t('privacySettings.hideReadReceiptsDesc') || 'Don\'t show read receipts in messages'}
368
- value={settings.hideReadReceipts}
369
- onValueChange={() => toggle('hideReadReceipts')}
370
- disabled={isSaving}
371
- textColor={bloomTheme.colors.text}
372
- mutedTextColor={bloomTheme.colors.textSecondary}
373
- borderColor={bloomTheme.colors.border}
270
+ rightElement={<Switch value={settings.hideReadReceipts} onValueChange={() => toggle('hideReadReceipts')} disabled={isSaving} />}
374
271
  />
375
- </Section>
272
+ </SettingsListGroup>
376
273
 
377
274
  {/* Activity & Data */}
378
- <Section title={t('privacySettings.sections.activity') || 'ACTIVITY & DATA'} >
379
- <SettingRow
275
+ <SettingsListGroup title={t('privacySettings.sections.activity') || 'ACTIVITY & DATA'}>
276
+ <SettingsListItem
380
277
  title={t('privacySettings.showActivity') || 'Show Activity Status'}
381
278
  description={t('privacySettings.showActivityDesc') || 'Display your activity on your profile'}
382
- value={settings.showActivity}
383
- onValueChange={() => toggle('showActivity')}
384
- disabled={isSaving}
385
- textColor={bloomTheme.colors.text}
386
- mutedTextColor={bloomTheme.colors.textSecondary}
387
- borderColor={bloomTheme.colors.border}
279
+ rightElement={<Switch value={settings.showActivity} onValueChange={() => toggle('showActivity')} disabled={isSaving} />}
388
280
  />
389
- <SettingRow
281
+ <SettingsListItem
390
282
  title={t('privacySettings.dataSharing') || 'Data Sharing'}
391
283
  description={t('privacySettings.dataSharingDesc') || 'Allow sharing data for personalization'}
392
- value={settings.dataSharing}
393
- onValueChange={() => toggle('dataSharing')}
394
- disabled={isSaving}
395
- textColor={bloomTheme.colors.text}
396
- mutedTextColor={bloomTheme.colors.textSecondary}
397
- borderColor={bloomTheme.colors.border}
284
+ rightElement={<Switch value={settings.dataSharing} onValueChange={() => toggle('dataSharing')} disabled={isSaving} />}
398
285
  />
399
- <SettingRow
286
+ <SettingsListItem
400
287
  title={t('privacySettings.locationSharing') || 'Location Sharing'}
401
288
  description={t('privacySettings.locationSharingDesc') || 'Share your location'}
402
- value={settings.locationSharing}
403
- onValueChange={() => toggle('locationSharing')}
404
- disabled={isSaving}
405
- textColor={bloomTheme.colors.text}
406
- mutedTextColor={bloomTheme.colors.textSecondary}
407
- borderColor={bloomTheme.colors.border}
289
+ rightElement={<Switch value={settings.locationSharing} onValueChange={() => toggle('locationSharing')} disabled={isSaving} />}
408
290
  />
409
- <SettingRow
291
+ <SettingsListItem
410
292
  title={t('privacySettings.analyticsSharing') || 'Analytics Sharing'}
411
293
  description={t('privacySettings.analyticsSharingDesc') || 'Allow analytics data collection'}
412
- value={settings.analyticsSharing}
413
- onValueChange={() => toggle('analyticsSharing')}
414
- disabled={isSaving}
415
- textColor={bloomTheme.colors.text}
416
- mutedTextColor={bloomTheme.colors.textSecondary}
417
- borderColor={bloomTheme.colors.border}
294
+ rightElement={<Switch value={settings.analyticsSharing} onValueChange={() => toggle('analyticsSharing')} disabled={isSaving} />}
418
295
  />
419
- </Section>
296
+ </SettingsListGroup>
420
297
 
421
298
  {/* Content & Safety */}
422
- <Section title={t('privacySettings.sections.content') || 'CONTENT & SAFETY'} >
423
- <SettingRow
299
+ <SettingsListGroup title={t('privacySettings.sections.content') || 'CONTENT & SAFETY'}>
300
+ <SettingsListItem
424
301
  title={t('privacySettings.sensitiveContent') || 'Show Sensitive Content'}
425
302
  description={t('privacySettings.sensitiveContentDesc') || 'Allow sensitive or explicit content'}
426
- value={settings.sensitiveContent}
427
- onValueChange={() => toggle('sensitiveContent')}
428
- disabled={isSaving}
429
- textColor={bloomTheme.colors.text}
430
- mutedTextColor={bloomTheme.colors.textSecondary}
431
- borderColor={bloomTheme.colors.border}
303
+ rightElement={<Switch value={settings.sensitiveContent} onValueChange={() => toggle('sensitiveContent')} disabled={isSaving} />}
432
304
  />
433
- <SettingRow
305
+ <SettingsListItem
434
306
  title={t('privacySettings.autoFilter') || 'Auto Filter'}
435
307
  description={t('privacySettings.autoFilterDesc') || 'Automatically filter inappropriate content'}
436
- value={settings.autoFilter}
437
- onValueChange={() => toggle('autoFilter')}
438
- disabled={isSaving}
439
- textColor={bloomTheme.colors.text}
440
- mutedTextColor={bloomTheme.colors.textSecondary}
441
- borderColor={bloomTheme.colors.border}
308
+ rightElement={<Switch value={settings.autoFilter} onValueChange={() => toggle('autoFilter')} disabled={isSaving} />}
442
309
  />
443
- <SettingRow
310
+ <SettingsListItem
444
311
  title={t('privacySettings.muteKeywords') || 'Mute Keywords'}
445
312
  description={t('privacySettings.muteKeywordsDesc') || 'Hide posts containing muted keywords'}
446
- value={settings.muteKeywords}
447
- onValueChange={() => toggle('muteKeywords')}
448
- disabled={isSaving}
449
- textColor={bloomTheme.colors.text}
450
- mutedTextColor={bloomTheme.colors.textSecondary}
451
- borderColor={bloomTheme.colors.border}
313
+ rightElement={<Switch value={settings.muteKeywords} onValueChange={() => toggle('muteKeywords')} disabled={isSaving} />}
452
314
  />
453
- <SettingRow
315
+ <SettingsListItem
454
316
  title={t('privacySettings.blockScreenshots') || 'Block Screenshots'}
455
317
  description={t('privacySettings.blockScreenshotsDesc') || 'Prevent screenshots of your content'}
456
- value={settings.blockScreenshots}
457
- onValueChange={() => toggle('blockScreenshots')}
458
- disabled={isSaving}
459
- textColor={bloomTheme.colors.text}
460
- mutedTextColor={bloomTheme.colors.textSecondary}
461
- borderColor={bloomTheme.colors.border}
318
+ rightElement={<Switch value={settings.blockScreenshots} onValueChange={() => toggle('blockScreenshots')} disabled={isSaving} />}
462
319
  />
463
- </Section>
320
+ </SettingsListGroup>
464
321
 
465
322
  {/* Blocked Users */}
466
- <Section title={t('privacySettings.sections.blockedUsers') || 'BLOCKED USERS'}>
323
+ <SettingsListGroup title={t('privacySettings.sections.blockedUsers') || 'BLOCKED USERS'}>
467
324
  {isLoadingUsers ? (
468
325
  <LoadingState color={bloomTheme.colors.text} size="small" />
469
326
  ) : blockedUsers.length === 0 ? (
@@ -472,12 +329,27 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
472
329
  textColor={bloomTheme.colors.textSecondary}
473
330
  />
474
331
  ) : (
475
- <GroupedSection items={blockedUserItems} />
332
+ blockedUsers.map((blocked) => {
333
+ const { userId, username, avatar } = extractUserInfo(blocked, 'blockedId');
334
+ const avatarUri = avatar && oxyServices ? oxyServices.getFileDownloadUrl(avatar, 'thumb') : undefined;
335
+ return (
336
+ <SettingsListItem
337
+ key={userId}
338
+ icon={<Avatar uri={avatarUri} name={username} size={20} />}
339
+ title={username}
340
+ rightElement={
341
+ <TouchableOpacity onPress={() => handleUnblock(userId)} style={[styles.actionButton, { backgroundColor: bloomTheme.colors.backgroundSecondary }]}>
342
+ <Text style={[styles.actionButtonText, { color: bloomTheme.colors.error }]}>{t('privacySettings.unblock') || 'Unblock'}</Text>
343
+ </TouchableOpacity>
344
+ }
345
+ />
346
+ );
347
+ })
476
348
  )}
477
- </Section>
349
+ </SettingsListGroup>
478
350
 
479
351
  {/* Restricted Users */}
480
- <Section title={t('privacySettings.sections.restrictedUsers') || 'RESTRICTED USERS'}>
352
+ <SettingsListGroup title={t('privacySettings.sections.restrictedUsers') || 'RESTRICTED USERS'}>
481
353
  {isLoadingUsers ? (
482
354
  <LoadingState color={bloomTheme.colors.text} size="small" />
483
355
  ) : restrictedUsers.length === 0 ? (
@@ -486,9 +358,25 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
486
358
  textColor={bloomTheme.colors.textSecondary}
487
359
  />
488
360
  ) : (
489
- <GroupedSection items={restrictedUserItems} />
361
+ restrictedUsers.map((restricted) => {
362
+ const { userId, username, avatar } = extractUserInfo(restricted, 'restrictedId');
363
+ const avatarUri = avatar && oxyServices ? oxyServices.getFileDownloadUrl(avatar, 'thumb') : undefined;
364
+ return (
365
+ <SettingsListItem
366
+ key={userId}
367
+ icon={<Avatar uri={avatarUri} name={username} size={20} />}
368
+ title={username}
369
+ description={t('privacySettings.restrictedDescription') || 'Limited interactions'}
370
+ rightElement={
371
+ <TouchableOpacity onPress={() => handleUnrestrict(userId)} style={[styles.actionButton, { backgroundColor: bloomTheme.colors.backgroundSecondary }]}>
372
+ <Text style={[styles.actionButtonText, { color: bloomTheme.colors.primary }]}>{t('privacySettings.unrestrict') || 'Unrestrict'}</Text>
373
+ </TouchableOpacity>
374
+ }
375
+ />
376
+ );
377
+ })
490
378
  )}
491
- </Section>
379
+ </SettingsListGroup>
492
380
  </ScrollView>
493
381
  </View>
494
382
  );
@@ -8,7 +8,9 @@ import {
8
8
  } from 'react-native';
9
9
  import type { BaseScreenProps } from '../types/navigation';
10
10
  import { toast } from '../../lib/sonner';
11
- import { Header, Section, GroupedSection, LoadingState, EmptyState } from '../components';
11
+ import { Header, LoadingState, EmptyState } from '../components';
12
+ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
13
+ import { SettingsIcon } from '../components/SettingsIcon';
12
14
  import { useI18n } from '../hooks/useI18n';
13
15
  import { useTheme } from '@oxyhq/bloom/theme';
14
16
  import { useColorScheme } from '../hooks/useColorScheme';
@@ -156,17 +158,16 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
156
158
  textColor={bloomTheme.colors.text}
157
159
  />
158
160
  ) : (
159
- <Section title={t('saves.savedItems') || 'Saved Items'} isFirst={true}>
160
- <GroupedSection
161
- items={savedItems.map((item) => ({
162
- id: item.id,
163
- icon: item.type === 'post' ? 'document-text' : 'folder',
164
- iconColor: item.type === 'post' ? themeColors.iconSecurity : themeColors.iconStorage,
165
- title: item.title,
166
- subtitle: formatDate(item.savedAt),
167
- }))}
168
- />
169
- </Section>
161
+ <SettingsListGroup title={t('saves.savedItems') || 'Saved Items'}>
162
+ {savedItems.map((item) => (
163
+ <SettingsListItem
164
+ key={item.id}
165
+ icon={<SettingsIcon name={item.type === 'post' ? 'file-document-outline' : 'folder'} color={item.type === 'post' ? themeColors.iconSecurity : themeColors.iconStorage} />}
166
+ title={item.title}
167
+ description={formatDate(item.savedAt)}
168
+ />
169
+ ))}
170
+ </SettingsListGroup>
170
171
  )
171
172
  ) : (
172
173
  collections.length === 0 ? (
@@ -175,17 +176,16 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
175
176
  textColor={bloomTheme.colors.text}
176
177
  />
177
178
  ) : (
178
- <Section title={t('saves.collections') || 'Collections'} isFirst={true}>
179
- <GroupedSection
180
- items={collections.map((collection) => ({
181
- id: collection.id,
182
- icon: 'folder',
183
- iconColor: themeColors.iconStorage,
184
- title: collection.name,
185
- subtitle: `${collection.itemCount || 0} items`,
186
- }))}
187
- />
188
- </Section>
179
+ <SettingsListGroup title={t('saves.collections') || 'Collections'}>
180
+ {collections.map((collection) => (
181
+ <SettingsListItem
182
+ key={collection.id}
183
+ icon={<SettingsIcon name="folder" color={themeColors.iconStorage} />}
184
+ title={collection.name}
185
+ description={`${collection.itemCount || 0} items`}
186
+ />
187
+ ))}
188
+ </SettingsListGroup>
189
189
  )
190
190
  )}
191
191
  </ScrollView>
@@ -5,7 +5,9 @@ import {
5
5
  ScrollView,
6
6
  } from 'react-native';
7
7
  import type { BaseScreenProps } from '../types/navigation';
8
- import { Header, Section, LoadingState, SettingRow } from '../components';
8
+ import { Header, LoadingState } from '../components';
9
+ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
10
+ import { Switch } from '@oxyhq/bloom/switch';
9
11
  import { useI18n } from '../hooks/useI18n';
10
12
  import { useTheme } from '@oxyhq/bloom/theme';
11
13
  import { useSettingToggles } from '../hooks/useSettingToggle';
@@ -102,32 +104,22 @@ const SearchSettingsScreen: React.FC<BaseScreenProps> = ({
102
104
 
103
105
  <ScrollView style={styles.content}>
104
106
  {/* SafeSearch */}
105
- <Section title={t('searchSettings.safeSearch.title') || 'SafeSearch'} isFirst={true}>
106
- <SettingRow
107
+ <SettingsListGroup title={t('searchSettings.safeSearch.title') || 'SafeSearch'}>
108
+ <SettingsListItem
107
109
  title={t('searchSettings.safeSearch.label') || 'Enable SafeSearch'}
108
110
  description={t('searchSettings.safeSearch.description') || 'Filter out explicit content from search results'}
109
- value={settings.safeSearch}
110
- onValueChange={() => toggle('safeSearch')}
111
- disabled={isSaving}
112
- textColor={bloomTheme.colors.text}
113
- mutedTextColor={bloomTheme.colors.textSecondary}
114
- borderColor={bloomTheme.colors.border}
111
+ rightElement={<Switch value={settings.safeSearch} onValueChange={() => toggle('safeSearch')} disabled={isSaving} />}
115
112
  />
116
- </Section>
113
+ </SettingsListGroup>
117
114
 
118
115
  {/* Search Personalization */}
119
- <Section title={t('searchSettings.personalization.title') || 'Search Personalization'}>
120
- <SettingRow
116
+ <SettingsListGroup title={t('searchSettings.personalization.title') || 'Search Personalization'}>
117
+ <SettingsListItem
121
118
  title={t('searchSettings.personalization.label') || 'Personalized Search'}
122
119
  description={t('searchSettings.personalization.description') || 'Use your activity to improve search results'}
123
- value={settings.searchPersonalization}
124
- onValueChange={() => toggle('searchPersonalization')}
125
- disabled={isSaving}
126
- textColor={bloomTheme.colors.text}
127
- mutedTextColor={bloomTheme.colors.textSecondary}
128
- borderColor={bloomTheme.colors.border}
120
+ rightElement={<Switch value={settings.searchPersonalization} onValueChange={() => toggle('searchPersonalization')} disabled={isSaving} />}
129
121
  />
130
- </Section>
122
+ </SettingsListGroup>
131
123
  </ScrollView>
132
124
  </View>
133
125
  );