@adminide-stack/yantra-mobile 12.0.54 → 12.0.55-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/components/CustomDrawer.js +203 -150
  2. package/lib/components/CustomDrawer.js.map +1 -1
  3. package/lib/components/NavigationHeader/HeaderMoreMenu.js +9 -2
  4. package/lib/components/NavigationHeader/HeaderMoreMenu.js.map +1 -1
  5. package/lib/components/NavigationHeader/HeaderSettingsMenu.js +2 -2
  6. package/lib/components/NavigationHeader/HeaderSettingsMenu.js.map +1 -1
  7. package/lib/components/NavigationHeader/HeaderToolbarButton.js +4 -1
  8. package/lib/components/NavigationHeader/HeaderToolbarButton.js.map +1 -1
  9. package/lib/components/NavigationHeader/NavigationHeader.js +4 -3
  10. package/lib/components/NavigationHeader/NavigationHeader.js.map +1 -1
  11. package/lib/components/ProfileAvatar.js +44 -0
  12. package/lib/components/ProfileAvatar.js.map +1 -0
  13. package/lib/compute.js +53 -1
  14. package/lib/compute.js.map +1 -1
  15. package/lib/index.js +1 -1
  16. package/lib/index.js.map +1 -1
  17. package/lib/routes.json +55 -0
  18. package/lib/screens/Account/index.js +393 -0
  19. package/lib/screens/Account/index.js.map +1 -0
  20. package/lib/screens/Account/splitDisplayName.js +15 -0
  21. package/lib/screens/Account/splitDisplayName.js.map +1 -0
  22. package/lib/screens/Chat/index.js +4 -3
  23. package/lib/screens/Chat/index.js.map +1 -1
  24. package/lib/screens/Home/HomeScreen.js +4 -3
  25. package/lib/screens/Home/HomeScreen.js.map +1 -1
  26. package/lib/screens/Home/components/HomeSuggestions.js +1 -1
  27. package/lib/screens/Home/components/HomeSuggestions.js.map +1 -1
  28. package/lib/theme/AppThemeProvider.js +74 -0
  29. package/lib/theme/AppThemeProvider.js.map +1 -0
  30. package/lib/theme/appTheme.js +9 -0
  31. package/lib/theme/appTheme.js.map +1 -0
  32. package/lib/theme/mobileTokens.js +52 -13
  33. package/lib/theme/mobileTokens.js.map +1 -1
  34. package/lib/utils/authUserDisplay.js +27 -9
  35. package/lib/utils/authUserDisplay.js.map +1 -1
  36. package/package.json +4 -4
