@adminide-stack/yantra-mobile 12.0.137 → 12.0.139-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 (96) hide show
  1. package/lib/components/CustomDrawer.js +17 -1
  2. package/lib/components/CustomDrawer.js.map +1 -1
  3. package/lib/compute.js +106 -1
  4. package/lib/compute.js.map +1 -1
  5. package/lib/config/env-config.js +12 -0
  6. package/lib/config/env-config.js.map +1 -1
  7. package/lib/features/chat/ChatTranscript.js +2 -2
  8. package/lib/features/chat/ChatTranscript.js.map +1 -1
  9. package/lib/features/chat/surfaceNotes.js +4 -0
  10. package/lib/features/chat/surfaceNotes.js.map +1 -0
  11. package/lib/features/devices/readings.js.map +1 -1
  12. package/lib/features/devices/session.js +2 -22
  13. package/lib/features/devices/session.js.map +1 -1
  14. package/lib/features/dictate/backgroundRecording.js.map +1 -1
  15. package/lib/features/dictate/useDictationRecorder.js +42 -1
  16. package/lib/features/dictate/useDictationRecorder.js.map +1 -1
  17. package/lib/features/home/useHomeWeather.js +85 -0
  18. package/lib/features/home/useHomeWeather.js.map +1 -0
  19. package/lib/features/home/weather.js +139 -0
  20. package/lib/features/home/weather.js.map +1 -0
  21. package/lib/features/notion/NotionPageView.js +819 -0
  22. package/lib/features/notion/NotionPageView.js.map +1 -0
  23. package/lib/features/notion/NotionSheets.js +452 -0
  24. package/lib/features/notion/NotionSheets.js.map +1 -0
  25. package/lib/features/notion/NotionTrashSheet.js +415 -0
  26. package/lib/features/notion/NotionTrashSheet.js.map +1 -0
  27. package/lib/features/notion/NotionWorkspaceView.js +837 -0
  28. package/lib/features/notion/NotionWorkspaceView.js.map +1 -0
  29. package/lib/features/notion/notionBlocks.js +203 -0
  30. package/lib/features/notion/notionBlocks.js.map +1 -0
  31. package/lib/features/notion/notionDocuments.js +182 -0
  32. package/lib/features/notion/notionDocuments.js.map +1 -0
  33. package/lib/features/notion/notionEditorModel.js +180 -0
  34. package/lib/features/notion/notionEditorModel.js.map +1 -0
  35. package/lib/features/notion/notionTemplates.js +406 -0
  36. package/lib/features/notion/notionTemplates.js.map +1 -0
  37. package/lib/features/notion/notionTheme.js +34 -0
  38. package/lib/features/notion/notionTheme.js.map +1 -0
  39. package/lib/features/notion/notionTrash.js +100 -0
  40. package/lib/features/notion/notionTrash.js.map +1 -0
  41. package/lib/features/notion/notionUi.js +310 -0
  42. package/lib/features/notion/notionUi.js.map +1 -0
  43. package/lib/features/notion/useNotionWorkspace.js +181 -0
  44. package/lib/features/notion/useNotionWorkspace.js.map +1 -0
  45. package/lib/features/webbuilder/buildFragments.js +15 -9
  46. package/lib/features/webbuilder/buildFragments.js.map +1 -1
  47. package/lib/features/webbuilder/buildJob.js +3 -3
  48. package/lib/features/webbuilder/buildJob.js.map +1 -1
  49. package/lib/features/webbuilder/publicSandboxDomain.js +5 -0
  50. package/lib/features/webbuilder/publicSandboxDomain.js.map +1 -0
  51. package/lib/features/webbuilder/sandboxPublicHost.js +74 -0
  52. package/lib/features/webbuilder/sandboxPublicHost.js.map +1 -0
  53. package/lib/features/webbuilder/siteAddress.js +2 -1
  54. package/lib/features/webbuilder/siteAddress.js.map +1 -1
  55. package/lib/features/webbuilder/webbuilderPrompts.js +3 -2
  56. package/lib/features/webbuilder/webbuilderPrompts.js.map +1 -1
  57. package/lib/features/webbuilder/workflow.js +2 -2
  58. package/lib/features/webbuilder/workflow.js.map +1 -1
  59. package/lib/hooks/useChatApi.js +15 -3
  60. package/lib/hooks/useChatApi.js.map +1 -1
  61. package/lib/hooks/usePrerequisiteIds.js +15 -2
  62. package/lib/hooks/usePrerequisiteIds.js.map +1 -1
  63. package/lib/routes.json +107 -0
  64. package/lib/screens/Devices/index.js +3 -205
  65. package/lib/screens/Devices/index.js.map +1 -1
  66. package/lib/screens/Home/HomeScreen.js +20 -5
  67. package/lib/screens/Home/HomeScreen.js.map +1 -1
  68. package/lib/screens/Home/components/HomeHero.js +117 -0
  69. package/lib/screens/Home/components/HomeHero.js.map +1 -0
  70. package/lib/screens/Home/components/HomeSuggestions.js +108 -85
  71. package/lib/screens/Home/components/HomeSuggestions.js.map +1 -1
  72. package/lib/screens/Home/components/HomeWash.js +44 -0
  73. package/lib/screens/Home/components/HomeWash.js.map +1 -0
  74. package/lib/screens/Home/components/homeCatalog.js +125 -0
  75. package/lib/screens/Home/components/homeCatalog.js.map +1 -0
  76. package/lib/screens/Notion/index.js +18 -0
  77. package/lib/screens/Notion/index.js.map +1 -0
  78. package/lib/screens/NotionPage/index.js +19 -0
  79. package/lib/screens/NotionPage/index.js.map +1 -0
  80. package/lib/screens/WebBuilderNative/sandboxProxyApi.js +2 -2
  81. package/lib/screens/WebBuilderNative/sandboxProxyApi.js.map +1 -1
  82. package/lib/screens/WebBuilderNative/useRestoredSandboxes.js +16 -8
  83. package/lib/screens/WebBuilderNative/useRestoredSandboxes.js.map +1 -1
  84. package/lib/screens/WebBuilderNative/useWebBuilderGallery.js +6 -5
  85. package/lib/screens/WebBuilderNative/useWebBuilderGallery.js.map +1 -1
  86. package/lib/screens/WebBuilderNative/useWebBuilderHost.js +5 -4
  87. package/lib/screens/WebBuilderNative/useWebBuilderHost.js.map +1 -1
  88. package/lib/screens/WebBuilderNative/webbuilderTransport.js +4 -3
  89. package/lib/screens/WebBuilderNative/webbuilderTransport.js.map +1 -1
  90. package/lib/services/savedWorkspace.js +44 -0
  91. package/lib/services/savedWorkspace.js.map +1 -0
  92. package/lib/theme/mobileTokens.js +1 -0
  93. package/lib/theme/mobileTokens.js.map +1 -1
  94. package/package.json +4 -4
  95. package/lib/features/devices/bodyComposition.js +0 -116
  96. package/lib/features/devices/bodyComposition.js.map +0 -1
