@oxyhq/services 5.21.6 → 5.22.0

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 (478) hide show
  1. package/README.md +201 -2
  2. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  4. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  5. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  6. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  7. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  8. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  9. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  10. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  11. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  12. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  13. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  14. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  15. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  16. package/lib/commonjs/core/HttpService.js +87 -2
  17. package/lib/commonjs/core/HttpService.js.map +1 -1
  18. package/lib/commonjs/core/mixins/OxyServices.assets.js +3 -1
  19. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
  20. package/lib/commonjs/crypto/keyManager.js +67 -22
  21. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  22. package/lib/commonjs/i18n/locales/en-US.json +3 -3
  23. package/lib/commonjs/i18n/locales/es-ES.json +240 -19
  24. package/lib/commonjs/index.js +66 -0
  25. package/lib/commonjs/index.js.map +1 -1
  26. package/lib/commonjs/ui/components/Avatar.js +1 -1
  27. package/lib/commonjs/ui/components/Avatar.js.map +1 -1
  28. package/lib/commonjs/ui/components/FollowButton.js +1 -1
  29. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  30. package/lib/commonjs/ui/components/FontLoader.js +34 -34
  31. package/lib/commonjs/ui/components/FontLoader.js.map +1 -1
  32. package/lib/commonjs/ui/components/Header.js +4 -4
  33. package/lib/commonjs/ui/components/Header.js.map +1 -1
  34. package/lib/commonjs/ui/components/OxyPayButton.js +1 -1
  35. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  36. package/lib/commonjs/ui/components/OxySignInButton.js +2 -1
  37. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  38. package/lib/commonjs/ui/components/ProfileCard.js +1 -1
  39. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  40. package/lib/commonjs/ui/components/SectionTitle.js +1 -1
  41. package/lib/commonjs/ui/components/SectionTitle.js.map +1 -1
  42. package/lib/commonjs/ui/components/StepBasedScreen.js +2 -1
  43. package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
  44. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +2 -1
  45. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +1 -1
  46. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +57 -0
  47. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +1 -0
  48. package/lib/commonjs/ui/components/fileManagement/styles.js +17 -17
  49. package/lib/commonjs/ui/components/fileManagement/styles.js.map +1 -1
  50. package/lib/commonjs/ui/components/payment/paymentStyles.js +7 -7
  51. package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -1
  52. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +177 -0
  53. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -0
  54. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +10 -123
  55. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  56. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +2 -32
  57. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  58. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +2 -31
  59. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  60. package/lib/commonjs/ui/hooks/useFileFiltering.js +76 -0
  61. package/lib/commonjs/ui/hooks/useFileFiltering.js.map +1 -0
  62. package/lib/commonjs/ui/navigation/routes.js +2 -0
  63. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  64. package/lib/commonjs/ui/screens/AccountCenterScreen.js +4 -2
  65. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  66. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +13 -5
  67. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  68. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +273 -1820
  69. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  70. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +1 -1
  71. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  72. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +3 -1
  73. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  74. package/lib/commonjs/ui/screens/AppInfoScreen.js +2 -2
  75. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  76. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +640 -0
  77. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -0
  78. package/lib/commonjs/ui/screens/FileManagementScreen.js +41 -23
  79. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/HistoryViewScreen.js +9 -3
  81. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  82. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +4 -2
  83. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  84. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +3 -1
  85. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  86. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +11 -12
  87. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  88. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +12 -4
  89. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  90. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +3 -1
  91. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/SessionManagementScreen.js +15 -5
  93. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  94. package/lib/commonjs/ui/screens/UserLinksScreen.js +3 -1
  95. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  96. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +2 -1
  97. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +2 -4
  99. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +3 -3
  101. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  102. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +3 -3
  103. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  104. package/lib/commonjs/ui/styles/authStyles.js +5 -4
  105. package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
  106. package/lib/commonjs/ui/styles/fonts.js +27 -27
  107. package/lib/commonjs/ui/styles/fonts.js.map +1 -1
  108. package/lib/commonjs/ui/styles/theme.js +3 -3
  109. package/lib/commonjs/ui/styles/theme.js.map +1 -1
  110. package/lib/commonjs/ui/utils/authHelpers.js +164 -0
  111. package/lib/commonjs/ui/utils/authHelpers.js.map +1 -0
  112. package/lib/commonjs/ui/utils/avatarUtils.js +18 -61
  113. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  114. package/lib/commonjs/web.js +682 -0
  115. package/lib/commonjs/web.js.map +1 -0
  116. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  117. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  118. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  119. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  120. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  121. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  122. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  123. package/lib/module/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  124. package/lib/module/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  125. package/lib/module/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  126. package/lib/module/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  127. package/lib/module/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  128. package/lib/module/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  129. package/lib/module/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  130. package/lib/module/core/HttpService.js +87 -2
  131. package/lib/module/core/HttpService.js.map +1 -1
  132. package/lib/module/core/mixins/OxyServices.assets.js +3 -1
  133. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
  134. package/lib/module/crypto/keyManager.js +67 -22
  135. package/lib/module/crypto/keyManager.js.map +1 -1
  136. package/lib/module/i18n/locales/en-US.json +3 -3
  137. package/lib/module/i18n/locales/es-ES.json +240 -19
  138. package/lib/module/index.js +6 -0
  139. package/lib/module/index.js.map +1 -1
  140. package/lib/module/ui/components/Avatar.js +1 -1
  141. package/lib/module/ui/components/Avatar.js.map +1 -1
  142. package/lib/module/ui/components/FollowButton.js +1 -1
  143. package/lib/module/ui/components/FollowButton.js.map +1 -1
  144. package/lib/module/ui/components/FontLoader.js +34 -34
  145. package/lib/module/ui/components/FontLoader.js.map +1 -1
  146. package/lib/module/ui/components/Header.js +4 -4
  147. package/lib/module/ui/components/Header.js.map +1 -1
  148. package/lib/module/ui/components/OxyPayButton.js +1 -1
  149. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  150. package/lib/module/ui/components/OxySignInButton.js +2 -1
  151. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  152. package/lib/module/ui/components/ProfileCard.js +1 -1
  153. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  154. package/lib/module/ui/components/SectionTitle.js +1 -1
  155. package/lib/module/ui/components/SectionTitle.js.map +1 -1
  156. package/lib/module/ui/components/StepBasedScreen.js +2 -1
  157. package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
  158. package/lib/module/ui/components/feedback/feedbackStyles.js +2 -1
  159. package/lib/module/ui/components/feedback/feedbackStyles.js.map +1 -1
  160. package/lib/module/ui/components/fileManagement/AnimatedButton.js +50 -0
  161. package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +1 -0
  162. package/lib/module/ui/components/fileManagement/styles.js +17 -17
  163. package/lib/module/ui/components/fileManagement/styles.js.map +1 -1
  164. package/lib/module/ui/components/payment/paymentStyles.js +7 -7
  165. package/lib/module/ui/components/payment/paymentStyles.js.map +1 -1
  166. package/lib/module/ui/hooks/mutations/mutationFactory.js +173 -0
  167. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -0
  168. package/lib/module/ui/hooks/mutations/useAccountMutations.js +10 -122
  169. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  170. package/lib/module/ui/hooks/queries/useAccountQueries.js +2 -32
  171. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  172. package/lib/module/ui/hooks/queries/useServicesQueries.js +2 -31
  173. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  174. package/lib/module/ui/hooks/useFileFiltering.js +72 -0
  175. package/lib/module/ui/hooks/useFileFiltering.js.map +1 -0
  176. package/lib/module/ui/navigation/routes.js +2 -0
  177. package/lib/module/ui/navigation/routes.js.map +1 -1
  178. package/lib/module/ui/screens/AccountCenterScreen.js +4 -2
  179. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  180. package/lib/module/ui/screens/AccountOverviewScreen.js +13 -5
  181. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  182. package/lib/module/ui/screens/AccountSettingsScreen.js +277 -1824
  183. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  184. package/lib/module/ui/screens/AccountSwitcherScreen.js +1 -1
  185. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  186. package/lib/module/ui/screens/AccountVerificationScreen.js +3 -1
  187. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  188. package/lib/module/ui/screens/AppInfoScreen.js +2 -2
  189. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  190. package/lib/module/ui/screens/EditProfileFieldScreen.js +635 -0
  191. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -0
  192. package/lib/module/ui/screens/FileManagementScreen.js +41 -23
  193. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  194. package/lib/module/ui/screens/HistoryViewScreen.js +9 -3
  195. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  196. package/lib/module/ui/screens/LanguageSelectorScreen.js +4 -2
  197. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  198. package/lib/module/ui/screens/LegalDocumentsScreen.js +3 -1
  199. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  200. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +11 -12
  201. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  202. package/lib/module/ui/screens/PrivacySettingsScreen.js +12 -4
  203. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  204. package/lib/module/ui/screens/SearchSettingsScreen.js +3 -1
  205. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  206. package/lib/module/ui/screens/SessionManagementScreen.js +15 -5
  207. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  208. package/lib/module/ui/screens/UserLinksScreen.js +3 -1
  209. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  210. package/lib/module/ui/screens/WelcomeNewUserScreen.js +2 -1
  211. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  212. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +2 -4
  213. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  214. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +3 -3
  215. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  216. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +3 -3
  217. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  218. package/lib/module/ui/styles/authStyles.js +5 -4
  219. package/lib/module/ui/styles/authStyles.js.map +1 -1
  220. package/lib/module/ui/styles/fonts.js +27 -27
  221. package/lib/module/ui/styles/fonts.js.map +1 -1
  222. package/lib/module/ui/styles/theme.js +3 -3
  223. package/lib/module/ui/styles/theme.js.map +1 -1
  224. package/lib/module/ui/utils/authHelpers.js +154 -0
  225. package/lib/module/ui/utils/authHelpers.js.map +1 -0
  226. package/lib/module/ui/utils/avatarUtils.js +18 -61
  227. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  228. package/lib/module/web.js +75 -0
  229. package/lib/module/web.js.map +1 -0
  230. package/lib/typescript/commonjs/core/HttpService.d.ts +5 -0
  231. package/lib/typescript/commonjs/core/HttpService.d.ts.map +1 -1
  232. package/lib/typescript/commonjs/crypto/keyManager.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/index.d.ts +6 -0
  234. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/ui/components/StepBasedScreen.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts +16 -0
  239. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -0
  240. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +76 -0
  241. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts.map +1 -0
  242. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +29 -4
  243. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  244. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +1 -1
  245. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  246. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  247. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/hooks/useFileFiltering.d.ts +29 -0
  249. package/lib/typescript/commonjs/ui/hooks/useFileFiltering.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  251. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts +13 -0
  257. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -0
  258. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/styles/fonts.d.ts +7 -7
  270. package/lib/typescript/commonjs/ui/styles/theme.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/ui/utils/authHelpers.d.ts +99 -0
  272. package/lib/typescript/commonjs/ui/utils/authHelpers.d.ts.map +1 -0
  273. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/web.d.ts +54 -0
  275. package/lib/typescript/commonjs/web.d.ts.map +1 -0
  276. package/lib/typescript/module/core/HttpService.d.ts +5 -0
  277. package/lib/typescript/module/core/HttpService.d.ts.map +1 -1
  278. package/lib/typescript/module/crypto/keyManager.d.ts.map +1 -1
  279. package/lib/typescript/module/index.d.ts +6 -0
  280. package/lib/typescript/module/index.d.ts.map +1 -1
  281. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  282. package/lib/typescript/module/ui/components/StepBasedScreen.d.ts.map +1 -1
  283. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +1 -1
  284. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts +16 -0
  285. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -0
  286. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +76 -0
  287. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts.map +1 -0
  288. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +29 -4
  289. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  290. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +1 -1
  291. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  292. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  293. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  294. package/lib/typescript/module/ui/hooks/useFileFiltering.d.ts +29 -0
  295. package/lib/typescript/module/ui/hooks/useFileFiltering.d.ts.map +1 -0
  296. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  297. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  299. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  300. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  301. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  302. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts +13 -0
  303. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -0
  304. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  305. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  306. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  307. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  308. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  310. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  311. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  312. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  313. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  314. package/lib/typescript/module/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  315. package/lib/typescript/module/ui/styles/fonts.d.ts +7 -7
  316. package/lib/typescript/module/ui/styles/theme.d.ts.map +1 -1
  317. package/lib/typescript/module/ui/utils/authHelpers.d.ts +99 -0
  318. package/lib/typescript/module/ui/utils/authHelpers.d.ts.map +1 -0
  319. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  320. package/lib/typescript/module/web.d.ts +54 -0
  321. package/lib/typescript/module/web.d.ts.map +1 -0
  322. package/package.json +27 -41
  323. package/src/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  324. package/src/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  325. package/src/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  326. package/src/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  327. package/src/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  328. package/src/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  329. package/src/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  330. package/src/core/HttpService.ts +91 -0
  331. package/src/core/mixins/OxyServices.assets.ts +1 -1
  332. package/src/crypto/keyManager.ts +23 -22
  333. package/src/i18n/locales/en-US.json +3 -3
  334. package/src/i18n/locales/es-ES.json +240 -19
  335. package/src/index.ts +25 -0
  336. package/src/ui/components/Avatar.tsx +1 -1
  337. package/src/ui/components/FollowButton.tsx +1 -1
  338. package/src/ui/components/FontLoader.tsx +34 -34
  339. package/src/ui/components/Header.tsx +4 -4
  340. package/src/ui/components/OxyPayButton.tsx +1 -1
  341. package/src/ui/components/OxySignInButton.tsx +2 -1
  342. package/src/ui/components/ProfileCard.tsx +1 -1
  343. package/src/ui/components/SectionTitle.tsx +1 -1
  344. package/src/ui/components/StepBasedScreen.tsx +2 -1
  345. package/src/ui/components/feedback/feedbackStyles.ts +2 -1
  346. package/src/ui/components/fileManagement/AnimatedButton.tsx +56 -0
  347. package/src/ui/components/fileManagement/styles.ts +17 -17
  348. package/src/ui/components/payment/paymentStyles.ts +7 -7
  349. package/src/ui/hooks/mutations/mutationFactory.ts +215 -0
  350. package/src/ui/hooks/mutations/useAccountMutations.ts +48 -136
  351. package/src/ui/hooks/queries/useAccountQueries.ts +6 -33
  352. package/src/ui/hooks/queries/useServicesQueries.ts +6 -32
  353. package/src/ui/hooks/useFileFiltering.ts +115 -0
  354. package/src/ui/navigation/routes.ts +3 -0
  355. package/src/ui/screens/AccountCenterScreen.tsx +4 -2
  356. package/src/ui/screens/AccountOverviewScreen.tsx +13 -5
  357. package/src/ui/screens/AccountSettingsScreen.tsx +35 -1511
  358. package/src/ui/screens/AccountSwitcherScreen.tsx +1 -1
  359. package/src/ui/screens/AccountVerificationScreen.tsx +3 -1
  360. package/src/ui/screens/AppInfoScreen.tsx +2 -2
  361. package/src/ui/screens/EditProfileFieldScreen.tsx +685 -0
  362. package/src/ui/screens/FileManagementScreen.tsx +35 -17
  363. package/src/ui/screens/HistoryViewScreen.tsx +9 -3
  364. package/src/ui/screens/LanguageSelectorScreen.tsx +4 -2
  365. package/src/ui/screens/LegalDocumentsScreen.tsx +3 -1
  366. package/src/ui/screens/PremiumSubscriptionScreen.tsx +11 -13
  367. package/src/ui/screens/PrivacySettingsScreen.tsx +12 -4
  368. package/src/ui/screens/SearchSettingsScreen.tsx +3 -1
  369. package/src/ui/screens/SessionManagementScreen.tsx +15 -5
  370. package/src/ui/screens/UserLinksScreen.tsx +3 -1
  371. package/src/ui/screens/WelcomeNewUserScreen.tsx +2 -1
  372. package/src/ui/screens/karma/KarmaAboutScreen.tsx +6 -8
  373. package/src/ui/screens/karma/KarmaCenterScreen.tsx +3 -3
  374. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +3 -3
  375. package/src/ui/styles/authStyles.ts +4 -4
  376. package/src/ui/styles/fonts.ts +26 -26
  377. package/src/ui/styles/theme.ts +3 -5
  378. package/src/ui/utils/authHelpers.ts +183 -0
  379. package/src/ui/utils/avatarUtils.ts +25 -65
  380. package/src/web.ts +230 -0
  381. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  382. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  383. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  384. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  385. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  386. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  387. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  388. package/lib/commonjs/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  389. package/lib/commonjs/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  390. package/lib/commonjs/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  391. package/lib/commonjs/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  392. package/lib/commonjs/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  393. package/lib/commonjs/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  394. package/lib/commonjs/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  395. package/lib/commonjs/ui/components/profile/EditBioModal.js +0 -181
  396. package/lib/commonjs/ui/components/profile/EditBioModal.js.map +0 -1
  397. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +0 -204
  398. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +0 -1
  399. package/lib/commonjs/ui/components/profile/EditEmailModal.js +0 -184
  400. package/lib/commonjs/ui/components/profile/EditEmailModal.js.map +0 -1
  401. package/lib/commonjs/ui/components/profile/EditFieldModal.js +0 -412
  402. package/lib/commonjs/ui/components/profile/EditFieldModal.js.map +0 -1
  403. package/lib/commonjs/ui/components/profile/EditLinksModal.js +0 -315
  404. package/lib/commonjs/ui/components/profile/EditLinksModal.js.map +0 -1
  405. package/lib/commonjs/ui/components/profile/EditLocationModal.js +0 -273
  406. package/lib/commonjs/ui/components/profile/EditLocationModal.js.map +0 -1
  407. package/lib/commonjs/ui/components/profile/EditUsernameModal.js +0 -180
  408. package/lib/commonjs/ui/components/profile/EditUsernameModal.js.map +0 -1
  409. package/lib/module/assets/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  410. package/lib/module/assets/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  411. package/lib/module/assets/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  412. package/lib/module/assets/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  413. package/lib/module/assets/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  414. package/lib/module/assets/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  415. package/lib/module/assets/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  416. package/lib/module/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  417. package/lib/module/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  418. package/lib/module/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  419. package/lib/module/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  420. package/lib/module/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  421. package/lib/module/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  422. package/lib/module/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  423. package/lib/module/ui/components/profile/EditBioModal.js +0 -175
  424. package/lib/module/ui/components/profile/EditBioModal.js.map +0 -1
  425. package/lib/module/ui/components/profile/EditDisplayNameModal.js +0 -198
  426. package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +0 -1
  427. package/lib/module/ui/components/profile/EditEmailModal.js +0 -178
  428. package/lib/module/ui/components/profile/EditEmailModal.js.map +0 -1
  429. package/lib/module/ui/components/profile/EditFieldModal.js +0 -406
  430. package/lib/module/ui/components/profile/EditFieldModal.js.map +0 -1
  431. package/lib/module/ui/components/profile/EditLinksModal.js +0 -309
  432. package/lib/module/ui/components/profile/EditLinksModal.js.map +0 -1
  433. package/lib/module/ui/components/profile/EditLocationModal.js +0 -267
  434. package/lib/module/ui/components/profile/EditLocationModal.js.map +0 -1
  435. package/lib/module/ui/components/profile/EditUsernameModal.js +0 -174
  436. package/lib/module/ui/components/profile/EditUsernameModal.js.map +0 -1
  437. package/lib/typescript/commonjs/ui/components/profile/EditBioModal.d.ts +0 -11
  438. package/lib/typescript/commonjs/ui/components/profile/EditBioModal.d.ts.map +0 -1
  439. package/lib/typescript/commonjs/ui/components/profile/EditDisplayNameModal.d.ts +0 -12
  440. package/lib/typescript/commonjs/ui/components/profile/EditDisplayNameModal.d.ts.map +0 -1
  441. package/lib/typescript/commonjs/ui/components/profile/EditEmailModal.d.ts +0 -11
  442. package/lib/typescript/commonjs/ui/components/profile/EditEmailModal.d.ts.map +0 -1
  443. package/lib/typescript/commonjs/ui/components/profile/EditFieldModal.d.ts +0 -110
  444. package/lib/typescript/commonjs/ui/components/profile/EditFieldModal.d.ts.map +0 -1
  445. package/lib/typescript/commonjs/ui/components/profile/EditLinksModal.d.ts +0 -18
  446. package/lib/typescript/commonjs/ui/components/profile/EditLinksModal.d.ts.map +0 -1
  447. package/lib/typescript/commonjs/ui/components/profile/EditLocationModal.d.ts +0 -20
  448. package/lib/typescript/commonjs/ui/components/profile/EditLocationModal.d.ts.map +0 -1
  449. package/lib/typescript/commonjs/ui/components/profile/EditUsernameModal.d.ts +0 -11
  450. package/lib/typescript/commonjs/ui/components/profile/EditUsernameModal.d.ts.map +0 -1
  451. package/lib/typescript/module/ui/components/profile/EditBioModal.d.ts +0 -11
  452. package/lib/typescript/module/ui/components/profile/EditBioModal.d.ts.map +0 -1
  453. package/lib/typescript/module/ui/components/profile/EditDisplayNameModal.d.ts +0 -12
  454. package/lib/typescript/module/ui/components/profile/EditDisplayNameModal.d.ts.map +0 -1
  455. package/lib/typescript/module/ui/components/profile/EditEmailModal.d.ts +0 -11
  456. package/lib/typescript/module/ui/components/profile/EditEmailModal.d.ts.map +0 -1
  457. package/lib/typescript/module/ui/components/profile/EditFieldModal.d.ts +0 -110
  458. package/lib/typescript/module/ui/components/profile/EditFieldModal.d.ts.map +0 -1
  459. package/lib/typescript/module/ui/components/profile/EditLinksModal.d.ts +0 -18
  460. package/lib/typescript/module/ui/components/profile/EditLinksModal.d.ts.map +0 -1
  461. package/lib/typescript/module/ui/components/profile/EditLocationModal.d.ts +0 -20
  462. package/lib/typescript/module/ui/components/profile/EditLocationModal.d.ts.map +0 -1
  463. package/lib/typescript/module/ui/components/profile/EditUsernameModal.d.ts +0 -11
  464. package/lib/typescript/module/ui/components/profile/EditUsernameModal.d.ts.map +0 -1
  465. package/src/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  466. package/src/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  467. package/src/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  468. package/src/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  469. package/src/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  470. package/src/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  471. package/src/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  472. package/src/ui/components/profile/EditBioModal.tsx +0 -184
  473. package/src/ui/components/profile/EditDisplayNameModal.tsx +0 -203
  474. package/src/ui/components/profile/EditEmailModal.tsx +0 -188
  475. package/src/ui/components/profile/EditFieldModal.tsx +0 -465
  476. package/src/ui/components/profile/EditLinksModal.tsx +0 -316
  477. package/src/ui/components/profile/EditLocationModal.tsx +0 -278
  478. package/src/ui/components/profile/EditUsernameModal.tsx +0 -183
