@oxyhq/services 5.21.5 → 5.21.7

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 (177) hide show
  1. package/lib/commonjs/crypto/keyManager.js +67 -22
  2. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  3. package/lib/commonjs/index.js +66 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/ui/components/BottomSheetRouter.js +100 -286
  6. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  7. package/lib/commonjs/ui/components/GroupedItem.js +0 -3
  8. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  9. package/lib/commonjs/ui/components/OxyProvider.js +14 -19
  10. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  11. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +57 -0
  12. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +1 -0
  13. package/lib/commonjs/ui/components/profile/EditBioModal.js +24 -156
  14. package/lib/commonjs/ui/components/profile/EditBioModal.js.map +1 -1
  15. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +28 -178
  16. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  17. package/lib/commonjs/ui/components/profile/EditEmailModal.js +32 -159
  18. package/lib/commonjs/ui/components/profile/EditEmailModal.js.map +1 -1
  19. package/lib/commonjs/ui/components/profile/EditLocationModal.js +45 -227
  20. package/lib/commonjs/ui/components/profile/EditLocationModal.js.map +1 -1
  21. package/lib/commonjs/ui/components/profile/EditUsernameModal.js +30 -155
  22. package/lib/commonjs/ui/components/profile/EditUsernameModal.js.map +1 -1
  23. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +177 -0
  24. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -0
  25. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +10 -123
  26. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  27. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +2 -32
  28. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  29. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +2 -31
  30. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/useFileFiltering.js +76 -0
  32. package/lib/commonjs/ui/hooks/useFileFiltering.js.map +1 -0
  33. package/lib/commonjs/ui/navigation/bottomSheetManager.js +43 -145
  34. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  35. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +0 -2
  36. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/FileManagementScreen.js +2 -2
  38. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  39. package/lib/commonjs/ui/utils/authHelpers.js +164 -0
  40. package/lib/commonjs/ui/utils/authHelpers.js.map +1 -0
  41. package/lib/commonjs/ui/utils/avatarUtils.js +18 -61
  42. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  43. package/lib/module/crypto/keyManager.js +67 -22
  44. package/lib/module/crypto/keyManager.js.map +1 -1
  45. package/lib/module/index.js +6 -0
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/ui/components/BottomSheetRouter.js +102 -284
  48. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  49. package/lib/module/ui/components/GroupedItem.js +0 -3
  50. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  51. package/lib/module/ui/components/OxyProvider.js +14 -19
  52. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  53. package/lib/module/ui/components/fileManagement/AnimatedButton.js +50 -0
  54. package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +1 -0
  55. package/lib/module/ui/components/profile/EditBioModal.js +24 -156
  56. package/lib/module/ui/components/profile/EditBioModal.js.map +1 -1
  57. package/lib/module/ui/components/profile/EditDisplayNameModal.js +28 -178
  58. package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -1
  59. package/lib/module/ui/components/profile/EditEmailModal.js +32 -159
  60. package/lib/module/ui/components/profile/EditEmailModal.js.map +1 -1
  61. package/lib/module/ui/components/profile/EditLocationModal.js +45 -227
  62. package/lib/module/ui/components/profile/EditLocationModal.js.map +1 -1
  63. package/lib/module/ui/components/profile/EditUsernameModal.js +30 -155
  64. package/lib/module/ui/components/profile/EditUsernameModal.js.map +1 -1
  65. package/lib/module/ui/hooks/mutations/mutationFactory.js +173 -0
  66. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -0
  67. package/lib/module/ui/hooks/mutations/useAccountMutations.js +10 -122
  68. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  69. package/lib/module/ui/hooks/queries/useAccountQueries.js +2 -32
  70. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  71. package/lib/module/ui/hooks/queries/useServicesQueries.js +2 -31
  72. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  73. package/lib/module/ui/hooks/useFileFiltering.js +72 -0
  74. package/lib/module/ui/hooks/useFileFiltering.js.map +1 -0
  75. package/lib/module/ui/navigation/bottomSheetManager.js +37 -135
  76. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  77. package/lib/module/ui/screens/AccountSettingsScreen.js +0 -2
  78. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  79. package/lib/module/ui/screens/FileManagementScreen.js +2 -2
  80. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  81. package/lib/module/ui/utils/authHelpers.js +154 -0
  82. package/lib/module/ui/utils/authHelpers.js.map +1 -0
  83. package/lib/module/ui/utils/avatarUtils.js +18 -61
  84. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  85. package/lib/typescript/commonjs/crypto/keyManager.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/index.d.ts +6 -0
  87. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts +2 -7
  89. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts +16 -0
  93. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -0
  94. package/lib/typescript/commonjs/ui/components/profile/EditBioModal.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/ui/components/profile/EditEmailModal.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/ui/components/profile/EditLocationModal.d.ts +1 -0
  98. package/lib/typescript/commonjs/ui/components/profile/EditLocationModal.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/ui/components/profile/EditUsernameModal.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +76 -0
  101. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +29 -4
  103. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +1 -1
  105. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  107. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/ui/hooks/useFileFiltering.d.ts +29 -0
  109. package/lib/typescript/commonjs/ui/hooks/useFileFiltering.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +11 -60
  111. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/ui/utils/authHelpers.d.ts +99 -0
  114. package/lib/typescript/commonjs/ui/utils/authHelpers.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  116. package/lib/typescript/module/crypto/keyManager.d.ts.map +1 -1
  117. package/lib/typescript/module/index.d.ts +6 -0
  118. package/lib/typescript/module/index.d.ts.map +1 -1
  119. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts +2 -7
  120. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  121. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +1 -1
  122. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  123. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts +16 -0
  124. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -0
  125. package/lib/typescript/module/ui/components/profile/EditBioModal.d.ts.map +1 -1
  126. package/lib/typescript/module/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
  127. package/lib/typescript/module/ui/components/profile/EditEmailModal.d.ts.map +1 -1
  128. package/lib/typescript/module/ui/components/profile/EditLocationModal.d.ts +1 -0
  129. package/lib/typescript/module/ui/components/profile/EditLocationModal.d.ts.map +1 -1
  130. package/lib/typescript/module/ui/components/profile/EditUsernameModal.d.ts.map +1 -1
  131. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +76 -0
  132. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts.map +1 -0
  133. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +29 -4
  134. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  135. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +1 -1
  136. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  137. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  138. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  139. package/lib/typescript/module/ui/hooks/useFileFiltering.d.ts +29 -0
  140. package/lib/typescript/module/ui/hooks/useFileFiltering.d.ts.map +1 -0
  141. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +11 -60
  142. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  143. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  144. package/lib/typescript/module/ui/utils/authHelpers.d.ts +99 -0
  145. package/lib/typescript/module/ui/utils/authHelpers.d.ts.map +1 -0
  146. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  147. package/package.json +2 -2
  148. package/src/crypto/keyManager.ts +23 -22
  149. package/src/index.ts +25 -0
  150. package/src/ui/components/BottomSheetRouter.tsx +97 -319
  151. package/src/ui/components/GroupedItem.tsx +0 -4
  152. package/src/ui/components/OxyProvider.tsx +13 -18
  153. package/src/ui/components/fileManagement/AnimatedButton.tsx +56 -0
  154. package/src/ui/components/profile/EditBioModal.tsx +38 -176
  155. package/src/ui/components/profile/EditDisplayNameModal.tsx +48 -195
  156. package/src/ui/components/profile/EditEmailModal.tsx +49 -180
  157. package/src/ui/components/profile/EditLocationModal.tsx +76 -263
  158. package/src/ui/components/profile/EditUsernameModal.tsx +47 -175
  159. package/src/ui/hooks/mutations/mutationFactory.ts +215 -0
  160. package/src/ui/hooks/mutations/useAccountMutations.ts +48 -136
  161. package/src/ui/hooks/queries/useAccountQueries.ts +6 -33
  162. package/src/ui/hooks/queries/useServicesQueries.ts +6 -32
  163. package/src/ui/hooks/useFileFiltering.ts +115 -0
  164. package/src/ui/navigation/bottomSheetManager.ts +43 -150
  165. package/src/ui/screens/AccountSettingsScreen.tsx +0 -2
  166. package/src/ui/screens/FileManagementScreen.tsx +2 -2
  167. package/src/ui/utils/authHelpers.ts +183 -0
  168. package/src/ui/utils/avatarUtils.ts +25 -65
  169. package/lib/commonjs/ui/hooks/use-haptic-press.js +0 -21
  170. package/lib/commonjs/ui/hooks/use-haptic-press.js.map +0 -1
  171. package/lib/module/ui/hooks/use-haptic-press.js +0 -17
  172. package/lib/module/ui/hooks/use-haptic-press.js.map +0 -1
  173. package/lib/typescript/commonjs/ui/hooks/use-haptic-press.d.ts +0 -8
  174. package/lib/typescript/commonjs/ui/hooks/use-haptic-press.d.ts.map +0 -1
  175. package/lib/typescript/module/ui/hooks/use-haptic-press.d.ts +0 -8
  176. package/lib/typescript/module/ui/hooks/use-haptic-press.d.ts.map +0 -1
  177. package/src/ui/hooks/use-haptic-press.ts +0 -15