@@ -49,7 +49,7 @@ function isVisibleDrawerRoute(route, descriptor) {
49
49
  if (routeName.includes("WebBuilder") || routeName.toLowerCase().includes("webbuilder")) {
50
50
  return false;
51
51
  }
52
- if (/ChatHistory/i.test(routeName) || /CanvasNative/i.test(routeName) || /(^|\.)Apps$/i.test(routeName) || /(^|\.)Discover(Article)?$/i.test(routeName) || /(^|\.)Account$/i.test(routeName)) {
52
+ if (/ChatHistory/i.test(routeName) || /CanvasNative/i.test(routeName) || /(^|\.)Apps$/i.test(routeName) || /(^|\.)Discover(Article)?$/i.test(routeName) || /(^|\.)Notion(Page)?$/i.test(routeName) || /(^|\.)Account$/i.test(routeName)) {
53
53
  return false;
54
54
  }
55
55
  const itemStyle = (_b = descriptor == null ? void 0 : descriptor.options) == null ? void 0 : _b.drawerItemStyle;
@@ -223,6 +223,7 @@ function CustomDrawer(props) {
223
223
  const historyFocused = /ChatHistory/i.test(focusedRouteName);
224
224
  const appsFocused = /(^|\.)Apps$/i.test(focusedRouteName);
225
225
  const discoverFocused = /(^|\.)Discover(Article)?$/i.test(focusedRouteName);
226
+ const notionFocused = /(^|\.)Notion(Page)?$/i.test(focusedRouteName);
226
227
  const billingFocused = /(^|\.)Billing/i.test(focusedRouteName);
227
228
  const isAuthenticated = useMemo(() => {
228
229
  if (!authUser) return false;
@@ -288,6 +289,20 @@ function CustomDrawer(props) {
288
289
  }));
289
290
  });
290
291
  }, [isLoggingOut, navigation, orgName]);
292
+ const handleOpenNotion = useCallback(() => {
293
+ var _a2;
294
+ if (isLoggingOut) return;
295
+ (_a2 = navigation == null ? void 0 : navigation.closeDrawer) == null ? void 0 : _a2.call(navigation);
296
+ afterNativeModalClose(() => {
297
+ var _a3;
298
+ (_a3 = navigation == null ? void 0 : navigation.dispatch) == null ? void 0 : _a3.call(navigation, CommonActions.navigate({
299
+ name: "MainStack.Notion",
300
+ params: orgName ? {
301
+ orgName
302
+ } : void 0
303
+ }));
304
+ });
305
+ }, [isLoggingOut, navigation, orgName]);
291
306
  const handleOpenHistory = useCallback(() => {
292
307
  var _a2;
293
308
  if (isLoggingOut) return;
@@ -369,6 +384,7 @@ function CustomDrawer(props) {
369
384
  /* @__PURE__ */ jsx(DrawerListRow, { icon: "time-outline", label: "History", focused: historyFocused, onPress: handleOpenHistory, showDivider: true, palette }),
370
385
  /* @__PURE__ */ jsx(DrawerListRow, { icon: "apps-outline", label: "Apps", focused: appsFocused, onPress: handleOpenApps, showDivider: true, palette }),
371
386
  /* @__PURE__ */ jsx(DrawerListRow, { icon: "compass-outline", label: "Discover", focused: discoverFocused, onPress: handleOpenDiscover, showDivider: true, palette }),
387
+ /* @__PURE__ */ jsx(DrawerListRow, { icon: "document-text-outline", label: "Notion", focused: notionFocused, onPress: handleOpenNotion, showDivider: true, palette }),
372
388
  /* @__PURE__ */ jsx(DrawerListRow, { icon: "card-outline", label: "Billing", focused: billingFocused, onPress: handleOpenBilling, palette })
373
389
  ] }) : null,
