@oxyhq/services 5.3.11 → 5.4.1

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 (213) hide show
  1. package/README.md +21 -0
  2. package/lib/commonjs/assets/assets/icons/OxyServices.tsx +67 -0
  3. package/lib/commonjs/assets/assets/icons/logo_OxyServices.svg +1 -0
  4. package/lib/commonjs/assets/icons/OxyServices.js +53 -0
  5. package/lib/commonjs/assets/icons/OxyServices.js.map +1 -0
  6. package/lib/commonjs/assets/icons/logo_OxyServices.svg +1 -0
  7. package/lib/commonjs/core/index.js +119 -23
  8. package/lib/commonjs/core/index.js.map +1 -1
  9. package/lib/commonjs/index.js +2 -0
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/lib/sonner.js +15 -11
  12. package/lib/commonjs/lib/sonner.js.map +1 -1
  13. package/lib/commonjs/node/index.js +2 -0
  14. package/lib/commonjs/node/index.js.map +1 -1
  15. package/lib/commonjs/ui/components/GroupedItem.js +109 -0
  16. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -0
  17. package/lib/commonjs/ui/components/GroupedSection.js +33 -0
  18. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -0
  19. package/lib/commonjs/ui/components/OxyProvider.js +95 -112
  20. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  21. package/lib/commonjs/ui/components/ProfileCard.js +124 -0
  22. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -0
  23. package/lib/commonjs/ui/components/QuickActions.js +87 -0
  24. package/lib/commonjs/ui/components/QuickActions.js.map +1 -0
  25. package/lib/commonjs/ui/components/Section.js +36 -0
  26. package/lib/commonjs/ui/components/Section.js.map +1 -0
  27. package/lib/commonjs/ui/components/SectionTitle.js +35 -0
  28. package/lib/commonjs/ui/components/SectionTitle.js.map +1 -0
  29. package/lib/commonjs/ui/components/bottomSheet/index.js +6 -6
  30. package/lib/commonjs/ui/components/index.js +97 -0
  31. package/lib/commonjs/ui/components/index.js.map +1 -0
  32. package/lib/commonjs/ui/navigation/OxyRouter.js +20 -3
  33. package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
  34. package/lib/commonjs/ui/screens/AccountCenterScreen.js +190 -207
  35. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  36. package/lib/commonjs/ui/screens/AccountManagementDemo.js +299 -0
  37. package/lib/commonjs/ui/screens/AccountManagementDemo.js.map +1 -0
  38. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +669 -401
  39. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  40. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +695 -498
  41. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  42. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +451 -488
  43. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  44. package/lib/commonjs/ui/screens/AppInfoScreen.js +498 -185
  45. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  46. package/lib/commonjs/ui/screens/BillingManagementScreen.js +636 -0
  47. package/lib/commonjs/ui/screens/BillingManagementScreen.js.map +1 -0
  48. package/lib/commonjs/ui/screens/FileManagementScreen.js +2497 -0
  49. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -0
  50. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +1620 -0
  51. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -0
  52. package/lib/commonjs/ui/screens/ProfileScreen.js +117 -13
  53. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  54. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/SignInScreen.js +1 -1
  56. package/lib/commonjs/ui/screens/SignUpScreen.js +1 -1
  57. package/lib/commonjs/utils/polyfills.js +42 -0
  58. package/lib/commonjs/utils/polyfills.js.map +1 -0
  59. package/lib/module/assets/assets/icons/OxyServices.tsx +67 -0
  60. package/lib/module/assets/assets/icons/logo_OxyServices.svg +1 -0
  61. package/lib/module/assets/icons/OxyServices.js +46 -0
  62. package/lib/module/assets/icons/OxyServices.js.map +1 -0
  63. package/lib/module/assets/icons/logo_OxyServices.svg +1 -0
  64. package/lib/module/core/index.js +119 -23
  65. package/lib/module/core/index.js.map +1 -1
  66. package/lib/module/index.js +3 -0
  67. package/lib/module/index.js.map +1 -1
  68. package/lib/module/lib/sonner.js +13 -1
  69. package/lib/module/lib/sonner.js.map +1 -1
  70. package/lib/module/node/index.js +3 -0
  71. package/lib/module/node/index.js.map +1 -1
  72. package/lib/module/ui/components/GroupedItem.js +104 -0
  73. package/lib/module/ui/components/GroupedItem.js.map +1 -0
  74. package/lib/module/ui/components/GroupedSection.js +28 -0
  75. package/lib/module/ui/components/GroupedSection.js.map +1 -0
  76. package/lib/module/ui/components/OxyProvider.js +97 -114
  77. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  78. package/lib/module/ui/components/ProfileCard.js +119 -0
  79. package/lib/module/ui/components/ProfileCard.js.map +1 -0
  80. package/lib/module/ui/components/QuickActions.js +82 -0
  81. package/lib/module/ui/components/QuickActions.js.map +1 -0
  82. package/lib/module/ui/components/Section.js +31 -0
  83. package/lib/module/ui/components/Section.js.map +1 -0
  84. package/lib/module/ui/components/SectionTitle.js +30 -0
  85. package/lib/module/ui/components/SectionTitle.js.map +1 -0
  86. package/lib/module/ui/components/bottomSheet/index.js +2 -5
  87. package/lib/module/ui/components/bottomSheet/index.js.map +1 -1
  88. package/lib/module/ui/components/index.js +18 -0
  89. package/lib/module/ui/components/index.js.map +1 -0
  90. package/lib/module/ui/navigation/OxyRouter.js +20 -3
  91. package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
  92. package/lib/module/ui/screens/AccountCenterScreen.js +191 -208
  93. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  94. package/lib/module/ui/screens/AccountManagementDemo.js +296 -0
  95. package/lib/module/ui/screens/AccountManagementDemo.js.map +1 -0
  96. package/lib/module/ui/screens/AccountOverviewScreen.js +671 -403
  97. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  98. package/lib/module/ui/screens/AccountSettingsScreen.js +698 -501
  99. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  100. package/lib/module/ui/screens/AccountSwitcherScreen.js +450 -488
  101. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  102. package/lib/module/ui/screens/AppInfoScreen.js +498 -186
  103. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  104. package/lib/module/ui/screens/BillingManagementScreen.js +631 -0
  105. package/lib/module/ui/screens/BillingManagementScreen.js.map +1 -0
  106. package/lib/module/ui/screens/FileManagementScreen.js +2492 -0
  107. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -0
  108. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +1615 -0
  109. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -0
  110. package/lib/module/ui/screens/ProfileScreen.js +118 -14
  111. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  112. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  113. package/lib/module/ui/screens/SignInScreen.js +1 -1
  114. package/lib/module/ui/screens/SignInScreen.js.map +1 -1
  115. package/lib/module/ui/screens/SignUpScreen.js +1 -1
  116. package/lib/module/ui/screens/SignUpScreen.js.map +1 -1
  117. package/lib/module/utils/polyfills.js +36 -0
  118. package/lib/module/utils/polyfills.js.map +1 -0
  119. package/lib/typescript/assets/icons/OxyServices.d.ts +29 -0
  120. package/lib/typescript/assets/icons/OxyServices.d.ts.map +1 -0
  121. package/lib/typescript/core/index.d.ts +26 -1
  122. package/lib/typescript/core/index.d.ts.map +1 -1
  123. package/lib/typescript/index.d.ts +1 -0
  124. package/lib/typescript/index.d.ts.map +1 -1
  125. package/lib/typescript/lib/sonner.d.ts +5 -1
  126. package/lib/typescript/lib/sonner.d.ts.map +1 -1
  127. package/lib/typescript/models/interfaces.d.ts +1 -2
  128. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  129. package/lib/typescript/node/index.d.ts +1 -0
  130. package/lib/typescript/node/index.d.ts.map +1 -1
  131. package/lib/typescript/ui/components/GroupedItem.d.ts +17 -0
  132. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -0
  133. package/lib/typescript/ui/components/GroupedSection.d.ts +19 -0
  134. package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -0
  135. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  136. package/lib/typescript/ui/components/ProfileCard.d.ts +20 -0
  137. package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -0
  138. package/lib/typescript/ui/components/QuickActions.d.ts +15 -0
  139. package/lib/typescript/ui/components/QuickActions.d.ts.map +1 -0
  140. package/lib/typescript/ui/components/Section.d.ts +11 -0
  141. package/lib/typescript/ui/components/Section.d.ts.map +1 -0
  142. package/lib/typescript/ui/components/SectionTitle.d.ts +9 -0
  143. package/lib/typescript/ui/components/SectionTitle.d.ts.map +1 -0
  144. package/lib/typescript/ui/components/bottomSheet/index.d.ts +3 -2
  145. package/lib/typescript/ui/components/bottomSheet/index.d.ts.map +1 -1
  146. package/lib/typescript/ui/components/index.d.ts +13 -0
  147. package/lib/typescript/ui/components/index.d.ts.map +1 -0
  148. package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
  149. package/lib/typescript/ui/navigation/types.d.ts +8 -0
  150. package/lib/typescript/ui/navigation/types.d.ts.map +1 -1
  151. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  152. package/lib/typescript/ui/screens/AccountManagementDemo.d.ts +8 -0
  153. package/lib/typescript/ui/screens/AccountManagementDemo.d.ts.map +1 -0
  154. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  155. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts +1 -4
  156. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  157. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  158. package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -1
  159. package/lib/typescript/ui/screens/BillingManagementScreen.d.ts +5 -0
  160. package/lib/typescript/ui/screens/BillingManagementScreen.d.ts.map +1 -0
  161. package/lib/typescript/ui/screens/FileManagementScreen.d.ts +8 -0
  162. package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -0
  163. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts +5 -0
  164. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -0
  165. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  166. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  167. package/lib/typescript/utils/polyfills.d.ts +6 -0
  168. package/lib/typescript/utils/polyfills.d.ts.map +1 -0
  169. package/package.json +11 -3
  170. package/src/__tests__/polyfills.test.ts +30 -0
  171. package/src/__tests__/setup.ts +43 -0
  172. package/src/__tests__/ui/screens/AccountSettingsScreen.test.tsx +8 -8
  173. package/src/assets/icons/OxyServices.tsx +67 -0
  174. package/src/assets/icons/logo_OxyServices.svg +1 -0
  175. package/src/core/index.ts +127 -19
  176. package/src/index.ts +3 -0
  177. package/src/lib/sonner.ts +10 -1
  178. package/src/models/interfaces.ts +1 -2
  179. package/src/node/index.ts +3 -0
  180. package/src/ui/components/GroupedItem.tsx +118 -0
  181. package/src/ui/components/GroupedSection.tsx +45 -0
  182. package/src/ui/components/OxyProvider.tsx +95 -120
  183. package/src/ui/components/ProfileCard.tsx +129 -0
  184. package/src/ui/components/QuickActions.tsx +90 -0
  185. package/src/ui/components/Section.tsx +37 -0
  186. package/src/ui/components/SectionTitle.tsx +31 -0
  187. package/src/ui/components/bottomSheet/index.tsx +13 -11
  188. package/src/ui/components/index.ts +15 -0
  189. package/src/ui/navigation/OxyRouter.tsx +20 -3
  190. package/src/ui/navigation/types.ts +10 -1
  191. package/src/ui/screens/AccountCenterScreen.tsx +188 -159
  192. package/src/ui/screens/AccountManagementDemo.tsx +297 -0
  193. package/src/ui/screens/AccountOverviewScreen.tsx +474 -310
  194. package/src/ui/screens/AccountSettingsScreen.tsx +648 -463
  195. package/src/ui/screens/AccountSwitcherScreen.tsx +385 -449
  196. package/src/ui/screens/AppInfoScreen.tsx +571 -140
  197. package/src/ui/screens/BillingManagementScreen.tsx +589 -0
  198. package/src/ui/screens/FileManagementScreen.tsx +2513 -0
  199. package/src/ui/screens/PremiumSubscriptionScreen.tsx +1628 -0
  200. package/src/ui/screens/ProfileScreen.tsx +101 -7
  201. package/src/ui/screens/SessionManagementScreen.tsx +1 -0
  202. package/src/ui/screens/SignInScreen.tsx +1 -1
  203. package/src/ui/screens/SignUpScreen.tsx +1 -1
  204. package/src/utils/polyfills.ts +34 -0
  205. package/lib/commonjs/lib/sonner.web.js +0 -17
  206. package/lib/commonjs/lib/sonner.web.js.map +0 -1
  207. package/lib/module/lib/sonner.web.js +0 -4
  208. package/lib/module/lib/sonner.web.js.map +0 -1
  209. package/lib/typescript/__tests__/ui/screens/AccountSettingsScreen.test.d.ts +0 -2
  210. package/lib/typescript/__tests__/ui/screens/AccountSettingsScreen.test.d.ts.map +0 -1
  211. package/lib/typescript/lib/sonner.web.d.ts +0 -2
  212. package/lib/typescript/lib/sonner.web.d.ts.map +0 -1
  213. package/src/lib/sonner.web.ts +0 -1