@@ -3,6 +3,7 @@
3
3
  import { useQuery, useQueries } from '@tanstack/react-query';
4
4
  import { queryKeys } from "./queryKeys.js";
5
5
  import { useOxy } from "../../context/OxyContext.js";
6
+ import { authenticatedApiCall } from "../../utils/authHelpers.js";
6
7
 
7
8
  /**
8
9
  * Get user profile by session ID
@@ -150,38 +151,7 @@ export const usePrivacySettings = (userId, options) => {
150
151
  if (!targetUserId) {
151
152
  throw new Error('User ID is required');
152
153
  }
153
-
154
- // Ensure we have a valid token before making the request
155
- if (!oxyServices.hasValidToken() && activeSessionId) {
156
- try {
157
- // Try to get token for the session
158
- await oxyServices.getTokenBySession(activeSessionId);
159
- } catch (tokenError) {
160
- // If getting token fails, might be an offline session - try syncing
161
- const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
162
- if (errorMessage.includes('AUTH_REQUIRED_OFFLINE_SESSION') || errorMessage.includes('offline')) {
163
- // Session sync should be handled by the app layer (e.g., accounts app's useIdentity hook)
164
- throw new Error('Session needs to be synced. Please try again.');
165
- } else {
166
- throw tokenError;
167
- }
168
- }
169
- }
170
- try {
171
- return await oxyServices.getPrivacySettings(targetUserId);
172
- } catch (error) {
173
- const errorMessage = error?.message || '';
174
- const status = error?.status || error?.response?.status;
175
-
176
- // Handle authentication errors
177
- if (status === 401 || errorMessage.includes('Authentication required') || errorMessage.includes('Invalid or missing authorization header')) {
178
- // Session sync should be handled by the app layer
179
- throw new Error('Authentication failed. Please sign in again.');
180
- }
181
-
182
- // TanStack Query will automatically retry on network errors
183
- throw error;
184
- }
154
+ return authenticatedApiCall(oxyServices, activeSessionId, () => oxyServices.getPrivacySettings(targetUserId));
185
155
  },
186
156
  enabled: options?.enabled !== false && !!targetUserId,
187
157
  staleTime: 2 * 60 * 1000,
@@ -1 +1 @@
1
- {"version":3,"names":["useQuery","useQueries","queryKeys","useOxy","useUserProfile","sessionId","options","oxyServices","queryKey","users","profile","queryFn","Error","getUserBySession","enabled","staleTime","gcTime","useUserProfiles","sessionIds","queries","map","results","getUsersBySessions","user","useCurrentUser","activeSessionId","isAuthenticated","accounts","current","useUserById","userId","detail","getUserById","useUserByUsername","username","details","getProfileByUsername","useUsersBySessions","list","length","usePrivacySettings","targetUserId","id","privacy","settings","hasValidToken","getTokenBySession","tokenError","errorMessage","message","String","includes","getPrivacySettings","error","status","response"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useAccountQueries.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useQuery","useQueries","queryKeys","useOxy","authenticatedApiCall","useUserProfile","sessionId","options","oxyServices","queryKey","users","profile","queryFn","Error","getUserBySession","enabled","staleTime","gcTime","useUserProfiles","sessionIds","queries","map","results","getUsersBySessions","user","useCurrentUser","activeSessionId","isAuthenticated","accounts","current","useUserById","userId","detail","getUserById","useUserByUsername","username","details","getProfileByUsername","useUsersBySessions","list","length","usePrivacySettings","targetUserId","id","privacy","settings","getPrivacySettings"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useAccountQueries.ts"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import { useQuery } from '@tanstack/react-query';
4
4
  import { queryKeys } from "./queryKeys.js";
5
5
  import { useOxy } from "../../context/OxyContext.js";
6
6
  import { fetchSessionsWithFallback, mapSessionsToClient } from "../../utils/sessionHelpers.js";
7
+ import { authenticatedApiCall } from "../../utils/authHelpers.js";
7
8
 
8
9
  /**
9
10
  * Get all active sessions for the current user
@@ -102,37 +103,7 @@ export const useUserDevices = options => {
102
103
  return useQuery({
103
104
  queryKey: queryKeys.devices.list(),
104
105
  queryFn: async () => {
105
- // Ensure we have a valid token before making the request
106
- if (!oxyServices.hasValidToken() && activeSessionId) {
107
- try {
108
- // Try to get token for the session
109
- await oxyServices.getTokenBySession(activeSessionId);
110
- } catch (tokenError) {
111
- // If getting token fails, might be an offline session - try syncing
112
- const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
113
- if (errorMessage.includes('AUTH_REQUIRED_OFFLINE_SESSION') || errorMessage.includes('offline')) {
114
- // Session sync should be handled by the app layer
115
- throw new Error('Session needs to be synced. Please try again.');
116
- } else {
117
- throw tokenError;
118
- }
119
- }
120
- }
121
- try {
122
- return await oxyServices.getUserDevices();
123
- } catch (error) {
124
- const errorMessage = error?.message || '';
125
- const status = error?.status || error?.response?.status;
126
-
127
- // Handle authentication errors
128
- if (status === 401 || errorMessage.includes('Authentication required') || errorMessage.includes('Invalid or missing authorization header')) {
129
- // Session sync should be handled by the app layer
130
- throw new Error('Authentication failed. Please sign in again.');
131
- }
132
-
133
- // TanStack Query will automatically retry on network errors
134
- throw error;
135
- }
106
+ return authenticatedApiCall(oxyServices, activeSessionId, () => oxyServices.getUserDevices());
136
107
  },
137
108
  enabled: options?.enabled !== false && isAuthenticated,
138
109
  staleTime: 5 * 60 * 1000,
@@ -1 +1 @@
1
- {"version":3,"names":["useQuery","queryKeys","useOxy","fetchSessionsWithFallback","mapSessionsToClient","useSessions","userId","options","oxyServices","activeSessionId","queryKey","sessions","list","queryFn","Error","fallbackDeviceId","undefined","fallbackUserId","enabled","staleTime","gcTime","useSession","sessionId","detail","validation","validateSession","useHeaderValidation","valid","user","now","Date","deviceId","expiresAt","getTime","toISOString","lastActive","lastActivity","id","toString","isCurrent","useDeviceSessions","active","getDeviceSessions","useUserDevices","isAuthenticated","devices","hasValidToken","getTokenBySession","tokenError","errorMessage","message","String","includes","getUserDevices","error","status","response","useSecurityInfo","all","getSecurityInfo"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useServicesQueries.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,MAAM,QAAQ,6BAA0B;AACjD,SAASC,yBAAyB,EAAEC,mBAAmB,QAAQ,+BAA4B;;AAE3F;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGA,CAACC,MAAe,EAAEC,OAA+B,KAAK;EAC/E,MAAM;IAAEC,WAAW;IAAEC;EAAgB,CAAC,GAAGP,MAAM,CAAC,CAAC;EAEjD,OAAOF,QAAQ,CAAC;IACdU,QAAQ,EAAET,SAAS,CAACU,QAAQ,CAACC,IAAI,CAACN,MAAM,CAAC;IACzCO,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAACJ,eAAe,EAAE;QACpB,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;MACtC;MAEA,MAAMH,QAAQ,GAAG,MAAMR,yBAAyB,CAACK,WAAW,EAAEC,eAAe,EAAE;QAC7EM,gBAAgB,EAAEC,SAAS;QAC3BC,cAAc,EAAEX;MAClB,CAAC,CAAC;MAEF,OAAOF,mBAAmB,CAACO,QAAQ,EAAEF,eAAe,CAAC;IACvD,CAAC;IACDS,OAAO,EAAGX,OAAO,EAAEW,OAAO,KAAK,KAAK,IAAK,CAAC,CAACT,eAAe;IAC1DU,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAAE;IAC1BC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAE;EAC1B,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGA,CAACC,SAAwB,EAAEf,OAA+B,KAAK;EACvF,MAAM;IAAEC;EAAY,CAAC,GAAGN,MAAM,CAAC,CAAC;EAEhC,OAAOF,QAAQ,CAAC;IACdU,QAAQ,EAAET,SAAS,CAACU,QAAQ,CAACY,MAAM,CAACD,SAAS,IAAI,EAAE,CAAC;IACpDT,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAACS,SAAS,EAAE;QACd,MAAM,IAAIR,KAAK,CAAC,wBAAwB,CAAC;MAC3C;MAEA,MAAMU,UAAU,GAAG,MAAMhB,WAAW,CAACiB,eAAe,CAACH,SAAS,EAAE;QAAEI,mBAAmB,EAAE;MAAK,CAAC,CAAC;MAC9F,IAAI,CAACF,UAAU,EAAEG,KAAK,IAAI,CAACH,UAAU,CAACI,IAAI,EAAE;QAC1C,MAAM,IAAId,KAAK,CAAC,8BAA8B,CAAC;MACjD;MAEA,MAAMe,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;MACtB,OAAO;QACLR,SAAS;QACTS,QAAQ,EAAE,EAAE;QAAE;QACdC,SAAS,EAAER,UAAU,CAACQ,SAAS,IAAI,IAAIF,IAAI,CAACD,GAAG,CAACI,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAACC,WAAW,CAAC,CAAC;QAClGC,UAAU,EAAEX,UAAU,CAACY,YAAY,IAAIP,GAAG,CAACK,WAAW,CAAC,CAAC;QACxD5B,MAAM,EAAEkB,UAAU,CAACI,IAAI,CAACS,EAAE,EAAEC,QAAQ,CAAC,CAAC,IAAI,EAAE;QAC5CC,SAAS,EAAE;MACb,CAAC;IACH,CAAC;IACDrB,OAAO,EAAGX,OAAO,EAAEW,OAAO,KAAK,KAAK,IAAK,CAAC,CAACI,SAAS;IACpDH,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMoB,iBAAiB,GAAIjC,OAA+B,IAAK;EACpE,MAAM;IAAEC,WAAW;IAAEC;EAAgB,CAAC,GAAGP,MAAM,CAAC,CAAC;EAEjD,OAAOF,QAAQ,CAAC;IACdU,QAAQ,EAAET,SAAS,CAACU,QAAQ,CAAC8B,MAAM,CAAC,CAAC;IACrC5B,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAACJ,eAAe,EAAE;QACpB,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;MACtC;MAEA,OAAO,MAAMN,WAAW,CAACkC,iBAAiB,CAACjC,eAAe,CAAC;IAC7D,CAAC;IACDS,OAAO,EAAGX,OAAO,EAAEW,OAAO,KAAK,KAAK,IAAK,CAAC,CAACT,eAAe;IAC1DU,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMuB,cAAc,GAAIpC,OAA+B,IAAK;EACjE,MAAM;IAAEC,WAAW;IAAEoC,eAAe;IAAEnC;EAAgB,CAAC,GAAGP,MAAM,CAAC,CAAC;EAElE,OAAOF,QAAQ,CAAC;IACdU,QAAQ,EAAET,SAAS,CAAC4C,OAAO,CAACjC,IAAI,CAAC,CAAC;IAClCC,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB;MACA,IAAI,CAACL,WAAW,CAACsC,aAAa,CAAC,CAAC,IAAIrC,eAAe,EAAE;QACnD,IAAI;UACF;UACA,MAAMD,WAAW,CAACuC,iBAAiB,CAACtC,eAAe,CAAC;QACtD,CAAC,CAAC,OAAOuC,UAAU,EAAE;UACnB;UACA,MAAMC,YAAY,GAAGD,UAAU,YAAYlC,KAAK,GAAGkC,UAAU,CAACE,OAAO,GAAGC,MAAM,CAACH,UAAU,CAAC;UAC1F,IAAIC,YAAY,CAACG,QAAQ,CAAC,+BAA+B,CAAC,IAAIH,YAAY,CAACG,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC9F;YACA,MAAM,IAAItC,KAAK,CAAC,+CAA+C,CAAC;UAClE,CAAC,MAAM;YACL,MAAMkC,UAAU;UAClB;QACF;MACF;MAEA,IAAI;QACF,OAAO,MAAMxC,WAAW,CAAC6C,cAAc,CAAC,CAAC;MAC3C,CAAC,CAAC,OAAOC,KAAU,EAAE;QACnB,MAAML,YAAY,GAAGK,KAAK,EAAEJ,OAAO,IAAI,EAAE;QACzC,MAAMK,MAAM,GAAGD,KAAK,EAAEC,MAAM,IAAID,KAAK,EAAEE,QAAQ,EAAED,MAAM;;QAEvD;QACA,IAAIA,MAAM,KAAK,GAAG,IAAIN,YAAY,CAACG,QAAQ,CAAC,yBAAyB,CAAC,IAAIH,YAAY,CAACG,QAAQ,CAAC,yCAAyC,CAAC,EAAE;UAC1I;UACA,MAAM,IAAItC,KAAK,CAAC,8CAA8C,CAAC;QACjE;;QAEA;QACA,MAAMwC,KAAK;MACb;IACF,CAAC;IACDpC,OAAO,EAAGX,OAAO,EAAEW,OAAO,KAAK,KAAK,IAAK0B,eAAe;IACxDzB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMqC,eAAe,GAAIlD,OAA+B,IAAK;EAClE,MAAM;IAAEC,WAAW;IAAEoC;EAAgB,CAAC,GAAG1C,MAAM,CAAC,CAAC;EAEjD,OAAOF,QAAQ,CAAC;IACdU,QAAQ,EAAE,CAAC,GAAGT,SAAS,CAAC4C,OAAO,CAACa,GAAG,EAAE,UAAU,CAAC;IAChD7C,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,OAAO,MAAML,WAAW,CAACmD,eAAe,CAAC,CAAC;IAC5C,CAAC;IACDzC,OAAO,EAAGX,OAAO,EAAEW,OAAO,KAAK,KAAK,IAAK0B,eAAe;IACxDzB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useQuery","queryKeys","useOxy","fetchSessionsWithFallback","mapSessionsToClient","authenticatedApiCall","useSessions","userId","options","oxyServices","activeSessionId","queryKey","sessions","list","queryFn","Error","fallbackDeviceId","undefined","fallbackUserId","enabled","staleTime","gcTime","useSession","sessionId","detail","validation","validateSession","useHeaderValidation","valid","user","now","Date","deviceId","expiresAt","getTime","toISOString","lastActive","lastActivity","id","toString","isCurrent","useDeviceSessions","active","getDeviceSessions","useUserDevices","isAuthenticated","devices","getUserDevices","useSecurityInfo","all","getSecurityInfo"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useServicesQueries.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ import { useMemo, useState, useCallback } from 'react';
4
+ /**
5
+ * Hook for file filtering, sorting, and search functionality
6
+ * Extracts common file management logic for reuse across components
7
+ */
8
+ export function useFileFiltering({
9
+ files,
10
+ initialViewMode = 'all',
11
+ initialSortBy = 'date',
12
+ initialSortOrder = 'desc'
13
+ }) {
14
+ const [viewMode, setViewMode] = useState(initialViewMode);
15
+ const [searchQuery, setSearchQuery] = useState('');
16
+ const [sortBy, setSortBy] = useState(initialSortBy);
17
+ const [sortOrder, setSortOrder] = useState(initialSortOrder);
18
+ const toggleSortOrder = useCallback(() => {
19
+ setSortOrder(prev => prev === 'asc' ? 'desc' : 'asc');
20
+ }, []);
21
+ const filteredFiles = useMemo(() => {
22
+ // Filter by view mode
23
+ let filteredByMode = files;
24
+ if (viewMode === 'photos') {
25
+ filteredByMode = files.filter(file => file.contentType.startsWith('image/'));
26
+ } else if (viewMode === 'videos') {
27
+ filteredByMode = files.filter(file => file.contentType.startsWith('video/'));
28
+ } else if (viewMode === 'documents') {
29
+ filteredByMode = files.filter(file => file.contentType.includes('pdf') || file.contentType.includes('document') || file.contentType.includes('text') || file.contentType.includes('msword') || file.contentType.includes('excel') || file.contentType.includes('spreadsheet') || file.contentType.includes('presentation') || file.contentType.includes('powerpoint'));
30
+ } else if (viewMode === 'audio') {
31
+ filteredByMode = files.filter(file => file.contentType.startsWith('audio/'));
32
+ }
33
+
34
+ // Filter by search query
35
+ let filtered = filteredByMode;
36
+ if (searchQuery.trim()) {
37
+ const query = searchQuery.toLowerCase();
38
+ filtered = filteredByMode.filter(file => file.filename.toLowerCase().includes(query) || file.contentType.toLowerCase().includes(query) || file.metadata?.description && file.metadata.description.toLowerCase().includes(query));
39
+ }
40
+
41
+ // Sort files
42
+ const sorted = [...filtered].sort((a, b) => {
43
+ let comparison = 0;
44
+ if (sortBy === 'date') {
45
+ const dateA = new Date(a.uploadDate || 0).getTime();
46
+ const dateB = new Date(b.uploadDate || 0).getTime();
47
+ comparison = dateA - dateB;
48
+ } else if (sortBy === 'size') {
49
+ comparison = (a.length || 0) - (b.length || 0);
50
+ } else if (sortBy === 'name') {
51
+ comparison = (a.filename || '').localeCompare(b.filename || '');
52
+ } else if (sortBy === 'type') {
53
+ comparison = (a.contentType || '').localeCompare(b.contentType || '');
54
+ }
55
+ return sortOrder === 'asc' ? comparison : -comparison;
56
+ });
57
+ return sorted;
58
+ }, [files, searchQuery, viewMode, sortBy, sortOrder]);
59
+ return {
60
+ filteredFiles,
61
+ viewMode,
62
+ setViewMode,
63
+ searchQuery,
64
+ setSearchQuery,
65
+ sortBy,
66
+ setSortBy,
67
+ sortOrder,
68
+ setSortOrder,
69
+ toggleSortOrder
70
+ };
71
+ }
72
+ //# sourceMappingURL=useFileFiltering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useState","useCallback","useFileFiltering","files","initialViewMode","initialSortBy","initialSortOrder","viewMode","setViewMode","searchQuery","setSearchQuery","sortBy","setSortBy","sortOrder","setSortOrder","toggleSortOrder","prev","filteredFiles","filteredByMode","filter","file","contentType","startsWith","includes","filtered","trim","query","toLowerCase","filename","metadata","description","sorted","sort","a","b","comparison","dateA","Date","uploadDate","getTime","dateB","length","localeCompare"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFileFiltering.ts"],"mappings":"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","ignoreList":[]}
@@ -4,165 +4,67 @@ import { isValidRoute } from "./routes.js";
4
4
  import { createStore } from 'zustand/vanilla';