@@ -1,316 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import {
3
- View,
4
- Text,
5
- TextInput,
6
- TouchableOpacity,
7
- StyleSheet,
8
- Modal,
9
- Platform,
10
- ScrollView,
11
- Image,
12
- } from 'react-native';
13
- import { Ionicons } from '@expo/vector-icons';
14
- import { useThemeStyles } from '../../hooks/useThemeStyles';
15
- import { useColorScheme } from '../../hooks/use-color-scheme';
16
- import { useI18n } from '../../hooks/useI18n';
17
- import { fontFamilies } from '../../styles/fonts';
18
- import { useProfileEditing } from '../../hooks/useProfileEditing';
19
-
20
- interface LinkMetadata {
21
- url: string;
22
- title?: string;
23
- description?: string;
24
- image?: string;
25
- id: string;
26
- }
27
-
28
- interface EditLinksModalProps {
29
- visible: boolean;
30
- onClose: () => void;
31
- initialLinks?: LinkMetadata[];
32
- theme?: 'light' | 'dark';
33
- onSave?: () => void;
34
- }
35
-
36
- export const EditLinksModal: React.FC<EditLinksModalProps> = ({
37
- visible,
38
- onClose,
39
- initialLinks = [],
40
- theme = 'light',
41
- onSave,
42
- }) => {
43
- const { t } = useI18n();
44
- const colorScheme = useColorScheme();
45
- const themeStyles = useThemeStyles(theme || 'light', colorScheme);
46
- const colors = themeStyles.colors;
47
- const { saveProfile, isSaving } = useProfileEditing();
48
-
49
- const [links, setLinks] = useState<LinkMetadata[]>(initialLinks);
50
- const [newLinkUrl, setNewLinkUrl] = useState('');
51
-
52
- useEffect(() => {
53
- if (visible) {
54
- setLinks(initialLinks);
55
- setNewLinkUrl('');
56
- }
57
- }, [visible, initialLinks]);
58
-
59
- const handleAddLink = () => {
60
- if (!newLinkUrl.trim()) return;
61
- const link: LinkMetadata = {
62
- id: `link-${Date.now()}`,
63
- url: newLinkUrl.trim(),
64
- title: newLinkUrl.replace(/^https?:\/\//, '').replace(/\/$/, ''),
65
- description: `Link to ${newLinkUrl}`,
66
- };
67
- setLinks([...links, link]);
68
- setNewLinkUrl('');
69
- };
70
-
71
- const handleRemoveLink = (id: string) => {
72
- setLinks(links.filter(link => link.id !== id));
73
- };
74
-
75
- const handleSave = async () => {
76
- const success = await saveProfile({
77
- linksMetadata: links,
78
- links: links.map(link => link.url),
79
- });
80
- if (success) {
81
- onSave?.();
82
- onClose();
83
- }
84
- };
85
-
86
- return (
87
- <Modal
88
- visible={visible}
89
- animationType="slide"
90
- transparent={true}
91
- onRequestClose={onClose}
92
- >
93
- <View style={styles.modalOverlay}>
94
- <View style={[styles.modalContent, { backgroundColor: colors.background }]}>
95
- <View style={styles.modalHeader}>
96
- <TouchableOpacity onPress={onClose} style={styles.closeButton}>
97
- <Ionicons name="close" size={24} color={colors.text} />
98
- </TouchableOpacity>
99
- <Text style={[styles.modalTitle, { color: colors.text }]}>
100
- {t('editProfile.items.links.title') || 'Links'}
101
- </Text>
102
- <TouchableOpacity
103
- onPress={handleSave}
104
- disabled={isSaving}
105
- style={[styles.saveButton, { opacity: isSaving ? 0.5 : 1 }]}
106
- >
107
- <Text style={[styles.saveButtonText, { color: colors.tint }]}>
108
- {isSaving ? 'Saving...' : 'Save'}
109
- </Text>
110
- </TouchableOpacity>
111
- </View>
112
-
113
- <ScrollView style={styles.modalBody}>
114
- <View style={styles.inputGroup}>
115
- <Text style={[styles.label, { color: colors.text }]}>
116
- {t('editProfile.items.links.add') || 'Add Link'}
117
- </Text>
118
- <View style={styles.addLinkRow}>
119
- <TextInput
120
- style={[
121
- styles.input,
122
- {
123
- backgroundColor: colors.card,
124
- color: colors.text,
125
- borderColor: colors.border,
126
- flex: 1,
127
- },
128
- ]}
129
- value={newLinkUrl}
130
- onChangeText={setNewLinkUrl}
131
- placeholder={t('editProfile.items.links.placeholder') || 'Enter URL (e.g., https://example.com)'}
132
- placeholderTextColor={colors.secondaryText}
133
- keyboardType="url"
134
- autoCapitalize="none"
135
- autoCorrect={false}
136
- selectionColor={colors.tint}
137
- />
138
- <TouchableOpacity
139
- style={[styles.addButton, { backgroundColor: colors.tint }]}
140
- onPress={handleAddLink}
141
- disabled={!newLinkUrl.trim()}
142
- >
143
- <Ionicons name="add" size={20} color="#fff" />
144
- </TouchableOpacity>
145
- </View>
146
- </View>
147
-
148
- {links.length > 0 && (
149
- <View style={styles.linksList}>
150
- <Text style={[styles.listTitle, { color: colors.text }]}>
151
- {t('editProfile.items.links.yourLinks') || 'Your Links'} ({links.length})
152
- </Text>
153
- {links.map((link, index) => (
154
- <View
155
- key={link.id}
156
- style={[
157
- styles.linkItem,
158
- { backgroundColor: colors.card, borderColor: colors.border },
159
- index < links.length - 1 && { borderBottomWidth: StyleSheet.hairlineWidth },
160
- ]}
161
- >
162
- {link.image && (
163
- <Image source={{ uri: link.image }} style={styles.linkImage} />
164
- )}
165
- <View style={styles.linkInfo}>
166
- <Text style={[styles.linkTitle, { color: colors.text }]} numberOfLines={1}>
167
- {link.title || link.url}
168
- </Text>
169
- {link.description && link.description !== link.title && (
170
- <Text style={[styles.linkDescription, { color: colors.secondaryText }]} numberOfLines={1}>
171
- {link.description}
172
- </Text>
173
- )}
174
- <Text style={[styles.linkUrl, { color: colors.secondaryText }]} numberOfLines={1}>
175
- {link.url}
176
- </Text>
177
- </View>
178
- <TouchableOpacity
179
- onPress={() => handleRemoveLink(link.id)}
180
- style={styles.removeButton}
181
- >
182
- <Ionicons name="trash-outline" size={18} color="#FF3B30" />
183
- </TouchableOpacity>
184
- </View>
185
- ))}
186
- </View>
187
- )}
188
- </ScrollView>
189
- </View>
190
- </View>
191
- </Modal>
192
- );
193
- };
194
-
195
- const styles = StyleSheet.create({
196
- modalOverlay: {
197
- flex: 1,
198
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
199
- justifyContent: 'flex-end',
200
- },
201
- modalContent: {
202
- borderTopLeftRadius: 20,
203
- borderTopRightRadius: 20,
204
- paddingTop: Platform.OS === 'ios' ? 20 : 16,
205
- maxHeight: '80%',
206
- },
207
- modalHeader: {
208
- flexDirection: 'row',
209
- alignItems: 'center',
210
- justifyContent: 'space-between',
211
- paddingHorizontal: 16,
212
- paddingBottom: 16,
213
- borderBottomWidth: StyleSheet.hairlineWidth,
214
- borderBottomColor: '#E5E5EA',
215
- },
216
- closeButton: {
217
- width: 40,
218
- height: 40,
219
- alignItems: 'center',
220
- justifyContent: 'center',
221
- },
222
- modalTitle: {
223
- fontSize: 18,
224
- fontWeight: '600',
225
- fontFamily: fontFamilies.phuduSemiBold,
226
- flex: 1,
227
- textAlign: 'center',
228
- },
229
- saveButton: {
230
- paddingHorizontal: 16,
231
- paddingVertical: 8,
232
- },
233
- saveButtonText: {
234
- fontSize: 16,
235
- fontWeight: '600',
236
- fontFamily: fontFamilies.phuduSemiBold,
237
- },
238
- modalBody: {
239
- padding: 16,
240
- },
241
- inputGroup: {
242
- gap: 8,
243
- marginBottom: 24,
244
- },
245
- label: {
246
- fontSize: 14,
247
- fontWeight: '600',
248
- fontFamily: fontFamilies.phuduSemiBold,
249
- },
250
- addLinkRow: {
251
- flexDirection: 'row',
252
- gap: 8,
253
- alignItems: 'center',
254
- },
255
- input: {
256
- borderWidth: StyleSheet.hairlineWidth,
257
- borderRadius: 12,
258
- padding: 16,
259
- fontSize: 16,
260
- minHeight: 52,
261
- },
262
- addButton: {
263
- width: 52,
264
- height: 52,
265
- borderRadius: 12,
266
- alignItems: 'center',
267
- justifyContent: 'center',
268
- },
269
- linksList: {
270
- gap: 8,
271
- },
272
- listTitle: {
273
- fontSize: 16,
274
- fontWeight: '600',
275
- fontFamily: fontFamilies.phuduSemiBold,
276
- marginBottom: 8,
277
- },
278
- linkItem: {
279
- flexDirection: 'row',
280
- alignItems: 'center',
281
- padding: 16,
282
- borderRadius: 12,
283
- borderWidth: StyleSheet.hairlineWidth,
284
- gap: 12,
285
- },
286
- linkImage: {
287
- width: 40,
288
- height: 40,
289
- borderRadius: 8,
290
- },
291
- linkInfo: {
292
- flex: 1,
293
- gap: 4,
294
- },
295
- linkTitle: {
296
- fontSize: 16,
297
- fontWeight: '600',
298
- },
299
- linkDescription: {
300
- fontSize: 14,
301
- },
302
- linkUrl: {
303
- fontSize: 12,
304
- },
305
- removeButton: {
306
- padding: 8,
307
- },
308
- });
309
-
310
-
311
-
312
-
313
-
314
-
315
-
316
-
@@ -1,278 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import {
3
- View,
4
- Text,
5
- TextInput,
6
- TouchableOpacity,
7
- StyleSheet,
8
- Modal,
9
- Platform,
10
- ScrollView,
11
- } from 'react-native';
12
- import { Ionicons } from '@expo/vector-icons';
13
- import { useThemeStyles } from '../../hooks/useThemeStyles';
14
- import { useColorScheme } from '../../hooks/use-color-scheme';
15
- import { useI18n } from '../../hooks/useI18n';
16
- import { fontFamilies } from '../../styles/fonts';
17
- import { useProfileEditing } from '../../hooks/useProfileEditing';
18
-
19
- interface Location {
20
- id: string;
21
- name: string;
22
- label?: string;
23
- coordinates?: { lat: number; lon: number };
24
- }
25
-
26
- interface EditLocationModalProps {
27
- visible: boolean;
28
- onClose: () => void;
29
- initialLocations?: Location[];
30
- theme?: 'light' | 'dark';
31
- onSave?: () => void;
32
- }
33
-
34
- export const EditLocationModal: React.FC<EditLocationModalProps> = ({
35
- visible,
36
- onClose,
37
- initialLocations = [],
38
- theme = 'light',
39
- onSave,
40
- }) => {
41
- const { t } = useI18n();
42
- const colorScheme = useColorScheme();
43
- const themeStyles = useThemeStyles(theme || 'light', colorScheme);
44
- const colors = themeStyles.colors;
45
- const { saveProfile, isSaving } = useProfileEditing();
46
-
47
- const [locations, setLocations] = useState<Location[]>(initialLocations);
48
- const [newLocation, setNewLocation] = useState('');
49
-
50
- useEffect(() => {
51
- if (visible) {
52
- setLocations(initialLocations);
53
- setNewLocation('');
54
- }
55
- }, [visible, initialLocations]);
56
-
57
- const handleAddLocation = () => {
58
- if (!newLocation.trim()) return;
59
- const location: Location = {
60
- id: `location-${Date.now()}`,
61
- name: newLocation.trim(),
62
- };
63
- setLocations([...locations, location]);
64
- setNewLocation('');
65
- };
66
-
67
- const handleRemoveLocation = (id: string) => {
68
- setLocations(locations.filter(loc => loc.id !== id));
69
- };
70
-
71
- const handleSave = async () => {
72
- const success = await saveProfile({ locations });
73
- if (success) {
74
- onSave?.();
75
- onClose();
76
- }
77
- };
78
-
79
- return (
80
- <Modal
81
- visible={visible}
82
- animationType="slide"
83
- transparent={true}
84
- onRequestClose={onClose}
85
- >
86
- <View style={styles.modalOverlay}>
87
- <View style={[styles.modalContent, { backgroundColor: colors.background }]}>
88
- <View style={styles.modalHeader}>
89
- <TouchableOpacity onPress={onClose} style={styles.closeButton}>
90
- <Ionicons name="close" size={24} color={colors.text} />
91
- </TouchableOpacity>
92
- <Text style={[styles.modalTitle, { color: colors.text }]}>
93
- {t('editProfile.items.locations.title') || 'Locations'}
94
- </Text>
95
- <TouchableOpacity
96
- onPress={handleSave}
97
- disabled={isSaving}
98
- style={[styles.saveButton, { opacity: isSaving ? 0.5 : 1 }]}
99
- >
100
- <Text style={[styles.saveButtonText, { color: colors.tint }]}>
101
- {isSaving ? 'Saving...' : 'Save'}
102
- </Text>
103
- </TouchableOpacity>
104
- </View>
105
-
106
- <ScrollView style={styles.modalBody}>
107
- <View style={styles.inputGroup}>
108
- <Text style={[styles.label, { color: colors.text }]}>
109
- {t('editProfile.items.locations.add') || 'Add Location'}
110
- </Text>
111
- <View style={styles.addLocationRow}>
112
- <TextInput
113
- style={[
114
- styles.input,
115
- {
116
- backgroundColor: colors.card,
117
- color: colors.text,
118
- borderColor: colors.border,
119
- flex: 1,
120
- },
121
- ]}
122
- value={newLocation}
123
- onChangeText={setNewLocation}
124
- placeholder={t('editProfile.items.locations.placeholder') || 'Enter location name'}
125
- placeholderTextColor={colors.secondaryText}
126
- selectionColor={colors.tint}
127
- />
128
- <TouchableOpacity
129
- style={[styles.addButton, { backgroundColor: colors.tint }]}
130
- onPress={handleAddLocation}
131
- disabled={!newLocation.trim()}
132
- >
133
- <Ionicons name="add" size={20} color="#fff" />
134
- </TouchableOpacity>
135
- </View>
136
- </View>
137
-
138
- {locations.length > 0 && (
139
- <View style={styles.locationsList}>
140
- <Text style={[styles.listTitle, { color: colors.text }]}>
141
- {t('editProfile.items.locations.yourLocations') || 'Your Locations'} ({locations.length})
142
- </Text>
143
- {locations.map((location, index) => (
144
- <View
145
- key={location.id}
146
- style={[
147
- styles.locationItem,
148
- { backgroundColor: colors.card, borderColor: colors.border },
149
- index < locations.length - 1 && { borderBottomWidth: StyleSheet.hairlineWidth },
150
- ]}
151
- >
152
- <Text style={[styles.locationName, { color: colors.text }]}>
153
- {location.name}
154
- </Text>
155
- <TouchableOpacity
156
- onPress={() => handleRemoveLocation(location.id)}
157
- style={styles.removeButton}
158
- >
159
- <Ionicons name="trash-outline" size={18} color="#FF3B30" />
160
- </TouchableOpacity>
161
- </View>
162
- ))}
163
- </View>
164
- )}
165
- </ScrollView>
166
- </View>
167
- </View>
168
- </Modal>
169
- );
170
- };
171
-
172
- const styles = StyleSheet.create({
173
- modalOverlay: {
174
- flex: 1,
175
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
176
- justifyContent: 'flex-end',
177
- },
178
- modalContent: {
179
- borderTopLeftRadius: 20,
180
- borderTopRightRadius: 20,
181
- paddingTop: Platform.OS === 'ios' ? 20 : 16,
182
- maxHeight: '80%',
183
- },
184
- modalHeader: {
185
- flexDirection: 'row',
186
- alignItems: 'center',
187
- justifyContent: 'space-between',
188
- paddingHorizontal: 16,
189
- paddingBottom: 16,
190
- borderBottomWidth: StyleSheet.hairlineWidth,
191
- borderBottomColor: '#E5E5EA',
192
- },
193
- closeButton: {
194
- width: 40,
195
- height: 40,
196
- alignItems: 'center',
197
- justifyContent: 'center',
198
- },
199
- modalTitle: {
200
- fontSize: 18,
201
- fontWeight: '600',
202
- fontFamily: fontFamilies.phuduSemiBold,
203
- flex: 1,
204
- textAlign: 'center',
205
- },
206
- saveButton: {
207
- paddingHorizontal: 16,
208
- paddingVertical: 8,
209
- },
210
- saveButtonText: {
211
- fontSize: 16,
212
- fontWeight: '600',
213
- fontFamily: fontFamilies.phuduSemiBold,
214
- },
215
- modalBody: {
216
- padding: 16,
217
- },
218
- inputGroup: {
219
- gap: 8,
220
- marginBottom: 24,
221
- },
222
- label: {
223
- fontSize: 14,
224
- fontWeight: '600',
225
- fontFamily: fontFamilies.phuduSemiBold,
226
- },
227
- addLocationRow: {
228
- flexDirection: 'row',
229
- gap: 8,
230
- alignItems: 'center',
231
- },
232
- input: {
233
- borderWidth: StyleSheet.hairlineWidth,
234
- borderRadius: 12,
235
- padding: 16,
236
- fontSize: 16,
237
- minHeight: 52,
238
- },
239
- addButton: {
240
- width: 52,
241
- height: 52,
242
- borderRadius: 12,
243
- alignItems: 'center',
244
- justifyContent: 'center',
245
- },
246
- locationsList: {
247
- gap: 8,
248
- },
249
- listTitle: {
250
- fontSize: 16,
251
- fontWeight: '600',
252
- fontFamily: fontFamilies.phuduSemiBold,
253
- marginBottom: 8,
254
- },
255
- locationItem: {
256
- flexDirection: 'row',
257
- alignItems: 'center',
258
- justifyContent: 'space-between',
259
- padding: 16,
260
- borderRadius: 12,
261
- borderWidth: StyleSheet.hairlineWidth,
262
- },
263
- locationName: {
264
- fontSize: 16,
265
- flex: 1,
266
- },
267
- removeButton: {
268
- padding: 8,
269
- },
270
- });
271
-
272
-
273
-
274
-
275
-
276
-
277
-
278
-