@@ -1,21 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState } from 'react';
4
- import { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator, ScrollView, Alert, Platform, Image } from 'react-native';
4
+ import { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator, ScrollView, Alert, Image } from 'react-native';
5
5
  import { useOxy } from '../context/OxyContext';
6
6
  import Avatar from '../components/Avatar';
7
+ import OxyIcon from '../components/icon/OxyIcon';
7
8
  import { toast } from '../../lib/sonner';
8
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
10
  const AccountOverviewScreen = ({
10
11
  onClose,
11
- theme
12
+ theme,
13
+ navigate
12
14
  }) => {
13
15
  const {
14
16
  user,
15
17
  logout,
16
- isLoading
18
+ isLoading,
19
+ sessions,
20
+ activeSessionId,
21
+ oxyServices
17
22
  } = useOxy();
18
23
  const [showMoreAccounts, setShowMoreAccounts] = useState(false);
24
+ const [additionalAccountsData, setAdditionalAccountsData] = useState([]);
25
+ const [loadingAdditionalAccounts, setLoadingAdditionalAccounts] = useState(false);
19
26
  const isDarkTheme = theme === 'dark';
20
27
  const textColor = isDarkTheme ? '#FFFFFF' : '#000000';
21
28
  const backgroundColor = isDarkTheme ? '#121212' : '#FFFFFF';
@@ -25,15 +32,52 @@ const AccountOverviewScreen = ({
25
32
  const dangerColor = '#D32F2F';
26
33
  const iconColor = isDarkTheme ? '#BBBBBB' : '#666666';
27
34
 
28
- // Mock additional accounts (for demo purposes)
29
- const additionalAccounts = [{
30
- id: '2',
31
- username: 'Albert Isern Alvarez',
32
- email: 'albert.isern.alvarez@gmail.com',
33
- avatar: {
34
- url: 'https://example.com/avatar2.jpg'
35
- }
36
- }];
35
+ // Get additional accounts from sessions (excluding current user)
36
+ const additionalAccounts = sessions.filter(session => session.sessionId !== activeSessionId && session.userId !== user?.id);
37
+
38
+ // Load user profiles for additional accounts
39
+ React.useEffect(() => {
40
+ const loadAdditionalAccountsData = async () => {
41
+ if (!oxyServices || additionalAccounts.length === 0) {
42
+ setAdditionalAccountsData([]);
43
+ return;
44
+ }
45
+ setLoadingAdditionalAccounts(true);
46
+ try {
47
+ const accountsData = await Promise.all(additionalAccounts.map(async session => {
48
+ try {
49
+ const userProfile = await oxyServices.getUserBySession(session.sessionId);
50
+ return {
51
+ id: session.sessionId,
52
+ sessionId: session.sessionId,
53
+ username: userProfile.username,
54
+ email: userProfile.email,
55
+ name: userProfile.name,
56
+ avatar: userProfile.avatar,
57
+ userProfile
58
+ };
59
+ } catch (error) {
60
+ console.error(`Failed to load profile for session ${session.sessionId}:`, error);
61
+ return {
62
+ id: session.sessionId,
63
+ sessionId: session.sessionId,
64
+ username: session.username || 'Unknown User',
65
+ email: 'No email available',
66
+ avatar: null,
67
+ userProfile: null
68
+ };
69
+ }
70
+ }));
71
+ setAdditionalAccountsData(accountsData);
72
+ } catch (error) {
73
+ console.error('Failed to load additional accounts:', error);
74
+ setAdditionalAccountsData([]);
75
+ } finally {
76
+ setLoadingAdditionalAccounts(false);
77
+ }
78
+ };
79
+ loadAdditionalAccountsData();
80
+ }, [sessions, activeSessionId, user?.id, oxyServices]);
37
81
 
38
82
  // Feature settings (with mock values)
39
83
  const features = {
@@ -78,29 +122,6 @@ const AccountOverviewScreen = ({
78
122
  cancelable: true
79
123
  });
80
124
  };
81
- const renderFeatureItem = (icon, title, value, onPress) => /*#__PURE__*/_jsxs(TouchableOpacity, {
82
- style: [styles.featureItem, {
83
- borderColor
84
- }],
85
- onPress: onPress,
86
- children: [/*#__PURE__*/_jsxs(View, {
87
- style: styles.featureItemLeft,
88
- children: [/*#__PURE__*/_jsx(View, {
89
- style: styles.iconContainer,
90
- children: icon
91
- }), /*#__PURE__*/_jsx(Text, {
92
- style: [styles.featureItemTitle, {
93
- color: textColor
94
- }],
95
- children: title
96
- })]
97
- }), value !== undefined && /*#__PURE__*/_jsx(Text, {
98
- style: [styles.featureItemValue, {
99
- color: iconColor
100
- }],
101
- children: value
102
- })]
103
- });
104
125
  if (!user) {
105
126
  return /*#__PURE__*/_jsx(View, {
106
127
  style: [styles.container, {
@@ -126,437 +147,684 @@ const AccountOverviewScreen = ({
126
147
  })
127
148
  });
128
149
  }
129
- return /*#__PURE__*/_jsx(View, {
150
+ return /*#__PURE__*/_jsxs(View, {
130
151
  style: [styles.container, {
131
- backgroundColor
152
+ backgroundColor: '#f2f2f2'
132
153
  }],
133
- children: /*#__PURE__*/_jsxs(ScrollView, {
134
- style: styles.scrollView,
135
- contentContainerStyle: styles.scrollContainer,
154
+ children: [/*#__PURE__*/_jsxs(View, {
155
+ style: styles.header,
156
+ children: [/*#__PURE__*/_jsx(Text, {
157
+ style: styles.headerTitle,
158
+ children: "Account"
159
+ }), onClose && /*#__PURE__*/_jsx(TouchableOpacity, {
160
+ style: styles.closeButton,
161
+ onPress: onClose,
162
+ children: /*#__PURE__*/_jsx(Text, {
163
+ style: styles.closeButtonText,
164
+ children: "\xD7"
165
+ })
166
+ })]
167
+ }), /*#__PURE__*/_jsxs(ScrollView, {
168
+ style: styles.content,
136
169
  children: [/*#__PURE__*/_jsxs(View, {
137
- style: styles.header,
170
+ style: styles.section,
138
171
  children: [/*#__PURE__*/_jsx(Text, {
139
- style: [styles.accountEmail, {
140
- color: textColor
141
- }],
142
- children: user.email || user.username
143
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
144
- style: styles.closeIcon,
145
- onPress: onClose,
146
- children: /*#__PURE__*/_jsx(Text, {
147
- style: {
148
- fontSize: 24,
149
- color: textColor
150
- },
151
- children: "\xD7"
152
- })
172
+ style: styles.sectionTitle,
173
+ children: "Profile"
174
+ }), /*#__PURE__*/_jsxs(View, {
175
+ style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem],
176
+ children: [/*#__PURE__*/_jsx(View, {
177
+ style: styles.userIcon,
178
+ children: /*#__PURE__*/_jsx(Avatar, {
179
+ uri: user?.avatar?.url,
180
+ name: user?.name?.full,
181
+ size: 40,
182
+ theme: theme
183
+ })
184
+ }), /*#__PURE__*/_jsx(View, {
185
+ style: styles.settingInfo,
186
+ children: /*#__PURE__*/_jsxs(View, {
187
+ children: [/*#__PURE__*/_jsx(Text, {
188
+ style: styles.settingLabel,
189
+ children: typeof user.name === 'string' ? user.name : user.name?.full || user.name?.first || user.username
190
+ }), /*#__PURE__*/_jsx(Text, {
191
+ style: styles.settingDescription,
192
+ children: user.email || user.username
193
+ })]
194
+ })
195
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
196
+ style: styles.manageButton,
197
+ onPress: () => toast.info('Manage your Oxy Account feature coming soon!'),
198
+ children: /*#__PURE__*/_jsx(Text, {
199
+ style: styles.manageButtonText,
200
+ children: "Manage"
201
+ })
202
+ })]
153
203
  })]
154
204
  }), /*#__PURE__*/_jsxs(View, {
155
- style: [styles.profileContainer, {
156
- backgroundColor: secondaryBackgroundColor
157
- }],
158
- children: [/*#__PURE__*/_jsx(View, {
159
- style: styles.avatarContainer,
160
- children: /*#__PURE__*/_jsx(Avatar, {
161
- uri: user?.avatar?.url,
162
- name: user?.name?.full,
163
- size: 70,
164
- theme: theme
165
- })
166
- }), /*#__PURE__*/_jsxs(Text, {
167
- style: [styles.greeting, {
168
- color: textColor
169
- }],
170
- children: ["Hi, ", user?.name?.first, "!"]
171
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
172
- style: [styles.manageAccountButton, {
173
- borderColor
174
- }],
175
- onPress: () => toast.info('Manage your Oxy Account feature coming soon!'),
176
- children: /*#__PURE__*/_jsx(Text, {
177
- style: [styles.manageAccountText, {
178
- color: textColor
179
- }],
180
- children: "Manage your Oxy Account"
181
- })
182
- })]
183
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
184
- style: [styles.sectionHeader, {
185
- borderColor
186
- }],
187
- onPress: () => setShowMoreAccounts(!showMoreAccounts),
205
+ style: styles.section,
188
206
  children: [/*#__PURE__*/_jsx(Text, {
189
- style: [styles.sectionHeaderText, {
190
- color: textColor
191
- }],
192
- children: showMoreAccounts ? "Hide more accounts" : "Show more accounts"
193
- }), /*#__PURE__*/_jsx(Text, {
194
- style: {
195
- color: textColor,
196
- fontSize: 16
197
- },
198
- children: showMoreAccounts ? "▲" : "▼"
199
- })]
200
- }), showMoreAccounts && /*#__PURE__*/_jsxs(View, {
201
- style: [styles.accountsContainer, {
202
- backgroundColor: secondaryBackgroundColor
203
- }],
204
- children: [additionalAccounts.map(account => /*#__PURE__*/_jsx(TouchableOpacity, {
205
- style: [styles.accountItem, {
206
- borderColor
207
- }],
208
- onPress: () => toast.info(`Switch to ${account.username}?`),
209
- children: /*#__PURE__*/_jsxs(View, {
210
- style: styles.accountItemLeft,
211
- children: [account.avatar.url ? /*#__PURE__*/_jsx(Image, {
212
- source: {
213
- uri: account.avatar.url
214
- },
215
- style: styles.accountAvatar
216
- }) : /*#__PURE__*/_jsx(View, {
217
- style: [styles.accountAvatar, {
218
- backgroundColor: primaryColor
219
- }],
220
- children: /*#__PURE__*/_jsx(Text, {
221
- style: styles.avatarText,
222
- children: account.username.charAt(0).toUpperCase()
223
- })
207
+ style: styles.sectionTitle,
208
+ children: "Account Settings"
209
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
210
+ style: [styles.settingItem, styles.firstSettingItem],
211
+ onPress: () => navigate?.('AccountSettings', {
212
+ activeTab: 'profile'
213
+ }),
214
+ children: [/*#__PURE__*/_jsxs(View, {
215
+ style: styles.settingInfo,
216
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
217
+ name: "person-circle",
218
+ size: 20,
219
+ color: "#007AFF",
220
+ style: styles.settingIcon
224
221
  }), /*#__PURE__*/_jsxs(View, {
225
222
  children: [/*#__PURE__*/_jsx(Text, {
226
- style: [styles.accountName, {
227
- color: textColor
228
- }],
229
- children: account.username
223
+ style: styles.settingLabel,
224
+ children: "Edit Profile"
230
225
  }), /*#__PURE__*/_jsx(Text, {
231
- style: [styles.accountEmail, {
232
- color: iconColor
233
- }],
234
- children: account.email
226
+ style: styles.settingDescription,
227
+ children: "Update your personal information"
235
228
  })]
236
229
  })]
237
- })
238
- }, account.id)), /*#__PURE__*/_jsx(TouchableOpacity, {
239
- style: [styles.accountItem, {
240
- borderColor
241
- }],
242
- onPress: handleAddAccount,
230
+ }), /*#__PURE__*/_jsx(OxyIcon, {
231
+ name: "chevron-forward",
232
+ size: 16,
233
+ color: "#ccc"
234
+ })]
235
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
236
+ style: styles.settingItem,
237
+ onPress: () => navigate?.('AccountSettings', {
238
+ activeTab: 'password'
239
+ }),
240
+ children: [/*#__PURE__*/_jsxs(View, {
241
+ style: styles.settingInfo,
242
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
243
+ name: "shield-checkmark",
244
+ size: 20,
245
+ color: "#30D158",
246
+ style: styles.settingIcon
247
+ }), /*#__PURE__*/_jsxs(View, {
248
+ children: [/*#__PURE__*/_jsx(Text, {
249
+ style: styles.settingLabel,
250
+ children: "Security & Privacy"
251
+ }), /*#__PURE__*/_jsx(Text, {
252
+ style: styles.settingDescription,
253
+ children: "Password, 2FA, and privacy settings"
254
+ })]
255
+ })]
256
+ }), /*#__PURE__*/_jsx(OxyIcon, {
257
+ name: "chevron-forward",
258
+ size: 16,
259
+ color: "#ccc"
260
+ })]
261
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
262
+ style: styles.settingItem,
263
+ onPress: () => navigate?.('AccountSettings', {
264
+ activeTab: 'notifications'
265
+ }),
266
+ children: [/*#__PURE__*/_jsxs(View, {
267
+ style: styles.settingInfo,
268
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
269
+ name: "notifications",
270
+ size: 20,
271
+ color: "#FF9500",
272
+ style: styles.settingIcon
273
+ }), /*#__PURE__*/_jsxs(View, {
274
+ children: [/*#__PURE__*/_jsx(Text, {
275
+ style: styles.settingLabel,
276
+ children: "Notifications"
277
+ }), /*#__PURE__*/_jsx(Text, {
278
+ style: styles.settingDescription,
279
+ children: "Manage your notification preferences"
280
+ })]
281
+ })]
282
+ }), /*#__PURE__*/_jsx(OxyIcon, {
283
+ name: "chevron-forward",
284
+ size: 16,
285
+ color: "#ccc"
286
+ })]
287
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
288
+ style: [styles.settingItem],
289
+ onPress: () => navigate?.('PremiumSubscription'),
290
+ children: [/*#__PURE__*/_jsxs(View, {
291
+ style: styles.settingInfo,
292
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
293
+ name: "star",
294
+ size: 20,
295
+ color: "#FFD700",
296
+ style: styles.settingIcon
297
+ }), /*#__PURE__*/_jsxs(View, {
298
+ children: [/*#__PURE__*/_jsx(Text, {
299
+ style: styles.settingLabel,
300
+ children: "Oxy+ Subscriptions"
301
+ }), /*#__PURE__*/_jsx(Text, {
302
+ style: styles.settingDescription,
303
+ children: user.isPremium ? 'Manage your premium plan' : 'Upgrade to premium features'
304
+ })]
305
+ })]
306
+ }), /*#__PURE__*/_jsx(OxyIcon, {
307
+ name: "chevron-forward",
308
+ size: 16,
309
+ color: "#ccc"
310
+ })]
311
+ }), user.isPremium && /*#__PURE__*/_jsxs(TouchableOpacity, {
312
+ style: [styles.settingItem, styles.lastSettingItem],
313
+ onPress: () => navigate?.('BillingManagement'),
314
+ children: [/*#__PURE__*/_jsxs(View, {
315
+ style: styles.settingInfo,
316
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
317
+ name: "card",
318
+ size: 20,
319
+ color: "#34C759",
320
+ style: styles.settingIcon
321
+ }), /*#__PURE__*/_jsxs(View, {
322
+ children: [/*#__PURE__*/_jsx(Text, {
323
+ style: styles.settingLabel,
324
+ children: "Billing Management"
325
+ }), /*#__PURE__*/_jsx(Text, {
326
+ style: styles.settingDescription,
327
+ children: "Payment methods and invoices"
328
+ })]
329
+ })]
330
+ }), /*#__PURE__*/_jsx(OxyIcon, {
331
+ name: "chevron-forward",
332
+ size: 16,
333
+ color: "#ccc"
334
+ })]
335
+ })]
336
+ }), showMoreAccounts && /*#__PURE__*/_jsxs(View, {
337
+ style: styles.section,
338
+ children: [/*#__PURE__*/_jsxs(Text, {
339
+ style: styles.sectionTitle,
340
+ children: ["Additional Accounts", additionalAccountsData.length > 0 ? ` (${additionalAccountsData.length})` : '']
341
+ }), loadingAdditionalAccounts ? /*#__PURE__*/_jsx(View, {
342
+ style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem],
243
343
  children: /*#__PURE__*/_jsxs(View, {
244
- style: styles.accountItemLeft,
245
- children: [/*#__PURE__*/_jsx(View, {
246
- style: [styles.accountAvatar, styles.addAccountIcon, {
247
- borderColor
248
- }],
249
- children: /*#__PURE__*/_jsx(Text, {
250
- style: {
251
- fontSize: 20,
252
- color: textColor
253
- },
254
- children: "+"
255
- })
344
+ style: styles.loadingContainer,
345
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
346
+ size: "small",
347
+ color: "#007AFF"
256
348
  }), /*#__PURE__*/_jsx(Text, {
257
- style: [styles.accountItemAction, {
258
- color: textColor
259
- }],
260
- children: "Add another account"
349
+ style: styles.loadingText,
350
+ children: "Loading accounts..."
261
351
  })]
262
352
  })
263
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
264
- style: [styles.accountItem, {
265
- borderColor
266
- }],
267
- onPress: handleSignOutAll,
268
- children: /*#__PURE__*/_jsxs(View, {
269
- style: styles.accountItemLeft,
353
+ }) : additionalAccountsData.length > 0 ? /*#__PURE__*/_jsx(_Fragment, {
354
+ children: additionalAccountsData.map((account, index) => /*#__PURE__*/_jsxs(TouchableOpacity, {
355
+ style: [styles.settingItem, index === 0 && styles.firstSettingItem, index === additionalAccountsData.length - 1 && styles.lastSettingItem],
356
+ onPress: () => {
357
+ toast.info(`Switch to ${account.username}?`);
358
+ // TODO: Implement account switching logic
359
+ // switchSession(account.sessionId);
360
+ },
270
361
  children: [/*#__PURE__*/_jsx(View, {
271
- style: [styles.accountAvatar, styles.signOutIcon, {
272
- borderColor
273
- }],
274
- children: /*#__PURE__*/_jsx(Text, {
275
- style: {
276
- fontSize: 20,
277
- color: textColor
362
+ style: styles.userIcon,
363
+ children: account.avatar?.url ? /*#__PURE__*/_jsx(Image, {
364
+ source: {
365
+ uri: account.avatar.url
278
366
  },
279
- children: "\u2190"
367
+ style: styles.accountAvatarImage
368
+ }) : /*#__PURE__*/_jsx(View, {
369
+ style: styles.accountAvatarFallback,
370
+ children: /*#__PURE__*/_jsx(Text, {
371
+ style: styles.accountAvatarText,
372
+ children: account.username?.charAt(0).toUpperCase() || '?'
373
+ })
280
374
  })
281
- }), /*#__PURE__*/_jsx(Text, {
282
- style: [styles.accountItemAction, {
283
- color: textColor
284
- }],
285
- children: "Sign out of all accounts"
375
+ }), /*#__PURE__*/_jsx(View, {
376
+ style: styles.settingInfo,
377
+ children: /*#__PURE__*/_jsxs(View, {
378
+ children: [/*#__PURE__*/_jsx(Text, {
379
+ style: styles.settingLabel,
380
+ children: typeof account.name === 'object' ? account.name?.full || account.name?.first || account.username : account.name || account.username
381
+ }), /*#__PURE__*/_jsx(Text, {
382
+ style: styles.settingDescription,
383
+ children: account.email || account.username
384
+ })]
385
+ })
386
+ }), /*#__PURE__*/_jsx(OxyIcon, {
387
+ name: "chevron-forward",
388
+ size: 16,
389
+ color: "#ccc"
390
+ })]
391
+ }, account.id))
392
+ }) : /*#__PURE__*/_jsx(View, {
393
+ style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem],
394
+ children: /*#__PURE__*/_jsxs(View, {
395
+ style: styles.settingInfo,
396
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
397
+ name: "person-outline",
398
+ size: 20,
399
+ color: "#ccc",
400
+ style: styles.settingIcon
401
+ }), /*#__PURE__*/_jsxs(View, {
402
+ children: [/*#__PURE__*/_jsx(Text, {
403
+ style: styles.settingLabel,
404
+ children: "No other accounts"
405
+ }), /*#__PURE__*/_jsx(Text, {
406
+ style: styles.settingDescription,
407
+ children: "Add another account to switch between them"
408
+ })]
286
409
  })]
287
410
  })
288
411
  })]
289
- }), /*#__PURE__*/_jsx(View, {
290
- style: styles.sectionHeader,
291
- children: /*#__PURE__*/_jsx(Text, {
292
- style: [styles.sectionHeaderText, {
293
- color: textColor
294
- }],
295
- children: "More from Oxy"
296
- })
412
+ }), showMoreAccounts && /*#__PURE__*/_jsxs(View, {
413
+ style: styles.section,
414
+ children: [/*#__PURE__*/_jsx(Text, {
415
+ style: styles.sectionTitle,
416
+ children: "Account Management"
417
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
418
+ style: [styles.settingItem, styles.firstSettingItem],
419
+ onPress: handleAddAccount,
420
+ children: [/*#__PURE__*/_jsxs(View, {
421
+ style: styles.settingInfo,
422
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
423
+ name: "add",
424
+ size: 20,
425
+ color: "#007AFF",
426
+ style: styles.settingIcon
427
+ }), /*#__PURE__*/_jsxs(View, {
428
+ children: [/*#__PURE__*/_jsx(Text, {
429
+ style: styles.settingLabel,
430
+ children: "Add another account"
431
+ }), /*#__PURE__*/_jsx(Text, {
432
+ style: styles.settingDescription,
433
+ children: "Sign in with a different account"
434
+ })]
435
+ })]
436
+ }), /*#__PURE__*/_jsx(OxyIcon, {
437
+ name: "chevron-forward",
438
+ size: 16,
439
+ color: "#ccc"
440
+ })]
441
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
442
+ style: [styles.settingItem, styles.lastSettingItem],
443
+ onPress: handleSignOutAll,
444
+ children: [/*#__PURE__*/_jsxs(View, {
445
+ style: styles.settingInfo,
446
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
447
+ name: "log-out",
448
+ size: 20,
449
+ color: "#FF3B30",
450
+ style: styles.settingIcon
451
+ }), /*#__PURE__*/_jsxs(View, {
452
+ children: [/*#__PURE__*/_jsx(Text, {
453
+ style: styles.settingLabel,
454
+ children: "Sign out of all accounts"
455
+ }), /*#__PURE__*/_jsx(Text, {
456
+ style: styles.settingDescription,
457
+ children: "Remove all accounts from this device"
458
+ })]
459
+ })]
460
+ }), /*#__PURE__*/_jsx(OxyIcon, {
461
+ name: "chevron-forward",
462
+ size: 16,
463
+ color: "#ccc"
464
+ })]
465
+ })]
297
466
  }), /*#__PURE__*/_jsxs(View, {
298
- style: [styles.featuresContainer, {
299
- backgroundColor: secondaryBackgroundColor
300
- }],
301
- children: [renderFeatureItem(/*#__PURE__*/_jsx(Text, {
302
- style: {
303
- fontSize: 18
304
- },
305
- children: "\uD83D\uDD52"
306
- }), 'History', 'Saving', () => toast.info('View your history feature coming soon!')), renderFeatureItem(/*#__PURE__*/_jsx(Text, {
307
- style: {
308
- fontSize: 18
309
- },
310
- children: "\u23F1\uFE0F"
311
- }), 'Delete last 15 minutes', null, () => toast.info('Delete recent history feature coming soon!')), renderFeatureItem(/*#__PURE__*/_jsx(Text, {
312
- style: {
313
- fontSize: 18
314
- },
315
- children: "\uD83D\uDCCB"
316
- }), 'Saves & Collections', null, () => toast.info('Saved items feature coming soon!')), renderFeatureItem(/*#__PURE__*/_jsx(Text, {
317
- style: {
318
- fontSize: 18
319
- },
320
- children: "\uD83D\uDD0D"
321
- }), 'Search personalization', null, () => toast.info('Search personalization feature coming soon!')), renderFeatureItem(/*#__PURE__*/_jsx(Text, {
322
- style: {
323
- fontSize: 18
324
- },
325
- children: "\uD83D\uDEE1\uFE0F"
326
- }), 'SafeSearch', features.safeSearch ? 'On' : 'Off', () => toast.info('SafeSearch settings feature coming soon!')), renderFeatureItem(/*#__PURE__*/_jsx(Text, {
327
- style: {
328
- fontSize: 18
329
- },
330
- children: "\uD83C\uDF10"
331
- }), 'Language', features.language, () => toast.info('Language settings feature coming soon!'))]
467
+ style: styles.section,
468
+ children: [/*#__PURE__*/_jsx(Text, {
469
+ style: styles.sectionTitle,
470
+ children: "Quick Actions"
471
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
472
+ style: [styles.settingItem, styles.firstSettingItem],
473
+ onPress: () => setShowMoreAccounts(!showMoreAccounts),
474
+ children: [/*#__PURE__*/_jsxs(View, {
475
+ style: styles.settingInfo,
476
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
477
+ name: "people",
478
+ size: 20,
479
+ color: "#5856D6",
480
+ style: styles.settingIcon
481
+ }), /*#__PURE__*/_jsxs(View, {
482
+ children: [/*#__PURE__*/_jsxs(Text, {
483
+ style: styles.settingLabel,
484
+ children: [showMoreAccounts ? 'Hide' : 'Show', " Account Switcher"]
485
+ }), /*#__PURE__*/_jsx(Text, {
486
+ style: styles.settingDescription,
487
+ children: showMoreAccounts ? 'Hide account switcher' : additionalAccountsData.length > 0 ? `Switch between ${additionalAccountsData.length + 1} accounts` : loadingAdditionalAccounts ? 'Loading additional accounts...' : 'Manage multiple accounts'
488
+ })]
489
+ })]
490
+ }), /*#__PURE__*/_jsx(OxyIcon, {
491
+ name: "chevron-forward",
492
+ size: 16,
493
+ color: "#ccc"
494
+ })]
495
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
496
+ style: styles.settingItem,
497
+ onPress: () => toast.info('Download account data feature coming soon!'),
498
+ children: [/*#__PURE__*/_jsxs(View, {
499
+ style: styles.settingInfo,
500
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
501
+ name: "download",
502
+ size: 20,
503
+ color: "#34C759",
504
+ style: styles.settingIcon
505
+ }), /*#__PURE__*/_jsxs(View, {
506
+ children: [/*#__PURE__*/_jsx(Text, {
507
+ style: styles.settingLabel,
508
+ children: "Download My Data"
509
+ }), /*#__PURE__*/_jsx(Text, {
510
+ style: styles.settingDescription,
511
+ children: "Export your account information"
512
+ })]
513
+ })]
514
+ }), /*#__PURE__*/_jsx(OxyIcon, {
515
+ name: "chevron-forward",
516
+ size: 16,
517
+ color: "#ccc"
518
+ })]
519
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
520
+ style: [styles.settingItem, styles.lastSettingItem],
521
+ onPress: () => toast.info('Delete account feature coming soon!'),
522
+ children: [/*#__PURE__*/_jsxs(View, {
523
+ style: styles.settingInfo,
524
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
525
+ name: "trash",
526
+ size: 20,
527
+ color: "#FF3B30",
528
+ style: styles.settingIcon
529
+ }), /*#__PURE__*/_jsxs(View, {
530
+ children: [/*#__PURE__*/_jsx(Text, {
531
+ style: styles.settingLabel,
532
+ children: "Delete Account"
533
+ }), /*#__PURE__*/_jsx(Text, {
534
+ style: styles.settingDescription,
535
+ children: "Permanently delete your account"
536
+ })]
537
+ })]
538
+ }), /*#__PURE__*/_jsx(OxyIcon, {
539
+ name: "chevron-forward",
540
+ size: 16,
541
+ color: "#ccc"
542
+ })]
543
+ })]
332
544
  }), /*#__PURE__*/_jsxs(View, {
333
- style: styles.footerContainer,
334
- children: [/*#__PURE__*/_jsxs(View, {
335
- style: styles.footerButtonsRow,
336
- children: [/*#__PURE__*/_jsx(TouchableOpacity, {
337
- style: styles.footerButton,
338
- onPress: () => toast.info('More settings feature coming soon!'),
339
- children: /*#__PURE__*/_jsx(Text, {
340
- style: [styles.footerButtonText, {
341
- color: textColor
342
- }],
343
- children: "More settings"
344
- })
345
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
346
- style: styles.footerButton,
347
- onPress: () => toast.info('Help & support feature coming soon!'),
348
- children: /*#__PURE__*/_jsx(Text, {
349
- style: [styles.footerButtonText, {
350
- color: textColor
351
- }],
352
- children: "Help"
353
- })
545
+ style: styles.section,
546
+ children: [/*#__PURE__*/_jsx(Text, {
547
+ style: styles.sectionTitle,
548
+ children: "Support & Settings"
549
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
550
+ style: [styles.settingItem, styles.firstSettingItem],
551
+ onPress: () => toast.info('Account preferences coming soon!'),
552
+ children: [/*#__PURE__*/_jsxs(View, {
553
+ style: styles.settingInfo,
554
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
555
+ name: "settings",
556
+ size: 20,
557
+ color: "#8E8E93",
558
+ style: styles.settingIcon
559
+ }), /*#__PURE__*/_jsxs(View, {
560
+ children: [/*#__PURE__*/_jsx(Text, {
561
+ style: styles.settingLabel,
562
+ children: "Account Preferences"
563
+ }), /*#__PURE__*/_jsx(Text, {
564
+ style: styles.settingDescription,
565
+ children: "Customize your account experience"
566
+ })]
567
+ })]
568
+ }), /*#__PURE__*/_jsx(OxyIcon, {
569
+ name: "chevron-forward",
570
+ size: 16,
571
+ color: "#ccc"
354
572
  })]
355
- }), /*#__PURE__*/_jsxs(View, {
356
- style: styles.footerLinksRow,
357
- children: [/*#__PURE__*/_jsx(TouchableOpacity, {
358
- onPress: () => toast.info('Privacy Policy feature coming soon!'),
359
- children: /*#__PURE__*/_jsx(Text, {
360
- style: [styles.footerLink, {
361
- color: iconColor
362
- }],
363
- children: "Privacy Policy"
364
- })
365
- }), /*#__PURE__*/_jsx(Text, {
366
- style: [{
367
- color: iconColor,
368
- marginHorizontal: 5
369
- }],
370
- children: "\u2022"
371
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
372
- onPress: () => toast.info('Terms of Service feature coming soon!'),
373
- children: /*#__PURE__*/_jsx(Text, {
374
- style: [styles.footerLink, {
375
- color: iconColor
376
- }],
377
- children: "Terms of Service"
378
- })
573
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
574
+ style: styles.settingItem,
575
+ onPress: () => toast.info('Help & support feature coming soon!'),
576
+ children: [/*#__PURE__*/_jsxs(View, {
577
+ style: styles.settingInfo,
578
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
579
+ name: "help-circle",
580
+ size: 20,
581
+ color: "#007AFF",
582
+ style: styles.settingIcon
583
+ }), /*#__PURE__*/_jsxs(View, {
584
+ children: [/*#__PURE__*/_jsx(Text, {
585
+ style: styles.settingLabel,
586
+ children: "Help & Support"
587
+ }), /*#__PURE__*/_jsx(Text, {
588
+ style: styles.settingDescription,
589
+ children: "Get help with your account"
590
+ })]
591
+ })]
592
+ }), /*#__PURE__*/_jsx(OxyIcon, {
593
+ name: "chevron-forward",
594
+ size: 16,
595
+ color: "#ccc"
596
+ })]
597
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
598
+ style: styles.settingItem,
599
+ onPress: () => toast.info('Connected apps feature coming soon!'),
600
+ children: [/*#__PURE__*/_jsxs(View, {
601
+ style: styles.settingInfo,
602
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
603
+ name: "link",
604
+ size: 20,
605
+ color: "#32D74B",
606
+ style: styles.settingIcon
607
+ }), /*#__PURE__*/_jsxs(View, {
608
+ children: [/*#__PURE__*/_jsx(Text, {
609
+ style: styles.settingLabel,
610
+ children: "Connected Apps"
611
+ }), /*#__PURE__*/_jsx(Text, {
612
+ style: styles.settingDescription,
613
+ children: "Manage third-party app access"
614
+ })]
615
+ })]
616
+ }), /*#__PURE__*/_jsx(OxyIcon, {
617
+ name: "chevron-forward",
618
+ size: 16,
619
+ color: "#ccc"
620
+ })]
621
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
622
+ style: styles.settingItem,
623
+ onPress: () => toast.info('Privacy Policy feature coming soon!'),
624
+ children: [/*#__PURE__*/_jsxs(View, {
625
+ style: styles.settingInfo,
626
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
627
+ name: "document-lock",
628
+ size: 20,
629
+ color: "#FF9F0A",
630
+ style: styles.settingIcon
631
+ }), /*#__PURE__*/_jsxs(View, {
632
+ children: [/*#__PURE__*/_jsx(Text, {
633
+ style: styles.settingLabel,
634
+ children: "Privacy Policy"
635
+ }), /*#__PURE__*/_jsx(Text, {
636
+ style: styles.settingDescription,
637
+ children: "Learn about data protection"
638
+ })]
639
+ })]
640
+ }), /*#__PURE__*/_jsx(OxyIcon, {
641
+ name: "chevron-forward",
642
+ size: 16,
643
+ color: "#ccc"
644
+ })]
645
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
646
+ style: [styles.settingItem, styles.lastSettingItem],
647
+ onPress: () => toast.info('Terms of Service feature coming soon!'),
648
+ children: [/*#__PURE__*/_jsxs(View, {
649
+ style: styles.settingInfo,
650
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
651
+ name: "document-text",
652
+ size: 20,
653
+ color: "#5856D6",
654
+ style: styles.settingIcon
655
+ }), /*#__PURE__*/_jsxs(View, {
656
+ children: [/*#__PURE__*/_jsx(Text, {
657
+ style: styles.settingLabel,
658
+ children: "Terms of Service"
659
+ }), /*#__PURE__*/_jsx(Text, {
660
+ style: styles.settingDescription,
661
+ children: "Read our terms and conditions"
662
+ })]
663
+ })]
664
+ }), /*#__PURE__*/_jsx(OxyIcon, {
665
+ name: "chevron-forward",
666
+ size: 16,
667
+ color: "#ccc"
379
668
  })]