@@ -0,0 +1,393 @@
1
+ import {jsxs,jsx}from'react/jsx-runtime';import {useState,useMemo,useCallback}from'react';import {Alert,StyleSheet,View,Pressable,ScrollView,ActivityIndicator,Modal,KeyboardAvoidingView,TextInput,Platform}from'react-native';import {Ionicons}from'@expo/vector-icons';import {Text}from'@admin-layout/gluestack-ui-mobile';import {useNavigation,useRoute,CommonActions}from'@react-navigation/native';import {useSafeAreaInsets,SafeAreaView}from'react-native-safe-area-context';import {useDispatch,useSelector}from'react-redux';import {userSelector,logoutAndRedirect}from'@adminide-stack/user-auth0-client';import {useAccountProfileQuery,useSetNameMutation,useDeleteUserAccountMutation}from'common/graphql';import {ProfileAvatar}from'../../components/ProfileAvatar.js';import {mobileColors,mobileTokens}from'../../theme/mobileTokens.js';import {useAppTheme}from'../../theme/AppThemeProvider.js';import {pickPrimaryDisplayName,pickAuthEmail,pickAuthUsername,pickProfilePhotoUrl}from'../../utils/authUserDisplay.js';import {splitDisplayName}from'./splitDisplayName.js';var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ const PAGE_BG = "#f2f2f7";
18
+ function AccountScreen() {
19
+ var _a, _b;
20
+ const navigation = useNavigation();
21
+ const route = useRoute();
22
+ const {
23
+ isDark
24
+ } = useAppTheme();
25
+ const colors = mobileColors(isDark);
26
+ const insets = useSafeAreaInsets();
27
+ const dispatch = useDispatch();
28
+ const authUser = useSelector(userSelector);
29
+ const {
30
+ data: profileData
31
+ } = useAccountProfileQuery({
32
+ fetchPolicy: "cache-and-network",
33
+ errorPolicy: "all"
34
+ });
35
+ const [setName, {
36
+ loading: savingName
37
+ }] = useSetNameMutation();
38
+ const [deleteUserAccount, {
39
+ loading: deleting
40
+ }] = useDeleteUserAccountMutation();
41
+ const [nameOpen, setNameOpen] = useState(false);
42
+ const [givenName, setGivenName] = useState("");
43
+ const [familyName, setFamilyName] = useState("");
44
+ const orgName = useMemo(() => {
45
+ var _a2, _b2;
46
+ const raw = (_b2 = (_a2 = route == null ? void 0 : route.params) == null ? void 0 : _a2.orgName) != null ? _b2 : "";
47
+ return typeof raw === "string" && raw.trim() ? raw.trim() : null;
48
+ }, [(_a = route == null ? void 0 : route.params) == null ? void 0 : _a.orgName]);
49
+ const displayName = useMemo(() => pickPrimaryDisplayName(authUser), [authUser]);
50
+ const email = useMemo(() => pickAuthEmail(authUser), [authUser]);
51
+ const username = useMemo(() => pickAuthUsername(authUser), [authUser]);
52
+ const photoUrl = useMemo(() => {
53
+ var _a2;
54
+ return pickProfilePhotoUrl((_a2 = profileData == null ? void 0 : profileData.accountProfile) == null ? void 0 : _a2.photos, authUser);
55
+ }, [(_b = profileData == null ? void 0 : profileData.accountProfile) == null ? void 0 : _b.photos, authUser]);
56
+ const busy = deleting;
57
+ const handleBack = useCallback(() => {
58
+ var _a2, _b2;
59
+ if ((_a2 = navigation == null ? void 0 : navigation.canGoBack) == null ? void 0 : _a2.call(navigation)) {
60
+ navigation.goBack();
61
+ return;
62
+ }
63
+ (_b2 = navigation == null ? void 0 : navigation.dispatch) == null ? void 0 : _b2.call(navigation, CommonActions.navigate({
64
+ name: "MainStack.Layout.Home",
65
+ params: orgName ? {
66
+ orgName
67
+ } : void 0
68
+ }));
69
+ }, [navigation, orgName]);
70
+ const openNameEditor = useCallback(() => {
71
+ const split = splitDisplayName(displayName === "Account" ? "" : displayName);
72
+ setGivenName(split.givenName);
73
+ setFamilyName(split.familyName);
74
+ setNameOpen(true);
75
+ }, [displayName]);
76
+ const saveName = useCallback(async () => {
77
+ try {
78
+ await setName({
79
+ variables: {
80
+ givenName: givenName.trim() || void 0,
81
+ familyName: familyName.trim() || void 0
82
+ }
83
+ });
84
+ setNameOpen(false);
85
+ } catch (error) {
86
+ Alert.alert("Could not update name", error instanceof Error ? error.message : "Please try again.");
87
+ }
88
+ }, [familyName, givenName, setName]);
89
+ const runDelete = useCallback(async () => {
90
+ try {
91
+ const {
92
+ data
93
+ } = await deleteUserAccount();
94
+ if (!(data == null ? void 0 : data.deleteUserAccount)) {
95
+ throw new Error("The server did not confirm account deletion.");
96
+ }
97
+ await Promise.resolve(dispatch(logoutAndRedirect()));
98
+ } catch (error) {
99
+ Alert.alert("Could not delete account", error instanceof Error ? error.message : "Please try again or contact support.");
100
+ }
101
+ }, [deleteUserAccount, dispatch]);
102
+ const handleDeleteAccount = useCallback(() => {
103
+ if (busy) return;
104
+ Alert.alert("Delete Account", "This permanently deletes your Yantra account and the data associated with it. This cannot be undone.", [{
105
+ text: "Cancel",
106
+ style: "cancel"
107
+ }, {
108
+ text: "Delete Account",
109
+ style: "destructive",
110
+ onPress: () => {
111
+ Alert.alert("Are you sure?", "Your account will be deleted immediately.", [{
112
+ text: "Cancel",
113
+ style: "cancel"
114
+ }, {
115
+ text: "Delete Account",
116
+ style: "destructive",
117
+ onPress: () => void runDelete()
118
+ }]);
119
+ }
120
+ }]);
121
+ }, [busy, runDelete]);
122
+ return /* @__PURE__ */ jsxs(SafeAreaView, { edges: ["top", "left", "right"], style: [styles.safe, {
123
+ backgroundColor: isDark ? "#0f172a" : PAGE_BG
124
+ }], children: [
125
+ /* @__PURE__ */ jsxs(View, { style: [styles.header, {
126
+ paddingTop: insets.top > 0 ? 4 : 10
127
+ }], children: [
128
+ /* @__PURE__ */ jsx(Pressable, { onPress: handleBack, accessibilityRole: "button", accessibilityLabel: "Go back", style: ({
129
+ pressed
130
+ }) => [styles.backCircle, {
131
+ backgroundColor: colors.surface
132
+ }, pressed && styles.pressed], children: /* @__PURE__ */ jsx(Ionicons, { name: "chevron-back", size: 22, color: colors.text }) }),
133
+ /* @__PURE__ */ jsx(Text, { style: [styles.headerTitle, {
134
+ color: colors.text
135
+ }], children: "Account" }),
136
+ /* @__PURE__ */ jsx(View, { style: styles.headerSpacer })
137
+ ] }),
138
+ /* @__PURE__ */ jsxs(ScrollView, { contentContainerStyle: styles.scroll, keyboardShouldPersistTaps: "handled", children: [
139
+ /* @__PURE__ */ jsxs(View, { style: styles.hero, accessibilityLabel: "Profile picture", children: [
140
+ /* @__PURE__ */ jsx(View, { style: styles.avatarLarge, children: /* @__PURE__ */ jsx(ProfileAvatar, { uri: photoUrl, name: displayName, size: 88 }) }),
141
+ /* @__PURE__ */ jsx(Text, { style: [styles.heroHint, {
142
+ color: colors.textMuted
143
+ }], children: "Profile picture" })
144
+ ] }),
145
+ /* @__PURE__ */ jsxs(View, { style: [styles.card, {
146
+ backgroundColor: colors.surface
147
+ }], children: [
148
+ /* @__PURE__ */ jsxs(Pressable, { onPress: openNameEditor, accessibilityRole: "button", accessibilityLabel: "Change name", style: ({
149
+ pressed
150
+ }) => [styles.row, {
151
+ backgroundColor: pressed ? colors.surfaceMuted : colors.surface
152
+ }], children: [
153
+ /* @__PURE__ */ jsx(Text, { style: [styles.rowLabel, {
154
+ color: colors.text
155
+ }], children: "Name" }),
156
+ /* @__PURE__ */ jsx(Text, { style: [styles.rowValue, {
157
+ color: colors.textMuted
158
+ }], numberOfLines: 1, children: displayName }),
159
+ /* @__PURE__ */ jsx(Ionicons, { name: "chevron-forward", size: 16, color: isDark ? "#64748b" : "#c4c4c4" })
160
+ ] }),
161
+ /* @__PURE__ */ jsx(View, { style: [styles.rowLine, {
162
+ backgroundColor: colors.border
163
+ }] }),
164
+ /* @__PURE__ */ jsxs(View, { style: [styles.row, {
165
+ backgroundColor: colors.surface
166
+ }], children: [
167
+ /* @__PURE__ */ jsx(Text, { style: [styles.rowLabel, {
168
+ color: colors.text
169
+ }], children: "Email" }),
170
+ /* @__PURE__ */ jsx(Text, { style: [styles.rowValue, {
171
+ color: colors.textMuted
172
+ }], numberOfLines: 1, children: email || "\u2014" })
173
+ ] }),
174
+ /* @__PURE__ */ jsx(View, { style: [styles.rowLine, {
175
+ backgroundColor: colors.border
176
+ }] }),
177
+ /* @__PURE__ */ jsxs(View, { style: [styles.row, {
178
+ backgroundColor: colors.surface
179
+ }], children: [
180
+ /* @__PURE__ */ jsx(Text, { style: [styles.rowLabel, {
181
+ color: colors.text
182
+ }], children: "Username" }),
183
+ /* @__PURE__ */ jsx(Text, { style: [styles.rowValue, {
184
+ color: colors.textMuted
185
+ }], numberOfLines: 1, children: username || "\u2014" })
186
+ ] })
187
+ ] }),
188
+ /* @__PURE__ */ jsx(Pressable, { onPress: handleDeleteAccount, disabled: busy, accessibilityRole: "button", accessibilityLabel: "Delete Account", style: ({
189
+ pressed
190
+ }) => [styles.deleteCard, {
191
+ backgroundColor: pressed && !busy ? colors.surfaceMuted : colors.surface
192
+ }], children: deleting ? /* @__PURE__ */ jsx(ActivityIndicator, { color: "#ef4444" }) : /* @__PURE__ */ jsx(Text, { style: styles.deleteLabel, children: "Delete Account" }) })
193
+ ] }),
194
+ /* @__PURE__ */ jsx(Modal, { visible: nameOpen, animationType: "fade", transparent: true, onRequestClose: () => setNameOpen(false), children: /* @__PURE__ */ jsxs(KeyboardAvoidingView, { behavior: Platform.OS === "ios" ? "padding" : void 0, style: styles.modalBackdrop, children: [
195
+ /* @__PURE__ */ jsx(Pressable, { style: styles.modalDismiss, onPress: () => setNameOpen(false) }),
196
+ /* @__PURE__ */ jsxs(View, { style: [styles.modalCard, {
197
+ backgroundColor: colors.surface
198
+ }], children: [
199
+ /* @__PURE__ */ jsx(Text, { style: [styles.modalTitle, {
200
+ color: colors.text
201
+ }], children: "Change full name" }),
202
+ /* @__PURE__ */ jsx(Text, { style: [styles.modalFieldLabel, {
203
+ color: colors.textMuted
204
+ }], children: "First name" }),
205
+ /* @__PURE__ */ jsx(TextInput, { value: givenName, onChangeText: setGivenName, autoCapitalize: "words", style: [styles.input, {
206
+ color: colors.text,
207
+ backgroundColor: colors.surfaceMuted,
208
+ borderColor: colors.border
209
+ }], placeholder: "First name", placeholderTextColor: colors.textMuted }),
210
+ /* @__PURE__ */ jsx(Text, { style: [styles.modalFieldLabel, {
211
+ color: colors.textMuted
212
+ }], children: "Last name" }),
213
+ /* @__PURE__ */ jsx(TextInput, { value: familyName, onChangeText: setFamilyName, autoCapitalize: "words", style: [styles.input, {
214
+ color: colors.text,
215
+ backgroundColor: colors.surfaceMuted,
216
+ borderColor: colors.border
217
+ }], placeholder: "Last name", placeholderTextColor: colors.textMuted }),
218
+ /* @__PURE__ */ jsxs(View, { style: styles.modalActions, children: [
219
+ /* @__PURE__ */ jsx(Pressable, { onPress: () => setNameOpen(false), style: styles.modalBtnGhost, children: /* @__PURE__ */ jsx(Text, { style: styles.modalBtnGhostLabel, children: "Cancel" }) }),
220
+ /* @__PURE__ */ jsx(Pressable, { onPress: () => void saveName(), disabled: savingName, style: styles.modalBtnPrimary, children: savingName ? /* @__PURE__ */ jsx(ActivityIndicator, { color: "#fff" }) : /* @__PURE__ */ jsx(Text, { style: styles.modalBtnPrimaryLabel, children: "Save" }) })
221
+ ] })
222
+ ] })
223
+ ] }) })
224
+ ] });
225
+ }
226
+ const styles = StyleSheet.create({
227
+ safe: {
228
+ flex: 1,
229
+ backgroundColor: PAGE_BG
230
+ },
231
+ header: {
232
+ flexDirection: "row",
233
+ alignItems: "center",
234
+ paddingHorizontal: 16,
235
+ paddingBottom: 8,
236
+ minHeight: 52
237
+ },
238
+ backCircle: __spreadValues({
239
+ width: 40,
240
+ height: 40,
241
+ borderRadius: 20,
242
+ backgroundColor: "#fff",
243
+ alignItems: "center",
244
+ justifyContent: "center"
245
+ }, mobileTokens.shadow.card),
246
+ headerTitle: {
247
+ flex: 1,
248
+ textAlign: "center",
249
+ fontSize: 17,
250
+ fontWeight: "600",
251
+ color: "#111827"
252
+ },
253
+ headerSpacer: {
254
+ width: 40,
255
+ height: 40
256
+ },
257
+ pressed: {
258
+ opacity: 0.72
259
+ },
260
+ scroll: {
261
+ paddingHorizontal: 16,
262
+ paddingBottom: 40
263
+ },
264
+ hero: {
265
+ alignItems: "center",
266
+ paddingTop: 12,
267
+ paddingBottom: 28,
268
+ gap: 12
269
+ },
270
+ avatarLarge: {
271
+ width: 88,
272
+ height: 88,
273
+ borderRadius: 44,
274
+ overflow: "hidden"
275
+ },
276
+ heroHint: {
277
+ fontSize: 14,
278
+ color: "#9ca3af",
279
+ fontWeight: "500"
280
+ },
281
+ card: {
282
+ backgroundColor: "#fff",
283
+ borderRadius: 16,
284
+ overflow: "hidden"
285
+ },
286
+ row: {
287
+ flexDirection: "row",
288
+ alignItems: "center",
289
+ minHeight: 52,
290
+ paddingHorizontal: 16,
291
+ gap: 12,
292
+ backgroundColor: "#fff"
293
+ },
294
+ rowPressed: {
295
+ backgroundColor: "#f8fafc"
296
+ },
297
+ rowLabel: {
298
+ fontSize: 16,
299
+ color: "#111827",
300
+ fontWeight: "400",
301
+ width: 96
302
+ },
303
+ rowValue: {
304
+ flex: 1,
305
+ fontSize: 16,
306
+ color: "#9ca3af",
307
+ textAlign: "right"
308
+ },
309
+ rowLine: {
310
+ height: StyleSheet.hairlineWidth,
311
+ backgroundColor: "#ececec",
312
+ marginLeft: 16
313
+ },
314
+ deleteCard: {
315
+ marginTop: 16,
316
+ backgroundColor: "#fff",
317
+ borderRadius: 16,
318
+ minHeight: 52,
319
+ paddingHorizontal: 16,
320
+ justifyContent: "center"
321
+ },
322
+ deleteLabel: {
323
+ fontSize: 16,
324
+ fontWeight: "500",
325
+ color: "#ef4444"
326
+ },
327
+ modalBackdrop: {
328
+ flex: 1,
329
+ backgroundColor: "rgba(15, 23, 42, 0.45)",
330
+ justifyContent: "flex-end"
331
+ },
332
+ modalDismiss: {
333
+ flex: 1
334
+ },
335
+ modalCard: {
336
+ backgroundColor: "#fff",
337
+ borderTopLeftRadius: 20,
338
+ borderTopRightRadius: 20,
339
+ padding: 20,
340
+ paddingBottom: 28,
341
+ gap: 8
342
+ },
343
+ modalTitle: {
344
+ fontSize: 18,
345
+ fontWeight: "700",
346
+ color: "#0f172a",
347
+ marginBottom: 8
348
+ },
349
+ modalFieldLabel: {
350
+ fontSize: 13,
351
+ fontWeight: "600",
352
+ color: "#64748b",
353
+ marginTop: 4
354
+ },
355
+ input: {
356
+ borderWidth: 1,
357
+ borderColor: "#e2e8f0",
358
+ borderRadius: 12,
359
+ paddingHorizontal: 12,
360
+ paddingVertical: 12,
361
+ fontSize: 16,
362
+ color: "#0f172a",
363
+ backgroundColor: "#f8fafc"
364
+ },
365
+ modalActions: {
366
+ flexDirection: "row",
367
+ justifyContent: "flex-end",
368
+ gap: 10,
369
+ marginTop: 16
370
+ },
371
+ modalBtnGhost: {
372
+ paddingHorizontal: 14,
373
+ paddingVertical: 10
374
+ },
375
+ modalBtnGhostLabel: {
376
+ fontSize: 16,
377
+ color: "#64748b",
378
+ fontWeight: "600"
379
+ },
380
+ modalBtnPrimary: {
381
+ backgroundColor: mobileTokens.color.primary,
382
+ borderRadius: 12,
383
+ paddingHorizontal: 18,
384
+ paddingVertical: 10,
385
+ minWidth: 88,
386
+ alignItems: "center"
387
+ },
388
+ modalBtnPrimaryLabel: {
389
+ color: "#fff",
390
+ fontSize: 16,
391
+ fontWeight: "600"
392
+ }
393
+ });export{AccountScreen as default};//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/screens/Account/index.tsx"],"sourcesContent":["/**\n * Account screen for App Store 5.1.1(v): profile details plus in-app\n * permanent account deletion. Layout follows the grouped iOS settings cards\n * (avatar, Name / Email / Username, Delete Account).\n */\nimport React, { useCallback, useMemo, useState } from 'react';\nimport {\n ActivityIndicator,\n Alert,\n KeyboardAvoidingView,\n Modal,\n Platform,\n Pressable,\n ScrollView,\n StyleSheet,\n TextInput,\n View,\n} from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\nimport { Text } from '@admin-layout/gluestack-ui-mobile';\nimport { CommonActions, useNavigation, useRoute } from '@react-navigation/native';\nimport { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useDispatch, useSelector } from 'react-redux';\nimport type { IUserState } from '@adminide-stack/core';\nimport { Store, logoutAndRedirect, userSelector } from '@adminide-stack/user-auth0-client';\nimport { useAccountProfileQuery, useDeleteUserAccountMutation, useSetNameMutation } from 'common/graphql';\nimport { ProfileAvatar } from '../../components/ProfileAvatar';\nimport { mobileColors, mobileTokens } from '../../theme/mobileTokens';\nimport { useAppTheme } from '../../theme/AppThemeProvider';\nimport {\n pickAuthEmail,\n pickAuthUsername,\n pickPrimaryDisplayName,\n pickProfilePhotoUrl,\n} from '../../utils/authUserDisplay';\nimport { splitDisplayName } from './splitDisplayName';\n\nconst PAGE_BG = '#f2f2f7';\n\nexport default function AccountScreen() {\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const { isDark } = useAppTheme();\n const colors = mobileColors(isDark);\n const insets = useSafeAreaInsets();\n const dispatch = useDispatch();\n const authUser = useSelector<Store.Auth, IUserState>(userSelector);\n\n const { data: profileData } = useAccountProfileQuery({\n fetchPolicy: 'cache-and-network',\n errorPolicy: 'all',\n });\n const [setName, { loading: savingName }] = useSetNameMutation();\n const [deleteUserAccount, { loading: deleting }] = useDeleteUserAccountMutation();\n\n const [nameOpen, setNameOpen] = useState(false);\n const [givenName, setGivenName] = useState('');\n const [familyName, setFamilyName] = useState('');\n\n const orgName = useMemo(() => {\n const raw = (route?.params?.orgName as string | undefined) ?? '';\n return typeof raw === 'string' && raw.trim() ? raw.trim() : null;\n }, [route?.params?.orgName]);\n\n const displayName = useMemo(() => pickPrimaryDisplayName(authUser), [authUser]);\n const email = useMemo(() => pickAuthEmail(authUser), [authUser]);\n const username = useMemo(() => pickAuthUsername(authUser), [authUser]);\n\n const photoUrl = useMemo(\n () => pickProfilePhotoUrl(profileData?.accountProfile?.photos, authUser),\n [profileData?.accountProfile?.photos, authUser],\n );\n\n const busy = deleting;\n\n const handleBack = useCallback(() => {\n if (navigation?.canGoBack?.()) {\n navigation.goBack();\n return;\n }\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.Layout.Home',\n params: orgName ? { orgName } : undefined,\n }),\n );\n }, [navigation, orgName]);\n\n const openNameEditor = useCallback(() => {\n const split = splitDisplayName(displayName === 'Account' ? '' : displayName);\n setGivenName(split.givenName);\n setFamilyName(split.familyName);\n setNameOpen(true);\n }, [displayName]);\n\n const saveName = useCallback(async () => {\n try {\n await setName({\n variables: {\n givenName: givenName.trim() || undefined,\n familyName: familyName.trim() || undefined,\n },\n });\n setNameOpen(false);\n } catch (error) {\n Alert.alert('Could not update name', error instanceof Error ? error.message : 'Please try again.');\n }\n }, [familyName, givenName, setName]);\n\n const runDelete = useCallback(async () => {\n try {\n const { data } = await deleteUserAccount();\n if (!data?.deleteUserAccount) {\n throw new Error('The server did not confirm account deletion.');\n }\n await Promise.resolve(dispatch(logoutAndRedirect() as any));\n } catch (error) {\n Alert.alert(\n 'Could not delete account',\n error instanceof Error ? error.message : 'Please try again or contact support.',\n );\n }\n }, [deleteUserAccount, dispatch]);\n\n const handleDeleteAccount = useCallback(() => {\n if (busy) return;\n Alert.alert(\n 'Delete Account',\n 'This permanently deletes your Yantra account and the data associated with it. This cannot be undone.',\n [\n { text: 'Cancel', style: 'cancel' },\n {\n text: 'Delete Account',\n style: 'destructive',\n onPress: () => {\n Alert.alert('Are you sure?', 'Your account will be deleted immediately.', [\n { text: 'Cancel', style: 'cancel' },\n { text: 'Delete Account', style: 'destructive', onPress: () => void runDelete() },\n ]);\n },\n },\n ],\n );\n }, [busy, runDelete]);\n\n return (\n <SafeAreaView\n edges={['top', 'left', 'right']}\n style={[styles.safe, { backgroundColor: isDark ? '#0f172a' : PAGE_BG }]}\n >\n <View style={[styles.header, { paddingTop: insets.top > 0 ? 4 : 10 }]}>\n <Pressable\n onPress={handleBack}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Go back\"\n style={({ pressed }) => [\n styles.backCircle,\n { backgroundColor: colors.surface },\n pressed && styles.pressed,\n ]}\n >\n <Ionicons name=\"chevron-back\" size={22} color={colors.text} />\n </Pressable>\n <Text style={[styles.headerTitle, { color: colors.text }]}>Account</Text>\n <View style={styles.headerSpacer} />\n </View>\n\n <ScrollView contentContainerStyle={styles.scroll} keyboardShouldPersistTaps=\"handled\">\n <View style={styles.hero} accessibilityLabel=\"Profile picture\">\n <View style={styles.avatarLarge}>\n <ProfileAvatar uri={photoUrl} name={displayName} size={88} />\n </View>\n <Text style={[styles.heroHint, { color: colors.textMuted }]}>Profile picture</Text>\n </View>\n\n <View style={[styles.card, { backgroundColor: colors.surface }]}>\n <Pressable\n onPress={openNameEditor}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Change name\"\n style={({ pressed }) => [\n styles.row,\n { backgroundColor: pressed ? colors.surfaceMuted : colors.surface },\n ]}\n >\n <Text style={[styles.rowLabel, { color: colors.text }]}>Name</Text>\n <Text style={[styles.rowValue, { color: colors.textMuted }]} numberOfLines={1}>\n {displayName}\n </Text>\n <Ionicons name=\"chevron-forward\" size={16} color={isDark ? '#64748b' : '#c4c4c4'} />\n </Pressable>\n <View style={[styles.rowLine, { backgroundColor: colors.border }]} />\n <View style={[styles.row, { backgroundColor: colors.surface }]}>\n <Text style={[styles.rowLabel, { color: colors.text }]}>Email</Text>\n <Text style={[styles.rowValue, { color: colors.textMuted }]} numberOfLines={1}>\n {email || '—'}\n </Text>\n </View>\n <View style={[styles.rowLine, { backgroundColor: colors.border }]} />\n <View style={[styles.row, { backgroundColor: colors.surface }]}>\n <Text style={[styles.rowLabel, { color: colors.text }]}>Username</Text>\n <Text style={[styles.rowValue, { color: colors.textMuted }]} numberOfLines={1}>\n {username || '—'}\n </Text>\n </View>\n </View>\n\n <Pressable\n onPress={handleDeleteAccount}\n disabled={busy}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Delete Account\"\n style={({ pressed }) => [\n styles.deleteCard,\n { backgroundColor: pressed && !busy ? colors.surfaceMuted : colors.surface },\n ]}\n >\n {deleting ? (\n <ActivityIndicator color=\"#ef4444\" />\n ) : (\n <Text style={styles.deleteLabel}>Delete Account</Text>\n )}\n </Pressable>\n </ScrollView>\n\n <Modal visible={nameOpen} animationType=\"fade\" transparent onRequestClose={() => setNameOpen(false)}>\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n style={styles.modalBackdrop}\n >\n <Pressable style={styles.modalDismiss} onPress={() => setNameOpen(false)} />\n <View style={[styles.modalCard, { backgroundColor: colors.surface }]}>\n <Text style={[styles.modalTitle, { color: colors.text }]}>Change full name</Text>\n <Text style={[styles.modalFieldLabel, { color: colors.textMuted }]}>First name</Text>\n <TextInput\n value={givenName}\n onChangeText={setGivenName}\n autoCapitalize=\"words\"\n style={[\n styles.input,\n {\n color: colors.text,\n backgroundColor: colors.surfaceMuted,\n borderColor: colors.border,\n },\n ]}\n placeholder=\"First name\"\n placeholderTextColor={colors.textMuted}\n />\n <Text style={[styles.modalFieldLabel, { color: colors.textMuted }]}>Last name</Text>\n <TextInput\n value={familyName}\n onChangeText={setFamilyName}\n autoCapitalize=\"words\"\n style={[\n styles.input,\n {\n color: colors.text,\n backgroundColor: colors.surfaceMuted,\n borderColor: colors.border,\n },\n ]}\n placeholder=\"Last name\"\n placeholderTextColor={colors.textMuted}\n />\n <View style={styles.modalActions}>\n <Pressable onPress={() => setNameOpen(false)} style={styles.modalBtnGhost}>\n <Text style={styles.modalBtnGhostLabel}>Cancel</Text>\n </Pressable>\n <Pressable\n onPress={() => void saveName()}\n disabled={savingName}\n style={styles.modalBtnPrimary}\n >\n {savingName ? (\n <ActivityIndicator color=\"#fff\" />\n ) : (\n <Text style={styles.modalBtnPrimaryLabel}>Save</Text>\n )}\n </Pressable>\n </View>\n </View>\n </KeyboardAvoidingView>\n </Modal>\n </SafeAreaView>\n );\n}\n\nconst styles = StyleSheet.create({\n safe: {\n flex: 1,\n backgroundColor: PAGE_BG,\n },\n header: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 16,\n paddingBottom: 8,\n minHeight: 52,\n },\n backCircle: {\n width: 40,\n height: 40,\n borderRadius: 20,\n backgroundColor: '#fff',\n alignItems: 'center',\n justifyContent: 'center',\n ...mobileTokens.shadow.card,\n },\n headerTitle: {\n flex: 1,\n textAlign: 'center',\n fontSize: 17,\n fontWeight: '600',\n color: '#111827',\n },\n headerSpacer: {\n width: 40,\n height: 40,\n },\n pressed: {\n opacity: 0.72,\n },\n scroll: {\n paddingHorizontal: 16,\n paddingBottom: 40,\n },\n hero: {\n alignItems: 'center',\n paddingTop: 12,\n paddingBottom: 28,\n gap: 12,\n },\n avatarLarge: {\n width: 88,\n height: 88,\n borderRadius: 44,\n overflow: 'hidden',\n },\n heroHint: {\n fontSize: 14,\n color: '#9ca3af',\n fontWeight: '500',\n },\n card: {\n backgroundColor: '#fff',\n borderRadius: 16,\n overflow: 'hidden',\n },\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n minHeight: 52,\n paddingHorizontal: 16,\n gap: 12,\n backgroundColor: '#fff',\n },\n rowPressed: {\n backgroundColor: '#f8fafc',\n },\n rowLabel: {\n fontSize: 16,\n color: '#111827',\n fontWeight: '400',\n width: 96,\n },\n rowValue: {\n flex: 1,\n fontSize: 16,\n color: '#9ca3af',\n textAlign: 'right',\n },\n rowLine: {\n height: StyleSheet.hairlineWidth,\n backgroundColor: '#ececec',\n marginLeft: 16,\n },\n deleteCard: {\n marginTop: 16,\n backgroundColor: '#fff',\n borderRadius: 16,\n minHeight: 52,\n paddingHorizontal: 16,\n justifyContent: 'center',\n },\n deleteLabel: {\n fontSize: 16,\n fontWeight: '500',\n color: '#ef4444',\n },\n modalBackdrop: {\n flex: 1,\n backgroundColor: 'rgba(15, 23, 42, 0.45)',\n justifyContent: 'flex-end',\n },\n modalDismiss: {\n flex: 1,\n },\n modalCard: {\n backgroundColor: '#fff',\n borderTopLeftRadius: 20,\n borderTopRightRadius: 20,\n padding: 20,\n paddingBottom: 28,\n gap: 8,\n },\n modalTitle: {\n fontSize: 18,\n fontWeight: '700',\n color: '#0f172a',\n marginBottom: 8,\n },\n modalFieldLabel: {\n fontSize: 13,\n fontWeight: '600',\n color: '#64748b',\n marginTop: 4,\n },\n input: {\n borderWidth: 1,\n borderColor: '#e2e8f0',\n borderRadius: 12,\n paddingHorizontal: 12,\n paddingVertical: 12,\n fontSize: 16,\n color: '#0f172a',\n backgroundColor: '#f8fafc',\n },\n modalActions: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 10,\n marginTop: 16,\n },\n modalBtnGhost: {\n paddingHorizontal: 14,\n paddingVertical: 10,\n },\n modalBtnGhostLabel: {\n fontSize: 16,\n color: '#64748b',\n fontWeight: '600',\n },\n modalBtnPrimary: {\n backgroundColor: mobileTokens.color.primary,\n borderRadius: 12,\n paddingHorizontal: 18,\n paddingVertical: 10,\n minWidth: 88,\n alignItems: 'center',\n },\n modalBtnPrimaryLabel: {\n color: '#fff',\n fontSize: 16,\n fontWeight: '600',\n },\n});\n"],"names":["_a","_b"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ function splitDisplayName(name) {
2
+ const parts = name.trim().split(/\s+/).filter(Boolean);
3
+ if (parts.length === 0) return {
4
+ givenName: "",
5
+ familyName: ""
6
+ };
7
+ if (parts.length === 1) return {
8
+ givenName: parts[0],
9
+ familyName: ""
10
+ };
11
+ return {
12
+ givenName: parts[0],
13
+ familyName: parts.slice(1).join(" ")
14
+ };
15
+ }export{splitDisplayName};//# sourceMappingURL=splitDisplayName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitDisplayName.js","sources":["../../../src/screens/Account/splitDisplayName.ts"],"sourcesContent":["/** Split a display name into given / family for `setName`. */\nexport function splitDisplayName(name: string): { givenName: string; familyName: string } {\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return { givenName: '', familyName: '' };\n if (parts.length === 1) return { givenName: parts[0], familyName: '' };\n return { givenName: parts[0], familyName: parts.slice(1).join(' ') };\n}\n"],"names":[],"mappings":"AACO,SAAS,iBAAiB,IAG/B,EAAA;AACA,EAAM,MAAA,KAAA,GAAQ,KAAK,IAAK,EAAA,CAAE,MAAM,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAI,IAAA,KAAA,CAAM,MAAW,KAAA,CAAA,EAAU,OAAA;AAAA,IAC7B,SAAW,EAAA,EAAA;AAAA,IACX,UAAY,EAAA;AAAA,GACd;AACA,EAAI,IAAA,KAAA,CAAM,MAAW,KAAA,CAAA,EAAU,OAAA;AAAA,IAC7B,SAAA,EAAW,MAAM,CAAC,CAAA;AAAA,IAClB,UAAY,EAAA;AAAA,GACd;AACA,EAAO,OAAA;AAAA,IACL,SAAA,EAAW,MAAM,CAAC,CAAA;AAAA,IAClB,YAAY,KAAM,CAAA,KAAA,CAAM,CAAC,CAAA,CAAE,KAAK,GAAG;AAAA,GACrC;AACF"}
@@ -1,4 +1,4 @@
1
- import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useMemo,useEffect,useCallback,useState,useRef}from'react';import {useColorScheme,useWindowDimensions,Keyboard,StyleSheet,View}from'react-native';import {getDefaultLeftItems,Box,Text,InputToolBar}from'@admin-layout/gluestack-ui-mobile';import {useSafeAreaInsets,SafeAreaView}from'react-native-safe-area-context';import {useNavigation,useRoute,CommonActions}from'@react-navigation/native';import {MessageActionBar}from'../../features/chat/MessageActionBar.js';import {ChatTranscript}from'../../features/chat/ChatTranscript.js';import {AskUserCard}from'../../features/chat/AskUserCard.js';import {pendingAskUser}from'../../features/chat/askUser.js';import {useCdecliConnection}from'../../contexts/CdecliConnectionContext.js';import {useChatStream}from'../../hooks/useChatStream.js';import {KeyboardAwareScreen,KeyboardComposerDock}from'../../components/KeyboardComposerDock.js';import {YantraBrandLoader,YANTRA_LOADER_SIZE_COMPACT}from'../../components/YantraBrandLoader.js';import ThinkingIndicator from'../../components/ThinkingIndicator.js';import {mobileTokens}from'../../theme/mobileTokens.js';import DeepSearchModal from'../Home/components/DeepSearchModal.js';import {normalizeSummaryText,extractDeepSearchSources}from'../Home/deepSearchUtils.js';import {AudioRecorderPanel}from'../../features/audio-input/AudioRecorderPanel.js';import {NativeDictationBar}from'../../features/audio-input/NativeDictationBar.js';import {isNativeDictationAvailable}from'../../features/audio-input/nativeDictation.js';import {useImageAttachments}from'../../features/attachments/useImageAttachments.js';import {ComposerAttachmentBar}from'../../features/attachments/ComposerAttachmentBar.js';import {useComposerAttachMenu}from'../../features/attachments/ComposerAttachMenu.js';import {hasComposerAttachments,takeComposerAttachments}from'../../features/attachments/composerAttachmentHandoff.js';import {MicErrorBoundary}from'../../features/audio-input/MicErrorBoundary.js';import {requestMicPermission}from'../../features/audio-input/useAudioPermission.js';import {shouldRedirectToShop}from'../../features/shopping/chat/homeShoppingIntent.js';import {replaceWithShopNative,shopHandoffParams,pushShopNative}from'../../features/shopping/chat/openShopNative.js';var __defProp = Object.defineProperty;
1
+ import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useMemo,useEffect,useCallback,useState,useRef}from'react';import {useWindowDimensions,Keyboard,StyleSheet,View}from'react-native';import {getDefaultLeftItems,Box,Text,InputToolBar}from'@admin-layout/gluestack-ui-mobile';import {useSafeAreaInsets,SafeAreaView}from'react-native-safe-area-context';import {useNavigation,useRoute,CommonActions}from'@react-navigation/native';import {MessageActionBar}from'../../features/chat/MessageActionBar.js';import {ChatTranscript}from'../../features/chat/ChatTranscript.js';import {AskUserCard}from'../../features/chat/AskUserCard.js';import {pendingAskUser}from'../../features/chat/askUser.js';import {useCdecliConnection}from'../../contexts/CdecliConnectionContext.js';import {useChatStream}from'../../hooks/useChatStream.js';import {KeyboardAwareScreen,KeyboardComposerDock}from'../../components/KeyboardComposerDock.js';import {YantraBrandLoader,YANTRA_LOADER_SIZE_COMPACT}from'../../components/YantraBrandLoader.js';import ThinkingIndicator from'../../components/ThinkingIndicator.js';import {mobileTokens}from'../../theme/mobileTokens.js';import {useAppTheme}from'../../theme/AppThemeProvider.js';import DeepSearchModal from'../Home/components/DeepSearchModal.js';import {normalizeSummaryText,extractDeepSearchSources}from'../Home/deepSearchUtils.js';import {AudioRecorderPanel}from'../../features/audio-input/AudioRecorderPanel.js';import {NativeDictationBar}from'../../features/audio-input/NativeDictationBar.js';import {isNativeDictationAvailable}from'../../features/audio-input/nativeDictation.js';import {useImageAttachments}from'../../features/attachments/useImageAttachments.js';import {ComposerAttachmentBar}from'../../features/attachments/ComposerAttachmentBar.js';import {useComposerAttachMenu}from'../../features/attachments/ComposerAttachMenu.js';import {hasComposerAttachments,takeComposerAttachments}from'../../features/attachments/composerAttachmentHandoff.js';import {MicErrorBoundary}from'../../features/audio-input/MicErrorBoundary.js';import {requestMicPermission}from'../../features/audio-input/useAudioPermission.js';import {shouldRedirectToShop}from'../../features/shopping/chat/homeShoppingIntent.js';import {replaceWithShopNative,shopHandoffParams,pushShopNative}from'../../features/shopping/chat/openShopNative.js';var __defProp = Object.defineProperty;
2
2
  var __defProps = Object.defineProperties;
3
3
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -31,8 +31,9 @@ function ChatScreen() {
31
31
  return raw.length > 0 ? raw : null;
32
32
  }, [params.initialQuery]);
33
33
  const initialAttachments = params.initialAttachments;
34
- const colorScheme = useColorScheme();
35
- const isDark = colorScheme === "dark";
34
+ const {
35
+ isDark
36
+ } = useAppTheme();
36
37
  const {
37
38
  width: screenWidth
38
39
  } = useWindowDimensions();