374
390
  !isAuthenticated ? /* @__PURE__ */ jsxs(View, { style: [styles.loggedOutStateCard, {
@@ -1 +1 @@
1
- {"version":3,"file":"CustomDrawer.js","sources":["../../src/components/CustomDrawer.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ActivityIndicator, Image, Pressable, StyleSheet, View } from 'react-native';\nimport { DrawerContentScrollView } from '@react-navigation/drawer';\nimport { Ionicons } from '@expo/vector-icons';\nimport { Text } from '@admin-layout/gluestack-ui-mobile';\nimport { CommonActions, useRoute } from '@react-navigation/native';\nimport { afterNativeModalClose } from '../utils/drawerNavigation';\nimport { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useApolloClient } from '@apollo/client';\nimport type { IUserState } from '@adminide-stack/core';\nimport { Store, logoutAndRedirect, userSelector } from '@adminide-stack/user-auth0-client';\nimport { useAccountProfileQuery } from 'common/graphql';\nimport { mobileColors, mobileTokens } from '../theme/mobileTokens';\nimport { useAppTheme } from '../theme/AppThemeProvider';\n// Shared with the chat surface so the drawer and a message header can never\n// show two different names for the same account.\nimport { pickAuthEmail, pickPrimaryDisplayName, pickProfilePhotoUrl } from '../utils/authUserDisplay';\nimport { ProfileAvatar } from './ProfileAvatar';\nimport { forgetChatPushToken } from '../features/messaging/chatPushToken';\n\nconst APP_ICON = require('../assets/icon.png');\n\nfunction drawerPalette(isDark: boolean) {\n const color = mobileColors(isDark);\n return {\n bg: color.bg,\n surface: color.surface,\n border: color.border,\n text: color.text,\n textSecondary: color.textMuted,\n icon: isDark ? '#cbd5e1' : '#334155',\n rowHighlight: isDark ? 'rgba(148,163,184,0.12)' : color.primarySoft,\n focusedText: isDark ? '#f8fafc' : color.primary,\n chevron: isDark ? '#64748b' : '#c4c4c4',\n surfaceMuted: color.surfaceMuted,\n primaryBorder: color.primaryBorder,\n };\n}\n\nfunction routeLabel(descriptor: any, route: any): string {\n const optLabel = descriptor?.options?.drawerLabel;\n if (typeof optLabel === 'string' && optLabel.trim()) return optLabel;\n const title = descriptor?.options?.title;\n if (typeof title === 'string' && title.trim()) return title;\n const tail =\n String(route?.name ?? '')\n .split('.')\n .pop() || 'Route';\n return tail === 'Chat' ? 'Chat' : tail;\n}\n\nfunction isVisibleDrawerRoute(route: any, descriptor: any): boolean {\n const routeName = String(route?.name ?? '');\n if (routeName.includes('WebBuilder') || routeName.toLowerCase().includes('webbuilder')) {\n return false;\n }\n if (\n /ChatHistory/i.test(routeName) ||\n /CanvasNative/i.test(routeName) ||\n /(^|\\.)Apps$/i.test(routeName) ||\n /(^|\\.)Discover(Article)?$/i.test(routeName) ||\n /(^|\\.)Account$/i.test(routeName)\n ) {\n return false;\n }\n const itemStyle = descriptor?.options?.drawerItemStyle as any;\n if (itemStyle && itemStyle.display === 'none') return false;\n if (descriptor?.options?.hideInMenu === true) return false;\n return true;\n}\n\nfunction pickFocusedOrgName(state: any, route: any): string | null {\n const candidates = [route?.params?.orgName, state?.routes?.[state?.index]?.params?.orgName];\n for (const raw of candidates) {\n if (typeof raw === 'string' && raw.trim()) return raw.trim();\n }\n const focused = state?.routes?.[state?.index];\n const nestedState = focused?.state;\n if (nestedState?.routes && typeof nestedState.index === 'number') {\n const nested = nestedState.routes[nestedState.index]?.params?.orgName;\n if (typeof nested === 'string' && nested.trim()) return nested.trim();\n }\n return null;\n}\n\nfunction DrawerListRow({\n icon,\n label,\n focused,\n onPress,\n showDivider,\n iconNode,\n palette,\n}: {\n icon?: React.ComponentProps<typeof Ionicons>['name'];\n label: string;\n focused?: boolean;\n onPress: () => void;\n showDivider?: boolean;\n iconNode?: React.ReactNode;\n palette: ReturnType<typeof drawerPalette>;\n}) {\n return (\n <>\n <Pressable\n accessibilityRole=\"button\"\n accessibilityState={{ selected: Boolean(focused) }}\n onPress={onPress}\n style={({ pressed }) => [\n styles.listRow,\n { backgroundColor: focused || pressed ? palette.rowHighlight : palette.surface },\n ]}\n >\n {iconNode ?? (\n <Ionicons\n name={icon ?? 'ellipse-outline'}\n size={22}\n color={focused ? palette.focusedText : palette.icon}\n />\n )}\n <Text\n style={[\n styles.listLabel,\n { color: focused ? palette.focusedText : palette.text },\n focused && styles.listLabelFocused,\n ]}\n >\n {label}\n </Text>\n <Ionicons name=\"chevron-forward\" size={16} color={palette.chevron} style={styles.navChevron} />\n </Pressable>\n {showDivider ? <View style={[styles.rowDivider, { backgroundColor: palette.border }]} /> : null}\n </>\n );\n}\n\nfunction readAppVersion(): string {\n try {\n const Constants = require('expo-constants').default as {\n expoConfig?: { version?: string };\n nativeApplicationVersion?: string | null;\n manifest?: { version?: string };\n };\n const version =\n Constants?.expoConfig?.version || Constants?.nativeApplicationVersion || Constants?.manifest?.version;\n if (typeof version === 'string' && version.trim()) return version.trim();\n } catch {\n // expo-constants unavailable in this bundle\n }\n return '1.0.0';\n}\n\nfunction DrawerVersionRow({ palette }: { palette: ReturnType<typeof drawerPalette> }) {\n const version = useMemo(() => readAppVersion(), []);\n return (\n <View\n accessibilityRole=\"text\"\n accessibilityLabel={`Version ${version}`}\n style={[\n styles.listRow,\n styles.appearanceRow,\n styles.versionRow,\n { backgroundColor: palette.surface, borderColor: palette.border },\n ]}\n >\n <Ionicons name=\"information-circle-outline\" size={20} color={palette.icon} />\n <Text style={[styles.listLabel, { color: palette.text }]}>Version</Text>\n <Text style={[styles.versionValue, { color: palette.textSecondary }]}>{version}</Text>\n </View>\n );\n}\n\nfunction DrawerAppearanceRow({\n isDark,\n onChange,\n palette,\n}: {\n isDark: boolean;\n onChange: (dark: boolean) => void;\n palette: ReturnType<typeof drawerPalette>;\n}) {\n return (\n <View\n accessibilityRole=\"adjustable\"\n accessibilityLabel=\"Appearance\"\n style={[\n styles.listRow,\n styles.appearanceRow,\n { backgroundColor: palette.surface, borderColor: palette.border },\n ]}\n >\n <Ionicons name=\"contrast-outline\" size={20} color={palette.icon} />\n <Text style={[styles.listLabel, { color: palette.text }]}>Appearance</Text>\n <View\n style={[\n styles.appearanceToggle,\n { backgroundColor: palette.surfaceMuted, borderColor: palette.border },\n ]}\n >\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel=\"Light\"\n accessibilityState={{ selected: !isDark }}\n onPress={() => onChange(false)}\n style={[\n styles.appearanceToggleBtn,\n !isDark && {\n backgroundColor: palette.rowHighlight,\n borderColor: palette.primaryBorder,\n },\n ]}\n hitSlop={4}\n >\n <Ionicons\n name={!isDark ? 'sunny' : 'sunny-outline'}\n size={16}\n color={!isDark ? palette.focusedText : palette.icon}\n />\n </Pressable>\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel=\"Dark\"\n accessibilityState={{ selected: isDark }}\n onPress={() => onChange(true)}\n style={[\n styles.appearanceToggleBtn,\n isDark && {\n backgroundColor: palette.rowHighlight,\n borderColor: palette.primaryBorder,\n },\n ]}\n hitSlop={4}\n >\n <Ionicons\n name={isDark ? 'moon' : 'moon-outline'}\n size={16}\n color={isDark ? palette.focusedText : palette.icon}\n />\n </Pressable>\n </View>\n </View>\n );\n}\n\nfunction DrawerProfileHeader({\n isAuthenticated,\n onPress,\n palette,\n}: {\n isAuthenticated: boolean;\n onPress?: () => void;\n palette: ReturnType<typeof drawerPalette>;\n}) {\n const authUser = useSelector<Store.Auth, IUserState>(userSelector);\n const { data: profileData } = useAccountProfileQuery({\n fetchPolicy: 'cache-first',\n errorPolicy: 'all',\n skip: !isAuthenticated,\n });\n\n const photoUrl = useMemo(\n () => pickProfilePhotoUrl(profileData?.accountProfile?.photos, authUser),\n [profileData?.accountProfile?.photos, authUser],\n );\n\n const displayName = useMemo(() => pickPrimaryDisplayName(authUser), [authUser]);\n const email = useMemo(() => pickAuthEmail(authUser), [authUser]);\n\n if (!isAuthenticated) return null;\n\n return (\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel=\"Account\"\n onPress={onPress}\n style={({ pressed }) => [\n styles.profileCard,\n { backgroundColor: palette.surface, borderColor: palette.border },\n pressed && { backgroundColor: palette.rowHighlight },\n ]}\n >\n <View style={styles.profileCardInner}>\n <ProfileAvatar uri={photoUrl} name={displayName} size={44} />\n <View style={styles.profileMeta}>\n <Text style={[styles.profileName, { color: palette.text }]} numberOfLines={1}>\n {displayName}\n </Text>\n {email ? (\n <Text style={[styles.profileEmail, { color: palette.textSecondary }]} numberOfLines={1}>\n {email}\n </Text>\n ) : null}\n </View>\n <Ionicons name=\"chevron-forward\" size={18} color={palette.chevron} />\n </View>\n </Pressable>\n );\n}\n\nexport default function CustomDrawer(props: any) {\n const { state, descriptors, navigation } = props;\n /** Mirrors layout settings from `navigation.js` (`defaultHeaderProps.logout`). */\n const showLogout = props.logout !== false;\n const dispatch = useDispatch();\n const apolloClient = useApolloClient();\n const authUser = useSelector<Store.Auth, IUserState>(userSelector);\n const route = useRoute<any>();\n const insets = useSafeAreaInsets();\n const [isLoggingOut, setIsLoggingOut] = useState(false);\n const { isDark, setDarkMode } = useAppTheme();\n const palette = useMemo(() => drawerPalette(isDark), [isDark]);\n const orgName = useMemo(() => pickFocusedOrgName(state, route), [state, route]);\n const focusedRouteName = String(state?.routes?.[state?.index]?.name ?? '');\n const historyFocused = /ChatHistory/i.test(focusedRouteName);\n const appsFocused = /(^|\\.)Apps$/i.test(focusedRouteName);\n const discoverFocused = /(^|\\.)Discover(Article)?$/i.test(focusedRouteName);\n const billingFocused = /(^|\\.)Billing/i.test(focusedRouteName);\n const isAuthenticated = useMemo(() => {\n if (!authUser) return false;\n const email = pickAuthEmail(authUser);\n const name = pickPrimaryDisplayName(authUser);\n return Boolean(email || name !== 'Account');\n }, [authUser]);\n const visibleRoutes = (state?.routes ?? []).filter((r: any) => isVisibleDrawerRoute(r, descriptors?.[r.key]));\n\n const scrollContentStyle = useMemo(\n () => [\n styles.contentWrap,\n {\n // Drawer scroll views often don't reserve status-bar space reliably — combine inset + breathing room.\n paddingTop: Math.max(insets.top, 14) + 10,\n },\n ],\n [insets.top],\n );\n\n const handleLogout = useCallback(async () => {\n if (isLoggingOut) return;\n setIsLoggingOut(true);\n try {\n // While the session can still authenticate: stop this phone getting the account's messages.\n await forgetChatPushToken(apolloClient);\n await Promise.resolve(dispatch(logoutAndRedirect() as any));\n navigation?.closeDrawer?.();\n } catch (error) {\n console.error('[CustomDrawer] Logout failed:', error);\n } finally {\n setIsLoggingOut(false);\n }\n }, [apolloClient, dispatch, isLoggingOut, navigation]);\n\n const handleLogin = useCallback(() => {\n navigation?.closeDrawer?.();\n try {\n navigation?.navigate?.('MainStack.Login');\n } catch {\n navigation?.getParent?.()?.navigate?.('MainStack', { screen: 'MainStack.Login' });\n }\n }, [navigation]);\n\n const handleOpenApps = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.Apps',\n params: orgName ? { orgName } : undefined,\n }),\n );\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenDiscover = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.Discover',\n params: orgName ? { orgName } : undefined,\n }),\n );\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenHistory = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.ChatHistory',\n params: orgName ? { orgName } : undefined,\n }),\n );\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenBilling = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.navigate?.('MainStack.Billing', orgName ? { orgName } : undefined);\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenAccount = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.navigate?.('MainStack.Account', orgName ? { orgName } : undefined);\n });\n }, [isLoggingOut, navigation, orgName]);\n\n useEffect(() => {\n // Prevent stale \"Logging out...\" state if the user logs back in and returns to the drawer.\n if (authUser) {\n setIsLoggingOut(false);\n }\n }, [authUser]);\n\n return (\n <SafeAreaView style={[styles.safeArea, { backgroundColor: palette.bg }]} edges={['left', 'bottom']}>\n <View style={styles.drawerColumn}>\n <DrawerContentScrollView\n {...props}\n style={[styles.scroll, { backgroundColor: palette.bg }]}\n contentContainerStyle={scrollContentStyle}\n >\n <View style={[styles.brandBlock, { borderBottomColor: palette.border }]}>\n <View style={styles.brandStrip}>\n <Image source={APP_ICON} style={styles.brandIconSmall} resizeMode=\"contain\" />\n <Text style={[styles.brandStripTitle, { color: palette.text }]}>Yantra</Text>\n </View>\n </View>\n\n <DrawerProfileHeader\n isAuthenticated={isAuthenticated}\n onPress={handleOpenAccount}\n palette={palette}\n />\n\n {isAuthenticated ? (\n <View\n style={[styles.menuCard, { backgroundColor: palette.surface, borderColor: palette.border }]}\n >\n {visibleRoutes.map((r: any) => {\n const descriptor = descriptors?.[r.key];\n const focused = state?.index === state?.routes?.findIndex((x: any) => x.key === r.key);\n const label = routeLabel(descriptor, r);\n const iconFn = descriptor?.options?.drawerIcon;\n const fallbackIcon =\n label.trim().toLowerCase() === 'chat' ? 'chatbubbles-outline' : 'home-outline';\n\n return (\n <DrawerListRow\n key={r.key}\n label={label}\n focused={focused}\n showDivider\n icon={fallbackIcon}\n palette={palette}\n iconNode={\n typeof iconFn === 'function'\n ? iconFn({\n color: focused ? palette.focusedText : palette.icon,\n size: 22,\n focused,\n })\n : undefined\n }\n onPress={() => {\n if (isLoggingOut) return;\n navigation.navigate(r.name, orgName ? { orgName } : undefined);\n }}\n />\n );\n })}\n <DrawerListRow\n icon=\"time-outline\"\n label=\"History\"\n focused={historyFocused}\n onPress={handleOpenHistory}\n showDivider\n palette={palette}\n />\n <DrawerListRow\n icon=\"apps-outline\"\n label=\"Apps\"\n focused={appsFocused}\n onPress={handleOpenApps}\n showDivider\n palette={palette}\n />\n <DrawerListRow\n icon=\"compass-outline\"\n label=\"Discover\"\n focused={discoverFocused}\n onPress={handleOpenDiscover}\n showDivider\n palette={palette}\n />\n <DrawerListRow\n icon=\"card-outline\"\n label=\"Billing\"\n focused={billingFocused}\n onPress={handleOpenBilling}\n palette={palette}\n />\n </View>\n ) : null}\n {!isAuthenticated ? (\n <View\n style={[\n styles.loggedOutStateCard,\n { backgroundColor: palette.surface, borderColor: palette.border },\n ]}\n >\n <View style={styles.loggedOutStateIconWrap}>\n <Ionicons\n name=\"shield-checkmark-outline\"\n size={22}\n color={mobileTokens.color.primary}\n />\n </View>\n <Text style={[styles.loggedOutStateTitle, { color: palette.text }]}>\n Sign in to continue\n </Text>\n <Text style={[styles.loggedOutStateSubtitle, { color: palette.textSecondary }]}>\n Access your chat history, profile, and personalized workspace after login.\n </Text>\n <Pressable\n onPress={handleLogin}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Log in\"\n style={({ pressed }) => [\n styles.loggedOutStateButton,\n pressed && styles.loggedOutStateButtonPressed,\n ]}\n >\n <Ionicons name=\"log-in-outline\" size={18} color={mobileTokens.color.surface} />\n <Text style={styles.loggedOutStateButtonLabel}>Log in</Text>\n </Pressable>\n </View>\n ) : null}\n </DrawerContentScrollView>\n\n <View style={[styles.footerStack, { backgroundColor: palette.bg }]}>\n <DrawerAppearanceRow isDark={isDark} onChange={setDarkMode} palette={palette} />\n <DrawerVersionRow palette={palette} />\n {showLogout && isAuthenticated ? (\n <Pressable\n onPress={handleLogout}\n disabled={isLoggingOut}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Log out\"\n style={({ pressed }) => [\n styles.logoutButton,\n {\n backgroundColor: pressed && !isLoggingOut ? palette.rowHighlight : palette.surface,\n borderColor: palette.border,\n },\n ]}\n >\n {isLoggingOut ? (\n <ActivityIndicator size=\"small\" color={palette.icon} />\n ) : (\n <Ionicons name=\"log-out-outline\" size={22} color={palette.icon} />\n )}\n <Text style={[styles.logoutLabel, { color: palette.text }]}>\n {isLoggingOut ? 'Logging out...' : 'Log out'}\n </Text>\n </Pressable>\n ) : showLogout ? (\n <Text style={[styles.loggedOutFooterHint, { color: palette.textSecondary }]}>\n You are currently signed out\n </Text>\n ) : null}\n </View>\n </View>\n </SafeAreaView>\n );\n}\n\nconst styles = StyleSheet.create({\n safeArea: {\n flex: 1,\n },\n drawerColumn: {\n flex: 1,\n },\n scroll: {\n flex: 1,\n },\n contentWrap: {\n flexGrow: 1,\n paddingBottom: 24,\n paddingHorizontal: 18,\n },\n brandBlock: {\n marginBottom: 16,\n paddingBottom: 14,\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n brandStrip: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n brandIconSmall: {\n width: 36,\n height: 36,\n borderRadius: 10,\n },\n brandStripTitle: {\n fontSize: 22,\n fontWeight: '800',\n letterSpacing: -0.6,\n },\n profileCard: {\n borderRadius: 20,\n overflow: 'hidden',\n marginBottom: 20,\n borderWidth: StyleSheet.hairlineWidth,\n },\n profileCardInner: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 14,\n paddingLeft: 14,\n paddingRight: 12,\n gap: 12,\n },\n profileMeta: {\n flex: 1,\n minWidth: 0,\n justifyContent: 'center',\n gap: 2,\n },\n profileName: {\n fontSize: 16,\n fontWeight: '600',\n letterSpacing: -0.2,\n lineHeight: 20,\n },\n profileEmail: {\n fontSize: 13,\n fontWeight: '400',\n lineHeight: 17,\n },\n menuCard: {\n borderRadius: 16,\n overflow: 'hidden',\n borderWidth: StyleSheet.hairlineWidth,\n },\n listRow: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 15,\n paddingHorizontal: 16,\n gap: 14,\n },\n listLabel: {\n flex: 1,\n fontSize: 16,\n fontWeight: '400',\n },\n listLabelFocused: {\n fontWeight: '600',\n },\n rowDivider: {\n height: StyleSheet.hairlineWidth,\n marginLeft: 52,\n },\n loggedOutStateCard: {\n marginTop: 18,\n borderRadius: 14,\n paddingHorizontal: 16,\n paddingVertical: 18,\n borderWidth: StyleSheet.hairlineWidth,\n alignItems: 'center',\n gap: 10,\n },\n loggedOutStateIconWrap: {\n width: 44,\n height: 44,\n borderRadius: 14,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: mobileTokens.color.primarySoft,\n borderWidth: 1,\n borderColor: mobileTokens.color.primaryBorder,\n },\n loggedOutStateTitle: {\n fontSize: 17,\n fontWeight: '700',\n letterSpacing: -0.2,\n },\n loggedOutStateSubtitle: {\n fontSize: 13,\n lineHeight: 19,\n textAlign: 'center',\n paddingHorizontal: 4,\n },\n loggedOutStateButton: {\n marginTop: 4,\n borderRadius: 12,\n backgroundColor: mobileTokens.color.primary,\n paddingHorizontal: 16,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n loggedOutStateButtonPressed: {\n opacity: 0.88,\n },\n loggedOutStateButtonLabel: {\n fontSize: 14,\n fontWeight: '600',\n color: mobileTokens.color.surface,\n },\n navChevron: {\n marginLeft: 'auto',\n },\n appearanceRow: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderWidth: StyleSheet.hairlineWidth,\n paddingVertical: 8,\n paddingHorizontal: 12,\n gap: 10,\n },\n versionRow: {\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n versionValue: {\n marginLeft: 'auto',\n fontSize: 15,\n fontWeight: '500',\n fontVariant: ['tabular-nums'],\n },\n appearanceToggle: {\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: 'auto',\n borderRadius: 8,\n borderWidth: StyleSheet.hairlineWidth,\n padding: 2,\n gap: 1,\n },\n appearanceToggleBtn: {\n width: 28,\n height: 28,\n borderRadius: 6,\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: 'transparent',\n },\n footerStack: {\n paddingHorizontal: 18,\n paddingBottom: 12,\n },\n logoutButton: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 14,\n paddingVertical: 15,\n paddingHorizontal: 16,\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomLeftRadius: 16,\n borderBottomRightRadius: 16,\n borderWidth: StyleSheet.hairlineWidth,\n },\n logoutLabel: {\n fontSize: 16,\n fontWeight: '400',\n },\n loggedOutFooterHint: {\n fontSize: 12,\n textAlign: 'center',\n paddingVertical: 8,\n },\n});\n"],"names":["_a","_b","_c","_d"],"mappings":"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"}
1
+ {"version":3,"file":"CustomDrawer.js","sources":["../../src/components/CustomDrawer.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ActivityIndicator, Image, Pressable, StyleSheet, View } from 'react-native';\nimport { DrawerContentScrollView } from '@react-navigation/drawer';\nimport { Ionicons } from '@expo/vector-icons';\nimport { Text } from '@admin-layout/gluestack-ui-mobile';\nimport { CommonActions, useRoute } from '@react-navigation/native';\nimport { afterNativeModalClose } from '../utils/drawerNavigation';\nimport { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useApolloClient } from '@apollo/client';\nimport type { IUserState } from '@adminide-stack/core';\nimport { Store, logoutAndRedirect, userSelector } from '@adminide-stack/user-auth0-client';\nimport { useAccountProfileQuery } from 'common/graphql';\nimport { mobileColors, mobileTokens } from '../theme/mobileTokens';\nimport { useAppTheme } from '../theme/AppThemeProvider';\n// Shared with the chat surface so the drawer and a message header can never\n// show two different names for the same account.\nimport { pickAuthEmail, pickPrimaryDisplayName, pickProfilePhotoUrl } from '../utils/authUserDisplay';\nimport { ProfileAvatar } from './ProfileAvatar';\nimport { forgetChatPushToken } from '../features/messaging/chatPushToken';\n\nconst APP_ICON = require('../assets/icon.png');\n\nfunction drawerPalette(isDark: boolean) {\n const color = mobileColors(isDark);\n return {\n bg: color.bg,\n surface: color.surface,\n border: color.border,\n text: color.text,\n textSecondary: color.textMuted,\n icon: isDark ? '#cbd5e1' : '#334155',\n rowHighlight: isDark ? 'rgba(148,163,184,0.12)' : color.primarySoft,\n focusedText: isDark ? '#f8fafc' : color.primary,\n chevron: isDark ? '#64748b' : '#c4c4c4',\n surfaceMuted: color.surfaceMuted,\n primaryBorder: color.primaryBorder,\n };\n}\n\nfunction routeLabel(descriptor: any, route: any): string {\n const optLabel = descriptor?.options?.drawerLabel;\n if (typeof optLabel === 'string' && optLabel.trim()) return optLabel;\n const title = descriptor?.options?.title;\n if (typeof title === 'string' && title.trim()) return title;\n const tail =\n String(route?.name ?? '')\n .split('.')\n .pop() || 'Route';\n return tail === 'Chat' ? 'Chat' : tail;\n}\n\nfunction isVisibleDrawerRoute(route: any, descriptor: any): boolean {\n const routeName = String(route?.name ?? '');\n if (routeName.includes('WebBuilder') || routeName.toLowerCase().includes('webbuilder')) {\n return false;\n }\n if (\n /ChatHistory/i.test(routeName) ||\n /CanvasNative/i.test(routeName) ||\n /(^|\\.)Apps$/i.test(routeName) ||\n /(^|\\.)Discover(Article)?$/i.test(routeName) ||\n /(^|\\.)Notion(Page)?$/i.test(routeName) ||\n /(^|\\.)Account$/i.test(routeName)\n ) {\n return false;\n }\n const itemStyle = descriptor?.options?.drawerItemStyle as any;\n if (itemStyle && itemStyle.display === 'none') return false;\n if (descriptor?.options?.hideInMenu === true) return false;\n return true;\n}\n\nfunction pickFocusedOrgName(state: any, route: any): string | null {\n const candidates = [route?.params?.orgName, state?.routes?.[state?.index]?.params?.orgName];\n for (const raw of candidates) {\n if (typeof raw === 'string' && raw.trim()) return raw.trim();\n }\n const focused = state?.routes?.[state?.index];\n const nestedState = focused?.state;\n if (nestedState?.routes && typeof nestedState.index === 'number') {\n const nested = nestedState.routes[nestedState.index]?.params?.orgName;\n if (typeof nested === 'string' && nested.trim()) return nested.trim();\n }\n return null;\n}\n\nfunction DrawerListRow({\n icon,\n label,\n focused,\n onPress,\n showDivider,\n iconNode,\n palette,\n}: {\n icon?: React.ComponentProps<typeof Ionicons>['name'];\n label: string;\n focused?: boolean;\n onPress: () => void;\n showDivider?: boolean;\n iconNode?: React.ReactNode;\n palette: ReturnType<typeof drawerPalette>;\n}) {\n return (\n <>\n <Pressable\n accessibilityRole=\"button\"\n accessibilityState={{ selected: Boolean(focused) }}\n onPress={onPress}\n style={({ pressed }) => [\n styles.listRow,\n { backgroundColor: focused || pressed ? palette.rowHighlight : palette.surface },\n ]}\n >\n {iconNode ?? (\n <Ionicons\n name={icon ?? 'ellipse-outline'}\n size={22}\n color={focused ? palette.focusedText : palette.icon}\n />\n )}\n <Text\n style={[\n styles.listLabel,\n { color: focused ? palette.focusedText : palette.text },\n focused && styles.listLabelFocused,\n ]}\n >\n {label}\n </Text>\n <Ionicons name=\"chevron-forward\" size={16} color={palette.chevron} style={styles.navChevron} />\n </Pressable>\n {showDivider ? <View style={[styles.rowDivider, { backgroundColor: palette.border }]} /> : null}\n </>\n );\n}\n\nfunction readAppVersion(): string {\n try {\n const Constants = require('expo-constants').default as {\n expoConfig?: { version?: string };\n nativeApplicationVersion?: string | null;\n manifest?: { version?: string };\n };\n const version =\n Constants?.expoConfig?.version || Constants?.nativeApplicationVersion || Constants?.manifest?.version;\n if (typeof version === 'string' && version.trim()) return version.trim();\n } catch {\n // expo-constants unavailable in this bundle\n }\n return '1.0.0';\n}\n\nfunction DrawerVersionRow({ palette }: { palette: ReturnType<typeof drawerPalette> }) {\n const version = useMemo(() => readAppVersion(), []);\n return (\n <View\n accessibilityRole=\"text\"\n accessibilityLabel={`Version ${version}`}\n style={[\n styles.listRow,\n styles.appearanceRow,\n styles.versionRow,\n { backgroundColor: palette.surface, borderColor: palette.border },\n ]}\n >\n <Ionicons name=\"information-circle-outline\" size={20} color={palette.icon} />\n <Text style={[styles.listLabel, { color: palette.text }]}>Version</Text>\n <Text style={[styles.versionValue, { color: palette.textSecondary }]}>{version}</Text>\n </View>\n );\n}\n\nfunction DrawerAppearanceRow({\n isDark,\n onChange,\n palette,\n}: {\n isDark: boolean;\n onChange: (dark: boolean) => void;\n palette: ReturnType<typeof drawerPalette>;\n}) {\n return (\n <View\n accessibilityRole=\"adjustable\"\n accessibilityLabel=\"Appearance\"\n style={[\n styles.listRow,\n styles.appearanceRow,\n { backgroundColor: palette.surface, borderColor: palette.border },\n ]}\n >\n <Ionicons name=\"contrast-outline\" size={20} color={palette.icon} />\n <Text style={[styles.listLabel, { color: palette.text }]}>Appearance</Text>\n <View\n style={[\n styles.appearanceToggle,\n { backgroundColor: palette.surfaceMuted, borderColor: palette.border },\n ]}\n >\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel=\"Light\"\n accessibilityState={{ selected: !isDark }}\n onPress={() => onChange(false)}\n style={[\n styles.appearanceToggleBtn,\n !isDark && {\n backgroundColor: palette.rowHighlight,\n borderColor: palette.primaryBorder,\n },\n ]}\n hitSlop={4}\n >\n <Ionicons\n name={!isDark ? 'sunny' : 'sunny-outline'}\n size={16}\n color={!isDark ? palette.focusedText : palette.icon}\n />\n </Pressable>\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel=\"Dark\"\n accessibilityState={{ selected: isDark }}\n onPress={() => onChange(true)}\n style={[\n styles.appearanceToggleBtn,\n isDark && {\n backgroundColor: palette.rowHighlight,\n borderColor: palette.primaryBorder,\n },\n ]}\n hitSlop={4}\n >\n <Ionicons\n name={isDark ? 'moon' : 'moon-outline'}\n size={16}\n color={isDark ? palette.focusedText : palette.icon}\n />\n </Pressable>\n </View>\n </View>\n );\n}\n\nfunction DrawerProfileHeader({\n isAuthenticated,\n onPress,\n palette,\n}: {\n isAuthenticated: boolean;\n onPress?: () => void;\n palette: ReturnType<typeof drawerPalette>;\n}) {\n const authUser = useSelector<Store.Auth, IUserState>(userSelector);\n const { data: profileData } = useAccountProfileQuery({\n fetchPolicy: 'cache-first',\n errorPolicy: 'all',\n skip: !isAuthenticated,\n });\n\n const photoUrl = useMemo(\n () => pickProfilePhotoUrl(profileData?.accountProfile?.photos, authUser),\n [profileData?.accountProfile?.photos, authUser],\n );\n\n const displayName = useMemo(() => pickPrimaryDisplayName(authUser), [authUser]);\n const email = useMemo(() => pickAuthEmail(authUser), [authUser]);\n\n if (!isAuthenticated) return null;\n\n return (\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel=\"Account\"\n onPress={onPress}\n style={({ pressed }) => [\n styles.profileCard,\n { backgroundColor: palette.surface, borderColor: palette.border },\n pressed && { backgroundColor: palette.rowHighlight },\n ]}\n >\n <View style={styles.profileCardInner}>\n <ProfileAvatar uri={photoUrl} name={displayName} size={44} />\n <View style={styles.profileMeta}>\n <Text style={[styles.profileName, { color: palette.text }]} numberOfLines={1}>\n {displayName}\n </Text>\n {email ? (\n <Text style={[styles.profileEmail, { color: palette.textSecondary }]} numberOfLines={1}>\n {email}\n </Text>\n ) : null}\n </View>\n <Ionicons name=\"chevron-forward\" size={18} color={palette.chevron} />\n </View>\n </Pressable>\n );\n}\n\nexport default function CustomDrawer(props: any) {\n const { state, descriptors, navigation } = props;\n /** Mirrors layout settings from `navigation.js` (`defaultHeaderProps.logout`). */\n const showLogout = props.logout !== false;\n const dispatch = useDispatch();\n const apolloClient = useApolloClient();\n const authUser = useSelector<Store.Auth, IUserState>(userSelector);\n const route = useRoute<any>();\n const insets = useSafeAreaInsets();\n const [isLoggingOut, setIsLoggingOut] = useState(false);\n const { isDark, setDarkMode } = useAppTheme();\n const palette = useMemo(() => drawerPalette(isDark), [isDark]);\n const orgName = useMemo(() => pickFocusedOrgName(state, route), [state, route]);\n const focusedRouteName = String(state?.routes?.[state?.index]?.name ?? '');\n const historyFocused = /ChatHistory/i.test(focusedRouteName);\n const appsFocused = /(^|\\.)Apps$/i.test(focusedRouteName);\n const discoverFocused = /(^|\\.)Discover(Article)?$/i.test(focusedRouteName);\n const notionFocused = /(^|\\.)Notion(Page)?$/i.test(focusedRouteName);\n const billingFocused = /(^|\\.)Billing/i.test(focusedRouteName);\n const isAuthenticated = useMemo(() => {\n if (!authUser) return false;\n const email = pickAuthEmail(authUser);\n const name = pickPrimaryDisplayName(authUser);\n return Boolean(email || name !== 'Account');\n }, [authUser]);\n const visibleRoutes = (state?.routes ?? []).filter((r: any) => isVisibleDrawerRoute(r, descriptors?.[r.key]));\n\n const scrollContentStyle = useMemo(\n () => [\n styles.contentWrap,\n {\n // Drawer scroll views often don't reserve status-bar space reliably — combine inset + breathing room.\n paddingTop: Math.max(insets.top, 14) + 10,\n },\n ],\n [insets.top],\n );\n\n const handleLogout = useCallback(async () => {\n if (isLoggingOut) return;\n setIsLoggingOut(true);\n try {\n // While the session can still authenticate: stop this phone getting the account's messages.\n await forgetChatPushToken(apolloClient);\n await Promise.resolve(dispatch(logoutAndRedirect() as any));\n navigation?.closeDrawer?.();\n } catch (error) {\n console.error('[CustomDrawer] Logout failed:', error);\n } finally {\n setIsLoggingOut(false);\n }\n }, [apolloClient, dispatch, isLoggingOut, navigation]);\n\n const handleLogin = useCallback(() => {\n navigation?.closeDrawer?.();\n try {\n navigation?.navigate?.('MainStack.Login');\n } catch {\n navigation?.getParent?.()?.navigate?.('MainStack', { screen: 'MainStack.Login' });\n }\n }, [navigation]);\n\n const handleOpenApps = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.Apps',\n params: orgName ? { orgName } : undefined,\n }),\n );\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenDiscover = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.Discover',\n params: orgName ? { orgName } : undefined,\n }),\n );\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenNotion = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.Notion',\n params: orgName ? { orgName } : undefined,\n }),\n );\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenHistory = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.dispatch?.(\n CommonActions.navigate({\n name: 'MainStack.ChatHistory',\n params: orgName ? { orgName } : undefined,\n }),\n );\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenBilling = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.navigate?.('MainStack.Billing', orgName ? { orgName } : undefined);\n });\n }, [isLoggingOut, navigation, orgName]);\n\n const handleOpenAccount = useCallback(() => {\n if (isLoggingOut) return;\n navigation?.closeDrawer?.();\n afterNativeModalClose(() => {\n navigation?.navigate?.('MainStack.Account', orgName ? { orgName } : undefined);\n });\n }, [isLoggingOut, navigation, orgName]);\n\n useEffect(() => {\n // Prevent stale \"Logging out...\" state if the user logs back in and returns to the drawer.\n if (authUser) {\n setIsLoggingOut(false);\n }\n }, [authUser]);\n\n return (\n <SafeAreaView style={[styles.safeArea, { backgroundColor: palette.bg }]} edges={['left', 'bottom']}>\n <View style={styles.drawerColumn}>\n <DrawerContentScrollView\n {...props}\n style={[styles.scroll, { backgroundColor: palette.bg }]}\n contentContainerStyle={scrollContentStyle}\n >\n <View style={[styles.brandBlock, { borderBottomColor: palette.border }]}>\n <View style={styles.brandStrip}>\n <Image source={APP_ICON} style={styles.brandIconSmall} resizeMode=\"contain\" />\n <Text style={[styles.brandStripTitle, { color: palette.text }]}>Yantra</Text>\n </View>\n </View>\n\n <DrawerProfileHeader\n isAuthenticated={isAuthenticated}\n onPress={handleOpenAccount}\n palette={palette}\n />\n\n {isAuthenticated ? (\n <View\n style={[styles.menuCard, { backgroundColor: palette.surface, borderColor: palette.border }]}\n >\n {visibleRoutes.map((r: any) => {\n const descriptor = descriptors?.[r.key];\n const focused = state?.index === state?.routes?.findIndex((x: any) => x.key === r.key);\n const label = routeLabel(descriptor, r);\n const iconFn = descriptor?.options?.drawerIcon;\n const fallbackIcon =\n label.trim().toLowerCase() === 'chat' ? 'chatbubbles-outline' : 'home-outline';\n\n return (\n <DrawerListRow\n key={r.key}\n label={label}\n focused={focused}\n showDivider\n icon={fallbackIcon}\n palette={palette}\n iconNode={\n typeof iconFn === 'function'\n ? iconFn({\n color: focused ? palette.focusedText : palette.icon,\n size: 22,\n focused,\n })\n : undefined\n }\n onPress={() => {\n if (isLoggingOut) return;\n navigation.navigate(r.name, orgName ? { orgName } : undefined);\n }}\n />\n );\n })}\n <DrawerListRow\n icon=\"time-outline\"\n label=\"History\"\n focused={historyFocused}\n onPress={handleOpenHistory}\n showDivider\n palette={palette}\n />\n <DrawerListRow\n icon=\"apps-outline\"\n label=\"Apps\"\n focused={appsFocused}\n onPress={handleOpenApps}\n showDivider\n palette={palette}\n />\n <DrawerListRow\n icon=\"compass-outline\"\n label=\"Discover\"\n focused={discoverFocused}\n onPress={handleOpenDiscover}\n showDivider\n palette={palette}\n />\n <DrawerListRow\n icon=\"document-text-outline\"\n label=\"Notion\"\n focused={notionFocused}\n onPress={handleOpenNotion}\n showDivider\n palette={palette}\n />\n <DrawerListRow\n icon=\"card-outline\"\n label=\"Billing\"\n focused={billingFocused}\n onPress={handleOpenBilling}\n palette={palette}\n />\n </View>\n ) : null}\n {!isAuthenticated ? (\n <View\n style={[\n styles.loggedOutStateCard,\n { backgroundColor: palette.surface, borderColor: palette.border },\n ]}\n >\n <View style={styles.loggedOutStateIconWrap}>\n <Ionicons\n name=\"shield-checkmark-outline\"\n size={22}\n color={mobileTokens.color.primary}\n />\n </View>\n <Text style={[styles.loggedOutStateTitle, { color: palette.text }]}>\n Sign in to continue\n </Text>\n <Text style={[styles.loggedOutStateSubtitle, { color: palette.textSecondary }]}>\n Access your chat history, profile, and personalized workspace after login.\n </Text>\n <Pressable\n onPress={handleLogin}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Log in\"\n style={({ pressed }) => [\n styles.loggedOutStateButton,\n pressed && styles.loggedOutStateButtonPressed,\n ]}\n >\n <Ionicons name=\"log-in-outline\" size={18} color={mobileTokens.color.surface} />\n <Text style={styles.loggedOutStateButtonLabel}>Log in</Text>\n </Pressable>\n </View>\n ) : null}\n </DrawerContentScrollView>\n\n <View style={[styles.footerStack, { backgroundColor: palette.bg }]}>\n <DrawerAppearanceRow isDark={isDark} onChange={setDarkMode} palette={palette} />\n <DrawerVersionRow palette={palette} />\n {showLogout && isAuthenticated ? (\n <Pressable\n onPress={handleLogout}\n disabled={isLoggingOut}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Log out\"\n style={({ pressed }) => [\n styles.logoutButton,\n {\n backgroundColor: pressed && !isLoggingOut ? palette.rowHighlight : palette.surface,\n borderColor: palette.border,\n },\n ]}\n >\n {isLoggingOut ? (\n <ActivityIndicator size=\"small\" color={palette.icon} />\n ) : (\n <Ionicons name=\"log-out-outline\" size={22} color={palette.icon} />\n )}\n <Text style={[styles.logoutLabel, { color: palette.text }]}>\n {isLoggingOut ? 'Logging out...' : 'Log out'}\n </Text>\n </Pressable>\n ) : showLogout ? (\n <Text style={[styles.loggedOutFooterHint, { color: palette.textSecondary }]}>\n You are currently signed out\n </Text>\n ) : null}\n </View>\n </View>\n </SafeAreaView>\n );\n}\n\nconst styles = StyleSheet.create({\n safeArea: {\n flex: 1,\n },\n drawerColumn: {\n flex: 1,\n },\n scroll: {\n flex: 1,\n },\n contentWrap: {\n flexGrow: 1,\n paddingBottom: 24,\n paddingHorizontal: 18,\n },\n brandBlock: {\n marginBottom: 16,\n paddingBottom: 14,\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n brandStrip: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n brandIconSmall: {\n width: 36,\n height: 36,\n borderRadius: 10,\n },\n brandStripTitle: {\n fontSize: 22,\n fontWeight: '800',\n letterSpacing: -0.6,\n },\n profileCard: {\n borderRadius: 20,\n overflow: 'hidden',\n marginBottom: 20,\n borderWidth: StyleSheet.hairlineWidth,\n },\n profileCardInner: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 14,\n paddingLeft: 14,\n paddingRight: 12,\n gap: 12,\n },\n profileMeta: {\n flex: 1,\n minWidth: 0,\n justifyContent: 'center',\n gap: 2,\n },\n profileName: {\n fontSize: 16,\n fontWeight: '600',\n letterSpacing: -0.2,\n lineHeight: 20,\n },\n profileEmail: {\n fontSize: 13,\n fontWeight: '400',\n lineHeight: 17,\n },\n menuCard: {\n borderRadius: 16,\n overflow: 'hidden',\n borderWidth: StyleSheet.hairlineWidth,\n },\n listRow: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 15,\n paddingHorizontal: 16,\n gap: 14,\n },\n listLabel: {\n flex: 1,\n fontSize: 16,\n fontWeight: '400',\n },\n listLabelFocused: {\n fontWeight: '600',\n },\n rowDivider: {\n height: StyleSheet.hairlineWidth,\n marginLeft: 52,\n },\n loggedOutStateCard: {\n marginTop: 18,\n borderRadius: 14,\n paddingHorizontal: 16,\n paddingVertical: 18,\n borderWidth: StyleSheet.hairlineWidth,\n alignItems: 'center',\n gap: 10,\n },\n loggedOutStateIconWrap: {\n width: 44,\n height: 44,\n borderRadius: 14,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: mobileTokens.color.primarySoft,\n borderWidth: 1,\n borderColor: mobileTokens.color.primaryBorder,\n },\n loggedOutStateTitle: {\n fontSize: 17,\n fontWeight: '700',\n letterSpacing: -0.2,\n },\n loggedOutStateSubtitle: {\n fontSize: 13,\n lineHeight: 19,\n textAlign: 'center',\n paddingHorizontal: 4,\n },\n loggedOutStateButton: {\n marginTop: 4,\n borderRadius: 12,\n backgroundColor: mobileTokens.color.primary,\n paddingHorizontal: 16,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n loggedOutStateButtonPressed: {\n opacity: 0.88,\n },\n loggedOutStateButtonLabel: {\n fontSize: 14,\n fontWeight: '600',\n color: mobileTokens.color.surface,\n },\n navChevron: {\n marginLeft: 'auto',\n },\n appearanceRow: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderWidth: StyleSheet.hairlineWidth,\n paddingVertical: 8,\n paddingHorizontal: 12,\n gap: 10,\n },\n versionRow: {\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n versionValue: {\n marginLeft: 'auto',\n fontSize: 15,\n fontWeight: '500',\n fontVariant: ['tabular-nums'],\n },\n appearanceToggle: {\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: 'auto',\n borderRadius: 8,\n borderWidth: StyleSheet.hairlineWidth,\n padding: 2,\n gap: 1,\n },\n appearanceToggleBtn: {\n width: 28,\n height: 28,\n borderRadius: 6,\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: 'transparent',\n },\n footerStack: {\n paddingHorizontal: 18,\n paddingBottom: 12,\n },\n logoutButton: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 14,\n paddingVertical: 15,\n paddingHorizontal: 16,\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomLeftRadius: 16,\n borderBottomRightRadius: 16,\n borderWidth: StyleSheet.hairlineWidth,\n },\n logoutLabel: {\n fontSize: 16,\n fontWeight: '400',\n },\n loggedOutFooterHint: {\n fontSize: 12,\n textAlign: 'center',\n paddingVertical: 8,\n },\n});\n"],"names":["_a","_b","_c","_d"],"mappings":"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"}
package/lib/compute.js CHANGED
@@ -459,6 +459,111 @@ const yantraMobilePageStore = [{
459
459
  },
460
460
  componentPath: "@adminide-stack/yantra-mobile/lib/screens/DiscoverArticle/index.js",
461
461
  hasComponent: true
462
+ }, {
463
+ // Browser `/notion`: the notes workspace, ported natively (web loads it as the
464
+ // `@yantra/notion-surface` MF remote, which RN cannot host). Opened from its own
465
+ // drawer row (CustomDrawer), so the generic drawer list must not show it again.
466
+ key: "notion",
467
+ path: "/:orgName/notion",
468
+ name: "Notion",
469
+ exact: true,
470
+ priority: 3,
471
+ hideInMenu: true,
472
+ auth: true,
473
+ menu_position: "side",
474
+ importPaths: {
475
+ navigationHeader: "@adminide-stack/yantra-mobile/lib/components/NavigationHeader/NavigationHeader.js"
476
+ },
477
+ customHeader: {
478
+ name: "NavigationHeader",
479
+ component: "$.importPaths.navigationHeader",
480
+ props: {
481
+ showTitle: true,
482
+ showToggle: false,
483
+ showFilter: false,
484
+ isSearchBack: false,
485
+ showBack: true,
486
+ showGateway: false,
487
+ showApps: false,
488
+ showHistory: false,
489
+ showNewChat: false
490
+ }
491
+ },
492
+ props: {
493
+ initialParams: {
494
+ orgName: null
495
+ },
496
+ options: {
497
+ title: "Notion",
498
+ headerTintColor: "black",
499
+ headerTitleStyle: {
500
+ fontWeight: "bold"
501
+ },
502
+ drawerItemStyle: {
503
+ display: "none"
504
+ },
505
+ headerTitleAlign: "left",
506
+ gestureEnabled: false,
507
+ swipeEnabled: false,
508
+ animation: "fade",
509
+ animationTypeForReplace: "pop",
510
+ keyboardHandlingEnabled: false,
511
+ freezeOnBlur: true
512
+ }
513
+ },
514
+ componentPath: "@adminide-stack/yantra-mobile/lib/screens/Notion/index.js",
515
+ hasComponent: true
516
+ }, {
517
+ // Browser `/notion/page/:blockId`. Reached from the Notion workspace or a sub-page link.
518
+ key: "notion-page",
519
+ path: "/:orgName/notion/page/:blockId",
520
+ name: "NotionPage",
521
+ exact: true,
522
+ priority: 3,
523
+ hideInMenu: true,
524
+ auth: true,
525
+ importPaths: {
526
+ navigationHeader: "@adminide-stack/yantra-mobile/lib/components/NavigationHeader/NavigationHeader.js"
527
+ },
528
+ customHeader: {
529
+ name: "NavigationHeader",
530
+ component: "$.importPaths.navigationHeader",
531
+ props: {
532
+ showTitle: true,
533
+ showToggle: false,
534
+ showFilter: false,
535
+ isSearchBack: false,
536
+ showBack: true,
537
+ showGateway: false,
538
+ showApps: false,
539
+ showHistory: false,
540
+ showNewChat: false
541
+ }
542
+ },
543
+ props: {
544
+ initialParams: {
545
+ orgName: null,
546
+ blockId: null
547
+ },
548
+ options: {
549
+ title: "Notion",
550
+ headerTintColor: "black",
551
+ headerTitleStyle: {
552
+ fontWeight: "bold"
553
+ },
554
+ drawerItemStyle: {
555
+ display: "none"
556
+ },
557
+ headerTitleAlign: "left",
558
+ gestureEnabled: true,
559
+ swipeEnabled: false,
560
+ animation: "slide_from_right",
561
+ keyboardHandlingEnabled: false,
562
+ freezeOnBlur: true
563
+ }
564
+ },
565
+ componentPath: "@adminide-stack/yantra-mobile/lib/screens/NotionPage/index.js",
566
+ hasComponent: true
462
567
  }, {
463
568
  key: "canvas-native",
464
569
  path: "/:orgName/c/canvas-native",
@@ -1351,6 +1456,6 @@ const yantraMobilePageStore = [{
1351
1456
  componentPath: "@adminide-stack/yantra-mobile/lib/screens/TravelNative/index.js",
1352
1457
  hasComponent: true
1353
1458
  }];
1354
- const selectedRoutes = ["home", "chat", "account", "health", "devices", "chathistory", "apps", "discover", "discover-article", "webbuilder", "canvas-native", "characters-native", "chat-native", "shopping-native", "travel-native", "job-search-native", "resume-native", "inbox-native", "study-native", "local-services-native", "movies-native", "expenses-native", "dictate-native", "webbuilder-native", "design-native"];
1459
+ const selectedRoutes = ["home", "chat", "account", "health", "devices", "chathistory", "apps", "discover", "discover-article", "notion", "notion-page", "webbuilder", "canvas-native", "characters-native", "chat-native", "shopping-native", "travel-native", "job-search-native", "resume-native", "inbox-native", "study-native", "local-services-native", "movies-native", "expenses-native", "dictate-native", "webbuilder-native", "design-native"];
1355
1460
  const filteredRoutes = getFilteredRoutes(yantraMobilePageStore, selectedRoutes);
1356
1461
  export { filteredRoutes, yantraMobilePageStore }; //# sourceMappingURL=compute.js.map