380
669
  })]
670
+ }), /*#__PURE__*/_jsx(View, {
671
+ style: styles.section,
672
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
673
+ style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem, styles.signOutButton],
674
+ onPress: confirmLogout,
675
+ children: /*#__PURE__*/_jsxs(View, {
676
+ style: styles.settingInfo,
677
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
678
+ name: "log-out",
679
+ size: 20,
680
+ color: "#ff4757",
681
+ style: styles.settingIcon
682
+ }), /*#__PURE__*/_jsxs(View, {
683
+ children: [/*#__PURE__*/_jsx(Text, {
684
+ style: [styles.settingLabel, {
685
+ color: '#ff4757'
686
+ }],
687
+ children: "Sign Out"
688
+ }), /*#__PURE__*/_jsx(Text, {
689
+ style: styles.settingDescription,
690
+ children: "Sign out of your account"
691
+ })]
692
+ })]
693
+ })
694
+ })
381
695
  })]
382
- })
696
+ })]
383
697
  });
384
698
  };
385
699
  const styles = StyleSheet.create({
386
700
  container: {
387
- flex: 1
388
- },
389
- scrollView: {
390
- flex: 1
391
- },
392
- scrollContainer: {
393
- padding: 20
701
+ flex: 1,
702
+ backgroundColor: '#f2f2f2'
394
703
  },
395
704
  header: {
705
+ paddingHorizontal: 20,
706
+ paddingTop: 60,
707
+ paddingBottom: 16,
708
+ backgroundColor: '#fff',
709
+ borderBottomWidth: 1,
710
+ borderBottomColor: '#e0e0e0',
396
711
  flexDirection: 'row',
397
712
  justifyContent: 'space-between',
398
- alignItems: 'center',
399
- marginBottom: 20
400
- },
401
- closeIcon: {
402
- padding: 8
403
- },
404
- profileContainer: {
405
- padding: 20,
406
- borderRadius: 15,
407
- alignItems: 'center',
408
- marginBottom: 20
409
- },
410
- avatarContainer: {
411
- margin: 10
412
- },
413
- avatar: {
414
- width: 70,
415
- height: 70,
416
- borderRadius: 35,
417
- justifyContent: 'center',
418
713
  alignItems: 'center'
419
714
  },
420
- avatarText: {
421
- color: 'white',
422
- fontSize: 30,
423
- fontWeight: 'bold'
424
- },
425
- greeting: {
426
- fontFamily: Platform.OS === 'web' ? 'Phudu' // Use CSS font name directly for web
427
- : 'Phudu-Bold',
428
- // Use exact font name as registered with Font.loadAsync
429
- fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
430
- // Only apply fontWeight on web
431
- fontSize: 20,
432
- marginVertical: 10
715
+ headerTitle: {
716
+ fontSize: 24,
717
+ fontWeight: 'bold',
718
+ color: '#000'
433
719
  },
434
- manageAccountButton: {
435
- paddingVertical: 10,
436
- paddingHorizontal: 20,
437
- borderWidth: 1,
438
- borderRadius: 20,
439
- marginTop: 10
720
+ closeButton: {
721
+ padding: 8
440
722
  },
441
- manageAccountText: {
442
- fontSize: 14
723
+ closeButtonText: {
724
+ fontSize: 24,
725
+ color: '#000',
726
+ fontWeight: '300'
443
727
  },
444
- sectionHeader: {
445
- flexDirection: 'row',
446
- justifyContent: 'space-between',
447
- alignItems: 'center',
448
- paddingVertical: 15,
449
- borderBottomWidth: 1,
450
- marginBottom: 10
728
+ content: {
729
+ flex: 1,
730
+ padding: 16
451
731
  },
452
- sectionHeaderText: {
453
- fontFamily: Platform.OS === 'web' ? 'Phudu' // Use CSS font name directly for web
454
- : 'Phudu-Bold',
455
- // Use exact font name as registered with Font.loadAsync
456
- fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
457
- // Only apply fontWeight on web
458
- fontSize: 16
732
+ section: {
733
+ marginBottom: 24
459
734
  },
460
- accountsContainer: {
461
- borderRadius: 15,
462
- marginBottom: 20,
463
- overflow: 'hidden'
735
+ sectionTitle: {
736
+ fontSize: 16,
737
+ fontWeight: '600',
738
+ color: '#333',
739
+ marginBottom: 12
464
740
  },
465
- accountItem: {
741
+ settingItem: {
742
+ backgroundColor: '#fff',
743
+ padding: 16,
466
744
  flexDirection: 'row',
467
- justifyContent: 'space-between',
468
745
  alignItems: 'center',
469
- padding: 15,
470
- borderBottomWidth: 1
471
- },
472
- accountItemLeft: {
473
- flexDirection: 'row',
474
- alignItems: 'center'
475
- },
476
- accountAvatar: {
477
- width: 36,
478
- height: 36,
479
- borderRadius: 18,
480
- marginRight: 15,
481
- justifyContent: 'center',
482
- alignItems: 'center'
483
- },
484
- accountName: {
485
- fontSize: 15,
486
- fontWeight: '500'
487
- },
488
- accountEmail: {
489
- fontSize: 14
490
- },
491
- accountItemAction: {
492
- fontSize: 15
493
- },
494
- addAccountIcon: {
495
- backgroundColor: 'transparent',
496
- borderWidth: 1
746
+ justifyContent: 'space-between',
747
+ marginBottom: 2
497
748
  },
498
- signOutIcon: {
499
- backgroundColor: 'transparent',
500
- borderWidth: 1
749
+ firstSettingItem: {
750
+ borderTopLeftRadius: 24,
751
+ borderTopRightRadius: 24
501
752
  },
502
- featuresContainer: {
503
- borderRadius: 15,
504
- overflow: 'hidden',
505
- marginBottom: 20
753
+ lastSettingItem: {
754
+ borderBottomLeftRadius: 24,
755
+ borderBottomRightRadius: 24,
756
+ marginBottom: 8
506
757
  },
507
- featureItem: {
758
+ settingInfo: {
508
759
  flexDirection: 'row',
509
- justifyContent: 'space-between',
510
760
  alignItems: 'center',
511
- padding: 15,
512
- borderBottomWidth: 1
513
- },
514
- featureItemLeft: {
515
- flexDirection: 'row',
516
- alignItems: 'center'
761
+ flex: 1
517
762
  },
518
- iconContainer: {
519
- width: 36,
520
- height: 36,
521
- justifyContent: 'center',
522
- alignItems: 'center',
523
- marginRight: 15
763
+ settingIcon: {
764
+ marginRight: 12
524
765
  },
525
- featureItemTitle: {
526
- fontSize: 15,
766
+ settingLabel: {
767
+ fontSize: 16,
768
+ fontWeight: '500',
769
+ color: '#333',
770
+ marginBottom: 2
771
+ },
772
+ settingDescription: {
773
+ fontSize: 14,
774
+ color: '#666'
775
+ },
776
+ userIcon: {
777
+ marginRight: 12
778
+ },
779
+ manageButton: {
780
+ backgroundColor: '#007AFF',
781
+ paddingHorizontal: 16,
782
+ paddingVertical: 8,
783
+ borderRadius: 16
784
+ },
785
+ manageButtonText: {
786
+ color: '#fff',
787
+ fontSize: 14,
527
788
  fontWeight: '500'
528
789
  },
529
- featureItemValue: {
530
- fontSize: 14
790
+ accountAvatarImage: {
791
+ width: 40,
792
+ height: 40,
793
+ borderRadius: 20
531
794
  },
532
- footerContainer: {
533
- marginBottom: 30
795
+ accountAvatarFallback: {
796
+ width: 40,
797
+ height: 40,
798
+ borderRadius: 20,
799
+ backgroundColor: '#d169e5',
800
+ alignItems: 'center',
801
+ justifyContent: 'center'
534
802
  },
535
- footerButtonsRow: {
536
- flexDirection: 'row',
537
- justifyContent: 'space-between',
538
- marginBottom: 20
803
+ accountAvatarText: {
804
+ color: 'white',
805
+ fontSize: 18,
806
+ fontWeight: 'bold'
539
807
  },
540
- footerButton: {
541
- flex: 1,
542
- padding: 15,
543
- alignItems: 'center'
808
+ signOutButton: {
809
+ borderWidth: 1,
810
+ borderColor: '#ff4757'
544
811
  },
545
- footerButtonText: {
546
- fontSize: 15
812
+ message: {
813
+ fontSize: 16,
814
+ textAlign: 'center',
815
+ marginTop: 24,
816
+ color: '#333'
547
817
  },
548
- footerLinksRow: {
818
+ loadingContainer: {
549
819
  flexDirection: 'row',
820
+ alignItems: 'center',
550
821
  justifyContent: 'center',
551
- alignItems: 'center'
822
+ paddingVertical: 20,
823
+ gap: 12
552
824
  },
553
- footerLink: {
554
- fontSize: 13
555
- },
556
- message: {
825
+ loadingText: {
557
826
  fontSize: 16,
558
- textAlign: 'center',
559
- marginTop: 24
827
+ color: '#666'
560
828
  }
561
829
  });
562
830
  export default AccountOverviewScreen;