5
5
 
6
6
  /**
7
- * Bottom Sheet Manager - Pure state management module
8
- *
9
- * Uses Zustand (vanilla) for robust state management without React dependencies.
10
- * This ensures the manager can be imported safely anywhere.
7
+ * Bottom Sheet State Manager
11
8
  */
12
9
 
13
- // Initial state
14
10
  const initialState = {
15
11
  currentScreen: null,
16
12
  screenProps: {},
17
13
  currentStep: undefined,
18
- navigationHistory: [],
14
+ history: [],
19
15
  isOpen: false
20
16
  };
21
-
22
- // Create vanilla store
23
17
  export const bottomSheetStore = createStore(() => initialState);
18
+ export const getState = () => bottomSheetStore.getState();
19
+ export const showBottomSheet = screenOrConfig => {
20
+ const screen = typeof screenOrConfig === 'string' ? screenOrConfig : screenOrConfig.screen;
21
+ const props = typeof screenOrConfig === 'string' ? {} : screenOrConfig.props || {};
22
+ if (!isValidRoute(screen)) {
23
+ if (__DEV__) console.warn(`[BottomSheet] Invalid route: ${screen}`);
24
+ return;
25
+ }
26
+ const state = bottomSheetStore.getState();
24
27
 
25
- // Use a generic ref type to avoid importing React types
26
-
27
- let bottomSheetRef = null;
28
-
29
- /**
30
- * Set the bottom sheet ref so showBottomSheet can control it
31
- */
32
- export const setBottomSheetRef = ref => {
33
- bottomSheetRef = ref;
34
- };
35
-
36
- /**
37
- * Update the bottom sheet state
38
- * (Kept for backward compatibility, but prefer using store directly if possible)
39
- */
40
- export const updateBottomSheetState = updates => {
41
- bottomSheetStore.setState(state => ({
42
- ...state,
43
- ...updates
44
- }));
45
- };
46
-
47
- /**
48
- * Subscribe to bottom sheet state changes
49
- * (Wrapper around store.subscribe for backward compatibility)
50
- */
51
- export const subscribeToBottomSheetState = listener => {
52
- return bottomSheetStore.subscribe(listener);
53
- };
54
-
55
- /**
56
- * Get the current bottom sheet state
57
- * (Wrapper around store.getState for backward compatibility)
58
- */
59
- export const getBottomSheetState = () => {
60
- return bottomSheetStore.getState();
61
- };
62
-
63
- /**
64
- * Show the bottom sheet with a specific screen (internal - no route validation)
65
- */
66
- export const managerShowBottomSheet = (screen, props, options) => {
67
- const currentState = bottomSheetStore.getState();
68
- const addToHistory = options?.addToHistory !== false; // Default to true
69
-
70
- // If adding to history and there's a current screen, push it to history
71
- if (addToHistory && currentState.currentScreen) {
72
- const historyEntry = {
73
- screen: currentState.currentScreen,
74
- props: {
75
- ...currentState.screenProps
76
- },
77
- step: currentState.currentStep
78
- };
79
-
80
- // We need to create a new array for immutability
81
- const newHistory = [...currentState.navigationHistory, historyEntry];
28
+ // Push current screen to history if navigating to different screen
29
+ if (state.currentScreen && state.currentScreen !== screen) {
82
30
  bottomSheetStore.setState({
83
- navigationHistory: newHistory
31
+ history: [...state.history, {
32
+ screen: state.currentScreen,
33
+ props: state.screenProps,
34
+ step: state.currentStep
35
+ }]
84
36
  });
85
37
  }
86
-
87
- // Determine the new step
88
- const newStep = options?.step ?? (props?.initialStep !== undefined ? props.initialStep : addToHistory ? undefined : currentState.currentStep);
89
38
  bottomSheetStore.setState({
90
39
  currentScreen: screen,
91
- screenProps: props || {},
92
- currentStep: newStep !== null && newStep !== undefined ? newStep : undefined,
40
+ screenProps: props,
41
+ currentStep: typeof props.initialStep === 'number' ? props.initialStep : undefined,
93
42
  isOpen: true
94
43
  });
95
-
96
- // Present the sheet after state update
97
- if (bottomSheetRef?.current) {
98
- bottomSheetRef.current.present();
99
- }
100
44
  };
101
-
102
- /**
103
- * Close the bottom sheet (internal)
104
- */
105
- export const managerCloseBottomSheet = () => {
106
- bottomSheetStore.setState({
107
- currentScreen: null,
108
- screenProps: {},
109
- currentStep: undefined,
110
- navigationHistory: [],
111
- isOpen: false
112
- });
113
- if (bottomSheetRef?.current) {
114
- bottomSheetRef.current.dismiss();
115
- }
45
+ export const closeBottomSheet = () => {
46
+ bottomSheetStore.setState(initialState);
116
47
  };
117
-
118
- /**
119
- * Go back in navigation history
120
- * Returns true if back navigation was successful, false if history is empty
121
- */
122
- export const managerGoBack = () => {
123
- const currentState = bottomSheetStore.getState();
124
-
125
- // If there's history, pop and navigate to previous screen
126
- if (currentState.navigationHistory.length > 0) {
127
- const previous = currentState.navigationHistory[currentState.navigationHistory.length - 1];
128
- const newHistory = currentState.navigationHistory.slice(0, -1);
48
+ export const goBack = () => {
49
+ const {
50
+ history
51
+ } = bottomSheetStore.getState();
52
+ if (history.length > 0) {
53
+ const prev = history[history.length - 1];
129
54
  bottomSheetStore.setState({
130
- currentScreen: previous.screen,
131
- screenProps: previous.props,
132
- currentStep: previous.step,
133
- navigationHistory: newHistory,
134
- isOpen: true
55
+ currentScreen: prev.screen,
56
+ screenProps: prev.props,
57
+ currentStep: prev.step,
58
+ history: history.slice(0, -1)
135
59
  });
136
60
  return true;
137
61
  }
138
62
  return false;
139
63
  };
140
-
141
- /**
142
- * Public API for showing bottom sheets
143
- */
144
- export const showBottomSheet = screenOrConfig => {
145
- let screen;
146
- let props = {};
147
- if (typeof screenOrConfig === 'string') {
148
- screen = screenOrConfig;
149
- } else {
150
- screen = screenOrConfig.screen;
151
- props = screenOrConfig.props || {};
152
- }
153
- if (!isValidRoute(screen)) {
154
- if (__DEV__) {
155
- console.warn(`[BottomSheetAPI] Invalid route: ${screen}`);
156
- }
157
- return;
158
- }
159
- managerShowBottomSheet(screen, props);
160
- };
161
-
162
- /**
163
- * Public API for closing bottom sheets
164
- */
165
- export const closeBottomSheet = () => {
166
- managerCloseBottomSheet();
64
+ export const updateState = updates => {
65
+ bottomSheetStore.setState(state => ({
66
+ ...state,
67
+ ...updates
68
+ }));
167
69
  };
168
70
  //# sourceMappingURL=bottomSheetManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isValidRoute","createStore","initialState","currentScreen","screenProps","currentStep","undefined","navigationHistory","isOpen","bottomSheetStore","bottomSheetRef","setBottomSheetRef","ref","updateBottomSheetState","updates","setState","state","subscribeToBottomSheetState","listener","subscribe","getBottomSheetState","getState","managerShowBottomSheet","screen","props","options","currentState","addToHistory","historyEntry","step","newHistory","newStep","initialStep","current","present","managerCloseBottomSheet","dismiss","managerGoBack","length","previous","slice","showBottomSheet","screenOrConfig","__DEV__","console","warn","closeBottomSheet"],"sourceRoot":"../../../../src","sources":["ui/navigation/bottomSheetManager.ts"],"mappings":";;AACA,SAASA,YAAY,QAAQ,aAAU;AACvC,SAASC,WAAW,QAAQ,iBAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAgBA;AACA,MAAMC,YAAoC,GAAG;EACzCC,aAAa,EAAE,IAAI;EACnBC,WAAW,EAAE,CAAC,CAAC;EACfC,WAAW,EAAEC,SAAS;EACtBC,iBAAiB,EAAE,EAAE;EACrBC,MAAM,EAAE;AACZ,CAAC;;AAED;AACA,OAAO,MAAMC,gBAAgB,GAAGR,WAAW,CAAyB,MAAMC,YAAY,CAAC;;AAEvF;;AAEA,IAAIQ,cAAoC,GAAG,IAAI;;AAE/C;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAIC,GAAyB,IAAK;EAC5DF,cAAc,GAAGE,GAAG;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAIC,OAAwC,IAAK;EAChFL,gBAAgB,CAACM,QAAQ,CAAEC,KAAK,KAAM;IAAE,GAAGA,KAAK;IAAE,GAAGF;EAAQ,CAAC,CAAC,CAAC;AACpE,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMG,2BAA2B,GAAIC,QAAiD,IAAK;EAC9F,OAAOT,gBAAgB,CAACU,SAAS,CAACD,QAAQ,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,mBAAmB,GAAGA,CAAA,KAA8B;EAC7D,OAAOX,gBAAgB,CAACY,QAAQ,CAAC,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAClCC,MAAiB,EACjBC,KAA+B,EAC/BC,OAAmD,KAC5C;EACP,MAAMC,YAAY,GAAGjB,gBAAgB,CAACY,QAAQ,CAAC,CAAC;EAChD,MAAMM,YAAY,GAAGF,OAAO,EAAEE,YAAY,KAAK,KAAK,CAAC,CAAC;;EAEtD;EACA,IAAIA,YAAY,IAAID,YAAY,CAACvB,aAAa,EAAE;IAC5C,MAAMyB,YAAoC,GAAG;MACzCL,MAAM,EAAEG,YAAY,CAACvB,aAAa;MAClCqB,KAAK,EAAE;QAAE,GAAGE,YAAY,CAACtB;MAAY,CAAC;MACtCyB,IAAI,EAAEH,YAAY,CAACrB;IACvB,CAAC;;IAED;IACA,MAAMyB,UAAU,GAAG,CAAC,GAAGJ,YAAY,CAACnB,iBAAiB,EAAEqB,YAAY,CAAC;IACpEnB,gBAAgB,CAACM,QAAQ,CAAC;MAAER,iBAAiB,EAAEuB;IAAW,CAAC,CAAC;EAChE;;EAEA;EACA,MAAMC,OAAO,GAAGN,OAAO,EAAEI,IAAI,KACxBL,KAAK,EAAEQ,WAAW,KAAK1B,SAAS,GAAGkB,KAAK,CAACQ,WAAW,GACnDL,YAAY,GAAGrB,SAAS,GAAGoB,YAAY,CAACrB,WAAY,CAAC;EAE3DI,gBAAgB,CAACM,QAAQ,CAAC;IACtBZ,aAAa,EAAEoB,MAAM;IACrBnB,WAAW,EAAEoB,KAAK,IAAI,CAAC,CAAC;IACxBnB,WAAW,EAAE0B,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKzB,SAAS,GAAIyB,OAAO,GAAczB,SAAS;IACxFE,MAAM,EAAE;EACZ,CAAC,CAAC;;EAEF;EACA,IAAIE,cAAc,EAAEuB,OAAO,EAAE;IACzBvB,cAAc,CAACuB,OAAO,CAACC,OAAO,CAAC,CAAC;EACpC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAY;EAC/C1B,gBAAgB,CAACM,QAAQ,CAAC;IACtBZ,aAAa,EAAE,IAAI;IACnBC,WAAW,EAAE,CAAC,CAAC;IACfC,WAAW,EAAEC,SAAS;IACtBC,iBAAiB,EAAE,EAAE;IACrBC,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,IAAIE,cAAc,EAAEuB,OAAO,EAAE;IACzBvB,cAAc,CAACuB,OAAO,CAACG,OAAO,CAAC,CAAC;EACpC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAe;EACxC,MAAMX,YAAY,GAAGjB,gBAAgB,CAACY,QAAQ,CAAC,CAAC;;EAEhD;EACA,IAAIK,YAAY,CAACnB,iBAAiB,CAAC+B,MAAM,GAAG,CAAC,EAAE;IAC3C,MAAMC,QAAQ,GAAGb,YAAY,CAACnB,iBAAiB,CAACmB,YAAY,CAACnB,iBAAiB,CAAC+B,MAAM,GAAG,CAAC,CAAC;IAC1F,MAAMR,UAAU,GAAGJ,YAAY,CAACnB,iBAAiB,CAACiC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9D/B,gBAAgB,CAACM,QAAQ,CAAC;MACtBZ,aAAa,EAAEoC,QAAQ,CAAChB,MAAM;MAC9BnB,WAAW,EAAEmC,QAAQ,CAACf,KAAK;MAC3BnB,WAAW,EAAEkC,QAAQ,CAACV,IAAI;MAC1BtB,iBAAiB,EAAEuB,UAAU;MAC7BtB,MAAM,EAAE;IACZ,CAAC,CAAC;IAEF,OAAO,IAAI;EACf;EAEA,OAAO,KAAK;AAChB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMiC,eAAe,GACxBC,cAAkF,IAC3E;EACP,IAAInB,MAAiB;EACrB,IAAIC,KAA8B,GAAG,CAAC,CAAC;EAEvC,IAAI,OAAOkB,cAAc,KAAK,QAAQ,EAAE;IACpCnB,MAAM,GAAGmB,cAAc;EAC3B,CAAC,MAAM;IACHnB,MAAM,GAAGmB,cAAc,CAACnB,MAAM;IAC9BC,KAAK,GAAGkB,cAAc,CAAClB,KAAK,IAAI,CAAC,CAAC;EACtC;EAEA,IAAI,CAACxB,YAAY,CAACuB,MAAM,CAAC,EAAE;IACvB,IAAIoB,OAAO,EAAE;MACTC,OAAO,CAACC,IAAI,CAAC,mCAAmCtB,MAAM,EAAE,CAAC;IAC7D;IACA;EACJ;EAEAD,sBAAsB,CAACC,MAAM,EAAEC,KAAK,CAAC;AACzC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMsB,gBAAgB,GAAGA,CAAA,KAAY;EACxCX,uBAAuB,CAAC,CAAC;AAC7B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["isValidRoute","createStore","initialState","currentScreen","screenProps","currentStep","undefined","history","isOpen","bottomSheetStore","getState","showBottomSheet","screenOrConfig","screen","props","__DEV__","console","warn","state","setState","step","initialStep","closeBottomSheet","goBack","length","prev","slice","updateState","updates"],"sourceRoot":"../../../../src","sources":["ui/navigation/bottomSheetManager.ts"],"mappings":";;AACA,SAASA,YAAY,QAAQ,aAAU;AACvC,SAASC,WAAW,QAAQ,iBAAiB;;AAE7C;AACA;AACA;;AAUA,MAAMC,YAA8B,GAAG;EACnCC,aAAa,EAAE,IAAI;EACnBC,WAAW,EAAE,CAAC,CAAC;EACfC,WAAW,EAAEC,SAAS;EACtBC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGR,WAAW,CAAmB,MAAMC,YAAY,CAAC;AAEjF,OAAO,MAAMQ,QAAQ,GAAGA,CAAA,KAAMD,gBAAgB,CAACC,QAAQ,CAAC,CAAC;AAEzD,OAAO,MAAMC,eAAe,GACxBC,cAAkF,IAC3E;EACP,MAAMC,MAAM,GAAG,OAAOD,cAAc,KAAK,QAAQ,GAAGA,cAAc,GAAGA,cAAc,CAACC,MAAM;EAC1F,MAAMC,KAAK,GAAG,OAAOF,cAAc,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAIA,cAAc,CAACE,KAAK,IAAI,CAAC,CAAE;EAEpF,IAAI,CAACd,YAAY,CAACa,MAAM,CAAC,EAAE;IACvB,IAAIE,OAAO,EAAEC,OAAO,CAACC,IAAI,CAAC,gCAAgCJ,MAAM,EAAE,CAAC;IACnE;EACJ;EAEA,MAAMK,KAAK,GAAGT,gBAAgB,CAACC,QAAQ,CAAC,CAAC;;EAEzC;EACA,IAAIQ,KAAK,CAACf,aAAa,IAAIe,KAAK,CAACf,aAAa,KAAKU,MAAM,EAAE;IACvDJ,gBAAgB,CAACU,QAAQ,CAAC;MACtBZ,OAAO,EAAE,CAAC,GAAGW,KAAK,CAACX,OAAO,EAAE;QACxBM,MAAM,EAAEK,KAAK,CAACf,aAAa;QAC3BW,KAAK,EAAEI,KAAK,CAACd,WAAW;QACxBgB,IAAI,EAAEF,KAAK,CAACb;MAChB,CAAC;IACL,CAAC,CAAC;EACN;EAEAI,gBAAgB,CAACU,QAAQ,CAAC;IACtBhB,aAAa,EAAEU,MAAM;IACrBT,WAAW,EAAEU,KAAK;IAClBT,WAAW,EAAE,OAAOS,KAAK,CAACO,WAAW,KAAK,QAAQ,GAAGP,KAAK,CAACO,WAAW,GAAGf,SAAS;IAClFE,MAAM,EAAE;EACZ,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAMc,gBAAgB,GAAGA,CAAA,KAAY;EACxCb,gBAAgB,CAACU,QAAQ,CAACjB,YAAY,CAAC;AAC3C,CAAC;AAED,OAAO,MAAMqB,MAAM,GAAGA,CAAA,KAAe;EACjC,MAAM;IAAEhB;EAAQ,CAAC,GAAGE,gBAAgB,CAACC,QAAQ,CAAC,CAAC;EAE/C,IAAIH,OAAO,CAACiB,MAAM,GAAG,CAAC,EAAE;IACpB,MAAMC,IAAI,GAAGlB,OAAO,CAACA,OAAO,CAACiB,MAAM,GAAG,CAAC,CAAC;IACxCf,gBAAgB,CAACU,QAAQ,CAAC;MACtBhB,aAAa,EAAEsB,IAAI,CAACZ,MAAM;MAC1BT,WAAW,EAAEqB,IAAI,CAACX,KAAK;MACvBT,WAAW,EAAEoB,IAAI,CAACL,IAAI;MACtBb,OAAO,EAAEA,OAAO,CAACmB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;IACF,OAAO,IAAI;EACf;EAEA,OAAO,KAAK;AAChB,CAAC;AAED,OAAO,MAAMC,WAAW,GAAIC,OAAkC,IAAK;EAC/DnB,gBAAgB,CAACU,QAAQ,CAAED,KAAK,KAAM;IAAE,GAAGA,KAAK;IAAE,GAAGU;EAAQ,CAAC,CAAC,CAAC;AACpE,CAAC","ignoreList":[]}
@@ -16,7 +16,6 @@ import { useThemeStyles } from "../hooks/useThemeStyles.js";
16
16
  import { useColorScheme } from "../hooks/use-color-scheme.js";
17
17
  import { Colors } from "../constants/theme.js";
18
18
  import { normalizeColorScheme, normalizeTheme } from "../utils/themeUtils.js";
19
- import { useHapticPress } from "../hooks/use-haptic-press.js";
20
19
  import { EditDisplayNameModal } from "../components/profile/EditDisplayNameModal.js";
21
20
  import { EditUsernameModal } from "../components/profile/EditUsernameModal.js";
22
21
  import { EditEmailModal } from "../components/profile/EditEmailModal.js";
@@ -138,7 +137,6 @@ const AccountSettingsScreen = ({
138
137
  // Get theme colors using centralized hook
139
138
  const colorScheme = useColorScheme();
140
139
  const themeStyles = useThemeStyles(theme || 'light', colorScheme);
141
- const handlePressIn = useHapticPress();
142
140
 
143
141
  // Extract colors for convenience - ensure it's always defined
144
142
  // useThemeStyles always returns colors, but add safety check for edge cases