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