@adminide-stack/yantra-mobile 12.0.54-alpha.8 → 12.0.54
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.
- package/lib/components/CustomDrawer.js +28 -19
- package/lib/components/CustomDrawer.js.map +1 -1
- package/lib/components/NavigationHeader/HeaderMoreMenu.js +7 -4
- package/lib/components/NavigationHeader/HeaderMoreMenu.js.map +1 -1
- package/lib/components/NavigationHeader/HeaderSkillsButton.js +5 -2
- package/lib/components/NavigationHeader/HeaderSkillsButton.js.map +1 -1
- package/lib/components/NavigationHeader/HeaderTasksButton.js +4 -1
- package/lib/components/NavigationHeader/HeaderTasksButton.js.map +1 -1
- package/lib/components/NavigationHeader/NavigationHeader.js +2 -3
- package/lib/components/NavigationHeader/NavigationHeader.js.map +1 -1
- package/lib/compute.js +57 -7
- package/lib/compute.js.map +1 -1
- package/lib/features/agent-chat/NativeAgentChat.js +46 -7
- package/lib/features/agent-chat/NativeAgentChat.js.map +1 -1
- package/lib/features/apps/AppsCatalog.js +10 -0
- package/lib/features/apps/AppsCatalog.js.map +1 -1
- package/lib/features/apps/mobileAppCatalog.js +7 -0
- package/lib/features/apps/mobileAppCatalog.js.map +1 -1
- package/lib/features/travel/nativeTravelRegistry.js +15 -0
- package/lib/features/travel/nativeTravelRegistry.js.map +1 -0
- package/lib/graphql/typePolicies.js +35 -1
- package/lib/graphql/typePolicies.js.map +1 -1
- package/lib/hooks/useAccountDefaultSettings.js +2 -0
- package/lib/hooks/useAccountDefaultSettings.js.map +1 -1
- package/lib/hooks/usePrerequisiteIds.js +4 -1
- package/lib/hooks/usePrerequisiteIds.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/routes.json +58 -3
- package/lib/screens/CanvasBoard/index.js +6 -1
- package/lib/screens/CanvasBoard/index.js.map +1 -1
- package/lib/screens/Home/HomeScreen.js +36 -19
- package/lib/screens/Home/HomeScreen.js.map +1 -1
- package/lib/screens/ShoppingNative/index.js +3 -1
- package/lib/screens/ShoppingNative/index.js.map +1 -1
- package/lib/screens/TravelNative/index.js +70 -0
- package/lib/screens/TravelNative/index.js.map +1 -0
- package/lib/screens/TravelNative/useTravelHostChat.js +66 -0
- package/lib/screens/TravelNative/useTravelHostChat.js.map +1 -0
- package/lib/utils/drawerNavigation.js +42 -0
- package/lib/utils/drawerNavigation.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePrerequisiteIds.js","sources":["../../src/hooks/usePrerequisiteIds.ts"],"sourcesContent":["import { DEFAULT_PRODUCTION_TAG_ID } from '@adminide-stack/core/lib/constants/defaultIds.js';\nimport { useContextData } from '@adminide-stack/platform-client/lib/hooks/useContextData.js';\nimport {\n orgChangeAction,\n resourceGroupChangeAction,\n} from '@adminide-stack/platform-client/lib/redux/actions/org-action.js';\nimport { isAuthenticatedSelector } from '@adminide-stack/user-auth0-client';\nimport { ConfigurationTarget, ContributionSchemaId } from 'common';\nimport {\n useAccountProfileQuery,\n useCreateVaultMutation,\n useGetProjectsLazyQuery,\n useGetUserOrganizationsQuery,\n useGetUserOrganizationsWithDetailsQuery,\n useQuickCreateProjectForAccountBkMutation,\n useWriteSettingsMutation,\n} from 'common/graphql';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useAccountDefaultSettings } from './useAccountDefaultSettings';\nimport { isUnhydratedCdecodeUri, settingsUriForAccount, toUriInput } from '../utils/cdecodeUri';\n\nconst uuidToObjectId = (uuid: string) => uuid.replace(/-/g, '').substring(0, 24);\n\nconst PROJECT_NAME = 'DEFAULT_YANTRA_PROJECT';\nconst TAG_ID = uuidToObjectId(DEFAULT_PRODUCTION_TAG_ID);\n/** SystemContributionExtensionNames.Account — owns `account.default.*`. */\nconst ACCOUNT_EXTENSION = 'account';\n\n/**\n * DEV ONLY — known working project UUID for local mobile bootstrap when create/list\n * cannot resolve `projectId`. Never use on staging/prod: createSecretApiToken needs a\n * real project that resolves to a Mongo ObjectId (unknown UUID → ObjectId cast 400).\n */\nconst TESTING_PROJECT_UUID = '9a8ac704-1040-4836-9b72-48b771ca91b1';\n\nconst ORG_RESOLVE_POLL_MS = 2000;\nconst PROFILE_POLL_MS = 1500;\n\n// ── Module-level project fix (parity with browser) ───────────────────────────\n// Several screens/hooks mount `usePrerequisiteIds` at once. Per-instance refs race\n// and can create multiple orphan projects. Keep a single-flight guard + user id so\n// adopt/create/persist runs once per account session.\n// Resolved project must also be shared — otherwise WebBuilderPrewarm can \"win\" the\n// flight and HomeScreen never sees projectId (submit stuck on \"not ready\").\nlet projectFixInFlight = false;\nlet projectFixUserId: string | null = null;\nlet sharedResolvedProjectId: string | null = null;\nconst sharedProjectListeners = new Set<() => void>();\n\nfunction publishSharedResolvedProjectId(projectUuid: string): void {\n sharedResolvedProjectId = projectUuid;\n sharedProjectListeners.forEach((listener) => listener());\n}\n\nfunction pickDefaultOrgSlug(\n orgs: Array<{ name?: string | null; title?: string | null } | null | undefined> | null | undefined,\n): string | null {\n if (!orgs?.length) return null;\n const first = orgs.find((o) => typeof o?.name === 'string' && o.name.trim().length > 0);\n return first?.name?.trim() ?? null;\n}\n\n/**\n * Org + project prerequisites for mobile (parity with browser `usePrerequisiteIds`).\n *\n * Settings use the same `account.default` config as web (`useSettingsLoader` → `useSettings` on mobile).\n * After verify-user, account-level settings (`//accounts/{id}#settings`) and org membership are polled\n * until `organization` is available, then route context is synced on Home.\n *\n * Scenario: org set but no `account.default.project` → adopt an existing project in the org\n * (or create one), persist settings, and bind resourceGroup — same as browser Scenario 2.\n */\nexport function usePrerequisiteIds() {\n const dispatch = useDispatch();\n const isAuthenticated = useSelector(isAuthenticatedSelector);\n\n const { data: contextData, complete: contextComplete } = useContextData();\n const contextLoading = !contextComplete;\n const cdecodeUri = contextData?.cdecodeUri;\n const contextUserId = contextData?.userId ?? null;\n\n const contextResourceUri = useMemo(() => {\n if (isUnhydratedCdecodeUri(cdecodeUri)) return undefined;\n return toUriInput(cdecodeUri);\n }, [cdecodeUri]);\n\n const {\n data: accountProfileData,\n loading: userLoading,\n refetch: refetchProfile,\n } = useAccountProfileQuery({\n fetchPolicy: 'cache-and-network',\n errorPolicy: 'all',\n skip: !isAuthenticated,\n });\n const profileUserId = accountProfileData?.accountProfile?.user?.id ?? null;\n const effectiveUserId = isAuthenticated ? profileUserId || contextUserId : null;\n\n useEffect(() => {\n if (!isAuthenticated || profileUserId) return;\n const timer = setInterval(() => {\n refetchProfile().catch(() => undefined);\n }, PROFILE_POLL_MS);\n return () => clearInterval(timer);\n }, [isAuthenticated, profileUserId, refetchProfile]);\n\n // Step 1 (web): account.default via settings loader — context cdecodeUri when hydrated\n const {\n organization: orgFromContextSettings,\n project: projectFromContextSettings,\n loading: contextSettingsLoading,\n refetch: refetchContextSettings,\n } = useAccountDefaultSettings({\n resourceUri: contextResourceUri,\n skip: !isAuthenticated || !contextResourceUri,\n });\n\n const accountResourceUri = useMemo(() => {\n if (!effectiveUserId || orgFromContextSettings) return undefined;\n return settingsUriForAccount(effectiveUserId);\n }, [effectiveUserId, orgFromContextSettings]);\n\n // Mobile bootstrap: read account.default from account document before org is on the route\n const {\n organization: orgFromAccountSettings,\n project: projectFromAccountSettings,\n loading: accountSettingsLoading,\n refetch: refetchAccountSettings,\n } = useAccountDefaultSettings({\n resourceUri: accountResourceUri,\n skip: !isAuthenticated || !accountResourceUri,\n });\n\n const {\n data: orgsData,\n loading: orgsLoading,\n refetch: refetchOrgs,\n } = useGetUserOrganizationsWithDetailsQuery({\n skip: !isAuthenticated || !effectiveUserId,\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data: orgsByUserData,\n loading: orgsByUserLoading,\n refetch: refetchOrgsByUser,\n } = useGetUserOrganizationsQuery({\n variables: { userId: effectiveUserId ?? undefined },\n skip: !isAuthenticated || !effectiveUserId,\n fetchPolicy: 'cache-and-network',\n });\n\n const orgFromMembership = useMemo(() => {\n const fromDetails = pickDefaultOrgSlug(orgsData?.getUserOrganizationsWithDetails);\n if (fromDetails) return fromDetails;\n return pickDefaultOrgSlug(orgsByUserData?.getUserOrganizations);\n }, [orgsData, orgsByUserData]);\n\n const orgFromContextPath = useMemo(() => {\n if (isUnhydratedCdecodeUri(cdecodeUri)) return null;\n const { path } = toUriInput(cdecodeUri);\n const match = path.match(/^\\/([^/]+)\\//);\n return match?.[1]?.trim() || null;\n }, [cdecodeUri]);\n\n const orgName = orgFromContextSettings || orgFromAccountSettings || orgFromMembership || orgFromContextPath || null;\n\n const rawSettingsProjectIdRaw = projectFromContextSettings || projectFromAccountSettings || null;\n // Staging may have persisted the local testing UUID; treat it as unset so bootstrap can mint a real project.\n const rawSettingsProjectId =\n !__DEV__ && rawSettingsProjectIdRaw === TESTING_PROJECT_UUID ? null : rawSettingsProjectIdRaw;\n\n useEffect(() => {\n if (!isAuthenticated || orgName || !effectiveUserId) return;\n const timer = setInterval(() => {\n refetchContextSettings?.()?.catch(() => undefined);\n refetchAccountSettings?.()?.catch(() => undefined);\n refetchOrgs().catch(() => undefined);\n refetchOrgsByUser().catch(() => undefined);\n }, ORG_RESOLVE_POLL_MS);\n return () => clearInterval(timer);\n }, [\n isAuthenticated,\n orgName,\n effectiveUserId,\n refetchContextSettings,\n refetchAccountSettings,\n refetchOrgs,\n refetchOrgsByUser,\n ]);\n\n const settingsProjectId = rawSettingsProjectId;\n\n const [resolvedProjectId, setResolvedProjectId] = useState<string | null>(() => sharedResolvedProjectId);\n const [isInitializingProject, setIsInitializingProject] = useState(false);\n\n // Cross-instance sync: when another hook wins the project bootstrap, adopt it.\n useEffect(() => {\n const onShared = () => {\n if (sharedResolvedProjectId) setResolvedProjectId(sharedResolvedProjectId);\n };\n sharedProjectListeners.add(onShared);\n onShared();\n return () => {\n sharedProjectListeners.delete(onShared);\n };\n }, []);\n\n // New account session → clear shared fallback so we don't leak another user's project.\n useEffect(() => {\n if (!effectiveUserId) return;\n if (projectFixUserId && projectFixUserId !== effectiveUserId) {\n sharedResolvedProjectId = null;\n projectFixInFlight = false;\n setResolvedProjectId(null);\n }\n }, [effectiveUserId]);\n\n const projectId = settingsProjectId || resolvedProjectId || sharedResolvedProjectId;\n const settingsLoading = contextSettingsLoading || accountSettingsLoading;\n // Wait for settings to settle so we don't create before an existing default loads.\n const needsProjectCreation = !settingsLoading && !!orgName && !rawSettingsProjectId && !projectId;\n\n const [fetchProjects] = useGetProjectsLazyQuery();\n const [createProject, { error: createError, loading: projectCreating }] =\n useQuickCreateProjectForAccountBkMutation();\n const [createVault, { error: vaultCreateError }] = useCreateVaultMutation();\n const [writeSettings] = useWriteSettingsMutation();\n\n const accountSettingsUri = useMemo(() => {\n if (!effectiveUserId) return null;\n return settingsUriForAccount(effectiveUserId);\n }, [effectiveUserId]);\n\n const persistDefaults = useCallback(\n async (orgToSet: string, projectUuid: string) => {\n if (!accountSettingsUri) return;\n await writeSettings({\n variables: {\n // The URI scalar's TS type is the vscode URI class, but the wire\n // format is this serializable POJO (same shape toUriInput emits).\n editingUri:\n accountSettingsUri as unknown as import('@vscode-alt/monaco-editor/esm/vs/base/common/uri.js').URI,\n settings: {\n 'account.default.organization': orgToSet,\n 'account.default.project': projectUuid,\n },\n target: ConfigurationTarget.USER,\n schemaId: ContributionSchemaId.Configuration,\n extensionName: ACCOUNT_EXTENSION,\n },\n });\n },\n [accountSettingsUri, writeSettings],\n );\n\n const refetchDefaults = useCallback(async () => {\n await Promise.all([\n refetchContextSettings?.()?.catch(() => undefined) ?? Promise.resolve(),\n refetchAccountSettings?.()?.catch(() => undefined) ?? Promise.resolve(),\n ]);\n }, [refetchContextSettings, refetchAccountSettings]);\n\n // Scenario 2: default org present but no project → adopt existing (or create once),\n // then persist so reload / other mounts do not create orphan projects.\n useEffect(() => {\n if (!needsProjectCreation || !effectiveUserId || userLoading || !orgName) {\n return;\n }\n\n if (projectFixUserId !== effectiveUserId) {\n projectFixUserId = effectiveUserId;\n projectFixInFlight = false;\n sharedResolvedProjectId = null;\n }\n\n if (projectFixInFlight) {\n return;\n }\n\n projectFixInFlight = true;\n setIsInitializingProject(true);\n\n (async () => {\n try {\n const existing = await fetchProjects({ variables: { orgName, limit: 50 } });\n let projectUuid =\n (existing.data?.getProjects?.data || []).find((p) => p?.projectId)?.projectId ?? undefined;\n let newMongoProjectId: string | undefined;\n\n if (!projectUuid) {\n const created = await createProject({\n variables: {\n input: {\n accountId: effectiveUserId,\n projectName: PROJECT_NAME,\n },\n },\n });\n newMongoProjectId = created.data?.quickCreateProjectForAccount?.id ?? undefined;\n if (newMongoProjectId) {\n const after = await fetchProjects({ variables: { orgName, limit: 50 } });\n projectUuid =\n (after.data?.getProjects?.data || []).find((p) => p?.id === newMongoProjectId)?.projectId ??\n // createSecretApiToken accepts Mongo ObjectId directly when no UUID dashes.\n newMongoProjectId;\n await createVault({\n variables: {\n input: {\n orgName,\n projectId: newMongoProjectId,\n },\n },\n }).catch((error) =>\n console.error('[usePrerequisiteIds] Vault creation failed:', error?.message),\n );\n } else {\n console.warn('[usePrerequisiteIds] Project creation returned no id');\n }\n }\n\n if (!projectUuid) {\n if (__DEV__) {\n console.warn(\n `[usePrerequisiteIds] Could not resolve a project UUID — using testing project ${TESTING_PROJECT_UUID}`,\n );\n projectUuid = TESTING_PROJECT_UUID;\n } else {\n console.error(\n '[usePrerequisiteIds] Could not resolve a project UUID — refusing testing fallback outside __DEV__',\n );\n projectFixInFlight = false;\n return;\n }\n }\n\n setResolvedProjectId(projectUuid);\n publishSharedResolvedProjectId(projectUuid);\n await persistDefaults(orgName, projectUuid);\n dispatch(orgChangeAction({ orgName, userId: effectiveUserId }));\n dispatch(resourceGroupChangeAction({ resourceGroup: projectUuid }));\n await refetchDefaults();\n } catch (error) {\n console.error('[usePrerequisiteIds] Project bootstrap failed:', (error as Error)?.message);\n if (__DEV__) {\n console.warn(\n `[usePrerequisiteIds] Falling back to testing project ${TESTING_PROJECT_UUID} after bootstrap error`,\n );\n setResolvedProjectId(TESTING_PROJECT_UUID);\n publishSharedResolvedProjectId(TESTING_PROJECT_UUID);\n try {\n await persistDefaults(orgName, TESTING_PROJECT_UUID);\n dispatch(orgChangeAction({ orgName, userId: effectiveUserId }));\n dispatch(resourceGroupChangeAction({ resourceGroup: TESTING_PROJECT_UUID }));\n await refetchDefaults();\n } catch (persistError) {\n console.error(\n '[usePrerequisiteIds] Testing fallback persist failed:',\n (persistError as Error)?.message,\n );\n projectFixInFlight = false;\n }\n } else {\n projectFixInFlight = false;\n }\n } finally {\n setIsInitializingProject(false);\n }\n })();\n }, [\n createProject,\n createVault,\n dispatch,\n fetchProjects,\n needsProjectCreation,\n orgName,\n persistDefaults,\n refetchDefaults,\n effectiveUserId,\n userLoading,\n ]);\n\n const isOrgLoading =\n isAuthenticated &&\n !orgName &&\n (userLoading ||\n contextLoading ||\n settingsLoading ||\n orgsLoading ||\n orgsByUserLoading ||\n Boolean(effectiveUserId));\n\n const isProjectLoading =\n !!orgName &&\n !rawSettingsProjectId &&\n !projectId &&\n (isInitializingProject || projectCreating || settingsLoading);\n\n const isLoading = isOrgLoading || isProjectLoading;\n\n return {\n projectId,\n orgName,\n accountUserId: effectiveUserId ?? null,\n tagId: TAG_ID,\n loading: isLoading,\n /** True while org slug is still unknown (Home should wait before syncing route). */\n orgLoading: isOrgLoading,\n errors: { createError, vaultCreateError },\n };\n}\n"],"names":["_a","_b","_c","_d"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePrerequisiteIds.js","sources":["../../src/hooks/usePrerequisiteIds.ts"],"sourcesContent":["import { DEFAULT_PRODUCTION_TAG_ID } from '@adminide-stack/core/lib/constants/defaultIds.js';\nimport { useContextData } from '@adminide-stack/platform-client/lib/hooks/useContextData.js';\nimport {\n orgChangeAction,\n resourceGroupChangeAction,\n} from '@adminide-stack/platform-client/lib/redux/actions/org-action.js';\nimport { isAuthenticatedSelector } from '@adminide-stack/user-auth0-client';\nimport { ConfigurationTarget, ContributionSchemaId } from 'common';\nimport {\n useAccountProfileQuery,\n useCreateVaultMutation,\n useGetProjectsLazyQuery,\n useGetUserOrganizationsQuery,\n useGetUserOrganizationsWithDetailsQuery,\n useQuickCreateProjectForAccountBkMutation,\n useWriteSettingsMutation,\n} from 'common/graphql';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useAccountDefaultSettings } from './useAccountDefaultSettings';\nimport { isUnhydratedCdecodeUri, settingsUriForAccount, toUriInput } from '../utils/cdecodeUri';\n\nconst uuidToObjectId = (uuid: string) => uuid.replace(/-/g, '').substring(0, 24);\n\nconst PROJECT_NAME = 'DEFAULT_YANTRA_PROJECT';\nconst TAG_ID = uuidToObjectId(DEFAULT_PRODUCTION_TAG_ID);\n/** SystemContributionExtensionNames.Account — owns `account.default.*`. */\nconst ACCOUNT_EXTENSION = 'account';\n\n/**\n * DEV ONLY — known working project UUID for local mobile bootstrap when create/list\n * cannot resolve `projectId`. Never use on staging/prod: createSecretApiToken needs a\n * real project that resolves to a Mongo ObjectId (unknown UUID → ObjectId cast 400).\n */\nconst TESTING_PROJECT_UUID = '9a8ac704-1040-4836-9b72-48b771ca91b1';\n\nconst ORG_RESOLVE_POLL_MS = 2000;\nconst PROFILE_POLL_MS = 1500;\n\n// ── Module-level project fix (parity with browser) ───────────────────────────\n// Several screens/hooks mount `usePrerequisiteIds` at once. Per-instance refs race\n// and can create multiple orphan projects. Keep a single-flight guard + user id so\n// adopt/create/persist runs once per account session.\n// Resolved project must also be shared — otherwise WebBuilderPrewarm can \"win\" the\n// flight and HomeScreen never sees projectId (submit stuck on \"not ready\").\nlet projectFixInFlight = false;\nlet projectFixUserId: string | null = null;\nlet sharedResolvedProjectId: string | null = null;\nconst sharedProjectListeners = new Set<() => void>();\n\nfunction publishSharedResolvedProjectId(projectUuid: string): void {\n sharedResolvedProjectId = projectUuid;\n sharedProjectListeners.forEach((listener) => listener());\n}\n\nfunction pickDefaultOrgSlug(\n orgs: Array<{ name?: string | null; title?: string | null } | null | undefined> | null | undefined,\n): string | null {\n if (!orgs?.length) return null;\n const first = orgs.find((o) => typeof o?.name === 'string' && o.name.trim().length > 0);\n return first?.name?.trim() ?? null;\n}\n\n/**\n * Org + project prerequisites for mobile (parity with browser `usePrerequisiteIds`).\n *\n * Settings use the same `account.default` config as web (`useSettingsLoader` → `useSettings` on mobile).\n * After verify-user, account-level settings (`//accounts/{id}#settings`) and org membership are polled\n * until `organization` is available, then route context is synced on Home.\n *\n * Scenario: org set but no `account.default.project` → adopt an existing project in the org\n * (or create one), persist settings, and bind resourceGroup — same as browser Scenario 2.\n */\nexport function usePrerequisiteIds() {\n const dispatch = useDispatch();\n const isAuthenticated = useSelector(isAuthenticatedSelector);\n\n const { data: contextData, complete: contextComplete } = useContextData();\n const contextLoading = !contextComplete;\n const cdecodeUri = contextData?.cdecodeUri;\n const contextUserId = contextData?.userId ?? null;\n\n const contextResourceUri = useMemo(() => {\n if (isUnhydratedCdecodeUri(cdecodeUri)) return undefined;\n return toUriInput(cdecodeUri);\n }, [cdecodeUri]);\n\n const {\n data: accountProfileData,\n loading: userLoading,\n refetch: refetchProfile,\n } = useAccountProfileQuery({\n fetchPolicy: 'cache-and-network',\n errorPolicy: 'all',\n skip: !isAuthenticated,\n });\n const profileUserId = accountProfileData?.accountProfile?.user?.id ?? null;\n const effectiveUserId = isAuthenticated ? profileUserId || contextUserId : null;\n\n useEffect(() => {\n if (!isAuthenticated || profileUserId) return;\n const timer = setInterval(() => {\n refetchProfile().catch(() => undefined);\n }, PROFILE_POLL_MS);\n return () => clearInterval(timer);\n }, [isAuthenticated, profileUserId, refetchProfile]);\n\n // Step 1 (web): account.default via settings loader — context cdecodeUri when hydrated\n const {\n organization: orgFromContextSettings,\n project: projectFromContextSettings,\n environment: envFromContextSettings,\n loading: contextSettingsLoading,\n refetch: refetchContextSettings,\n } = useAccountDefaultSettings({\n resourceUri: contextResourceUri,\n skip: !isAuthenticated || !contextResourceUri,\n });\n\n const accountResourceUri = useMemo(() => {\n if (!effectiveUserId || orgFromContextSettings) return undefined;\n return settingsUriForAccount(effectiveUserId);\n }, [effectiveUserId, orgFromContextSettings]);\n\n // Mobile bootstrap: read account.default from account document before org is on the route\n const {\n organization: orgFromAccountSettings,\n project: projectFromAccountSettings,\n environment: envFromAccountSettings,\n loading: accountSettingsLoading,\n refetch: refetchAccountSettings,\n } = useAccountDefaultSettings({\n resourceUri: accountResourceUri,\n skip: !isAuthenticated || !accountResourceUri,\n });\n\n const {\n data: orgsData,\n loading: orgsLoading,\n refetch: refetchOrgs,\n } = useGetUserOrganizationsWithDetailsQuery({\n skip: !isAuthenticated || !effectiveUserId,\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data: orgsByUserData,\n loading: orgsByUserLoading,\n refetch: refetchOrgsByUser,\n } = useGetUserOrganizationsQuery({\n variables: { userId: effectiveUserId ?? undefined },\n skip: !isAuthenticated || !effectiveUserId,\n fetchPolicy: 'cache-and-network',\n });\n\n const orgFromMembership = useMemo(() => {\n const fromDetails = pickDefaultOrgSlug(orgsData?.getUserOrganizationsWithDetails);\n if (fromDetails) return fromDetails;\n return pickDefaultOrgSlug(orgsByUserData?.getUserOrganizations);\n }, [orgsData, orgsByUserData]);\n\n const orgFromContextPath = useMemo(() => {\n if (isUnhydratedCdecodeUri(cdecodeUri)) return null;\n const { path } = toUriInput(cdecodeUri);\n const match = path.match(/^\\/([^/]+)\\//);\n return match?.[1]?.trim() || null;\n }, [cdecodeUri]);\n\n const orgName = orgFromContextSettings || orgFromAccountSettings || orgFromMembership || orgFromContextPath || null;\n\n const rawSettingsProjectIdRaw = projectFromContextSettings || projectFromAccountSettings || null;\n // Staging may have persisted the local testing UUID; treat it as unset so bootstrap can mint a real project.\n const rawSettingsProjectId =\n !__DEV__ && rawSettingsProjectIdRaw === TESTING_PROJECT_UUID ? null : rawSettingsProjectIdRaw;\n\n /**\n * Env tag every credential read / vault-secret resolve / system-token mint is scoped by,\n * picked on web in Account > Preferences > Workspace and persisted as\n * `account.default.environment` (parity with the browser hook). Empty — the default, and\n * every account that never picked one — keeps the static root Production tag.\n */\n const tagId = (envFromContextSettings || envFromAccountSettings || '').trim() || TAG_ID;\n\n useEffect(() => {\n if (!isAuthenticated || orgName || !effectiveUserId) return;\n const timer = setInterval(() => {\n refetchContextSettings?.()?.catch(() => undefined);\n refetchAccountSettings?.()?.catch(() => undefined);\n refetchOrgs().catch(() => undefined);\n refetchOrgsByUser().catch(() => undefined);\n }, ORG_RESOLVE_POLL_MS);\n return () => clearInterval(timer);\n }, [\n isAuthenticated,\n orgName,\n effectiveUserId,\n refetchContextSettings,\n refetchAccountSettings,\n refetchOrgs,\n refetchOrgsByUser,\n ]);\n\n const settingsProjectId = rawSettingsProjectId;\n\n const [resolvedProjectId, setResolvedProjectId] = useState<string | null>(() => sharedResolvedProjectId);\n const [isInitializingProject, setIsInitializingProject] = useState(false);\n\n // Cross-instance sync: when another hook wins the project bootstrap, adopt it.\n useEffect(() => {\n const onShared = () => {\n if (sharedResolvedProjectId) setResolvedProjectId(sharedResolvedProjectId);\n };\n sharedProjectListeners.add(onShared);\n onShared();\n return () => {\n sharedProjectListeners.delete(onShared);\n };\n }, []);\n\n // New account session → clear shared fallback so we don't leak another user's project.\n useEffect(() => {\n if (!effectiveUserId) return;\n if (projectFixUserId && projectFixUserId !== effectiveUserId) {\n sharedResolvedProjectId = null;\n projectFixInFlight = false;\n setResolvedProjectId(null);\n }\n }, [effectiveUserId]);\n\n const projectId = settingsProjectId || resolvedProjectId || sharedResolvedProjectId;\n const settingsLoading = contextSettingsLoading || accountSettingsLoading;\n // Wait for settings to settle so we don't create before an existing default loads.\n const needsProjectCreation = !settingsLoading && !!orgName && !rawSettingsProjectId && !projectId;\n\n const [fetchProjects] = useGetProjectsLazyQuery();\n const [createProject, { error: createError, loading: projectCreating }] =\n useQuickCreateProjectForAccountBkMutation();\n const [createVault, { error: vaultCreateError }] = useCreateVaultMutation();\n const [writeSettings] = useWriteSettingsMutation();\n\n const accountSettingsUri = useMemo(() => {\n if (!effectiveUserId) return null;\n return settingsUriForAccount(effectiveUserId);\n }, [effectiveUserId]);\n\n const persistDefaults = useCallback(\n async (orgToSet: string, projectUuid: string) => {\n if (!accountSettingsUri) return;\n await writeSettings({\n variables: {\n // The URI scalar's TS type is the vscode URI class, but the wire\n // format is this serializable POJO (same shape toUriInput emits).\n editingUri:\n accountSettingsUri as unknown as import('@vscode-alt/monaco-editor/esm/vs/base/common/uri.js').URI,\n settings: {\n 'account.default.organization': orgToSet,\n 'account.default.project': projectUuid,\n },\n target: ConfigurationTarget.USER,\n schemaId: ContributionSchemaId.Configuration,\n extensionName: ACCOUNT_EXTENSION,\n },\n });\n },\n [accountSettingsUri, writeSettings],\n );\n\n const refetchDefaults = useCallback(async () => {\n await Promise.all([\n refetchContextSettings?.()?.catch(() => undefined) ?? Promise.resolve(),\n refetchAccountSettings?.()?.catch(() => undefined) ?? Promise.resolve(),\n ]);\n }, [refetchContextSettings, refetchAccountSettings]);\n\n // Scenario 2: default org present but no project → adopt existing (or create once),\n // then persist so reload / other mounts do not create orphan projects.\n useEffect(() => {\n if (!needsProjectCreation || !effectiveUserId || userLoading || !orgName) {\n return;\n }\n\n if (projectFixUserId !== effectiveUserId) {\n projectFixUserId = effectiveUserId;\n projectFixInFlight = false;\n sharedResolvedProjectId = null;\n }\n\n if (projectFixInFlight) {\n return;\n }\n\n projectFixInFlight = true;\n setIsInitializingProject(true);\n\n (async () => {\n try {\n const existing = await fetchProjects({ variables: { orgName, limit: 50 } });\n let projectUuid =\n (existing.data?.getProjects?.data || []).find((p) => p?.projectId)?.projectId ?? undefined;\n let newMongoProjectId: string | undefined;\n\n if (!projectUuid) {\n const created = await createProject({\n variables: {\n input: {\n accountId: effectiveUserId,\n projectName: PROJECT_NAME,\n },\n },\n });\n newMongoProjectId = created.data?.quickCreateProjectForAccount?.id ?? undefined;\n if (newMongoProjectId) {\n const after = await fetchProjects({ variables: { orgName, limit: 50 } });\n projectUuid =\n (after.data?.getProjects?.data || []).find((p) => p?.id === newMongoProjectId)?.projectId ??\n // createSecretApiToken accepts Mongo ObjectId directly when no UUID dashes.\n newMongoProjectId;\n await createVault({\n variables: {\n input: {\n orgName,\n projectId: newMongoProjectId,\n },\n },\n }).catch((error) =>\n console.error('[usePrerequisiteIds] Vault creation failed:', error?.message),\n );\n } else {\n console.warn('[usePrerequisiteIds] Project creation returned no id');\n }\n }\n\n if (!projectUuid) {\n if (__DEV__) {\n console.warn(\n `[usePrerequisiteIds] Could not resolve a project UUID — using testing project ${TESTING_PROJECT_UUID}`,\n );\n projectUuid = TESTING_PROJECT_UUID;\n } else {\n console.error(\n '[usePrerequisiteIds] Could not resolve a project UUID — refusing testing fallback outside __DEV__',\n );\n projectFixInFlight = false;\n return;\n }\n }\n\n setResolvedProjectId(projectUuid);\n publishSharedResolvedProjectId(projectUuid);\n await persistDefaults(orgName, projectUuid);\n dispatch(orgChangeAction({ orgName, userId: effectiveUserId }));\n dispatch(resourceGroupChangeAction({ resourceGroup: projectUuid }));\n await refetchDefaults();\n } catch (error) {\n console.error('[usePrerequisiteIds] Project bootstrap failed:', (error as Error)?.message);\n if (__DEV__) {\n console.warn(\n `[usePrerequisiteIds] Falling back to testing project ${TESTING_PROJECT_UUID} after bootstrap error`,\n );\n setResolvedProjectId(TESTING_PROJECT_UUID);\n publishSharedResolvedProjectId(TESTING_PROJECT_UUID);\n try {\n await persistDefaults(orgName, TESTING_PROJECT_UUID);\n dispatch(orgChangeAction({ orgName, userId: effectiveUserId }));\n dispatch(resourceGroupChangeAction({ resourceGroup: TESTING_PROJECT_UUID }));\n await refetchDefaults();\n } catch (persistError) {\n console.error(\n '[usePrerequisiteIds] Testing fallback persist failed:',\n (persistError as Error)?.message,\n );\n projectFixInFlight = false;\n }\n } else {\n projectFixInFlight = false;\n }\n } finally {\n setIsInitializingProject(false);\n }\n })();\n }, [\n createProject,\n createVault,\n dispatch,\n fetchProjects,\n needsProjectCreation,\n orgName,\n persistDefaults,\n refetchDefaults,\n effectiveUserId,\n userLoading,\n ]);\n\n const isOrgLoading =\n isAuthenticated &&\n !orgName &&\n (userLoading ||\n contextLoading ||\n settingsLoading ||\n orgsLoading ||\n orgsByUserLoading ||\n Boolean(effectiveUserId));\n\n const isProjectLoading =\n !!orgName &&\n !rawSettingsProjectId &&\n !projectId &&\n (isInitializingProject || projectCreating || settingsLoading);\n\n const isLoading = isOrgLoading || isProjectLoading;\n\n return {\n projectId,\n orgName,\n accountUserId: effectiveUserId ?? null,\n tagId,\n loading: isLoading,\n /** True while org slug is still unknown (Home should wait before syncing route). */\n orgLoading: isOrgLoading,\n errors: { createError, vaultCreateError },\n };\n}\n"],"names":["_a","_b","_c","_d"],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {Feature}from'@common-stack/client-react';import YantraMobileModule from'./module.js';export{default as Home}from'./screens/Home/HomeScreen.js';export{default as NewChat}from'./screens/NewChat/index.js';export{default as ChatHistory}from'./screens/ChatHistory/index.js';export{default as Apps}from'./screens/Apps/index.js';export{default as WebBuilder}from'./screens/WebBuilder/index.js';export{GatewayContextProvider,useGatewayContext}from'./contexts/GatewayContext.js';export{CdecliConnectionProvider,useCdecliConnection}from'./contexts/CdecliConnectionContext.js';export{BUILTIN_MOBILE_GATEWAYS,MAX_CONCURRENT_TASKS,STORAGE_KEYS}from'./config/constants.js';export{config}from'./config/env-config.js';export{useCdecliAutoConnect}from'./hooks/useCdecliAutoConnect.js';export{useObtainSystemToken}from'./hooks/useObtainSystemToken.js';export{appendSurfaceAuthParams,buildCdecliTokenInjection,buildSurfaceGateRecoveryScript,mintSurfaceSystemToken,resolveSurfaceCatalogBackend}from'./hooks/mintSurfaceSystemToken.js';export{isInstanceNotFoundError,useGatewayConnection}from'./hooks/useGatewayConnection.js';export{usePrerequisiteIds}from'./hooks/usePrerequisiteIds.js';export{useWorkspaceProvisioner}from'./hooks/useWorkspaceProvisioner.js';export{useGatewayRegistry}from'./hooks/useGatewayRegistry.js';export{agentSessionManager}from'./services/agentSessionManager.js';export{ensureGatewayApiKeys,resetGatewayApiKeyBridge}from'./services/gatewayApiKeyBridge.js';export{GatewayClient}from'./services/gatewayClient.js';export{BRIDGE_PROTOCOL_VERSION,BRIDGE_READY_ACTION,DEFAULT_BRIDGE_TIMEOUT_MS,DEFAULT_CHUNK_SIZE,MessageType}from'./bridge/types.js';export{WebViewManager}from'./bridge/WebViewManager.js';export{NativeWebViewBridge}from'./bridge/NativeWebViewBridge.js';export{TypedBridge}from'./bridge/TypedBridge.js';export{CancellableRequest}from'./bridge/CancellableRequest.js';export{ChunkedMessageHandler}from'./bridge/ChunkedMessageHandler.js';export{BridgeDebugger}from'./bridge/BridgeDebugger.js';export{WEB_BRIDGE_BOOTSTRAP}from'./bridge/webBridgeBootstrap.js';export{AuthenticatedFetch}from'./bridge/AuthenticatedFetch.js';export{AuthBridgeHandler}from'./bridge/handlers/AuthBridgeHandler.js';export{NavigationBridgeHandler}from'./bridge/handlers/NavigationBridgeHandler.js';export{AnalyticsBridgeHandler}from'./bridge/handlers/AnalyticsBridgeHandler.js';export{getPackagerHost,resolveMobileWebUrl}from'./bridge/resolveMobileWebUrl.js';export{YANTRA_LOADER_SIZE_COMPACT,YANTRA_LOADER_SIZE_DEFAULT,YantraBrandLoader}from'./components/YantraBrandLoader.js';export{default as CustomDrawer}from'./components/CustomDrawer.js';export{isKeyboardControllerAvailable}from'./utils/keyboardController.js';export{getNativeCanvasExperience,getNativeCanvasViewer,preloadNativeCanvasExperience,registerCanvasExperiencePreload,registerNativeCanvasExperience,registerNativeCanvasViewer}from'./features/canvas/nativeViewerRegistry.js';export{getNativeCharactersExperience,registerNativeCharactersExperience}from'./features/characters/nativeCharactersRegistry.js';export{getNativeChatExperience,registerNativeChatExperience}from'./features/messaging/nativeChatRegistry.js';export{getNativeShoppingExperience,preloadNativeShoppingExperience,registerNativeShoppingExperience,registerShoppingExperiencePreload}from'./features/shopping/nativeShoppingRegistry.js';export{NativeAgentChat}from'./features/agent-chat/NativeAgentChat.js';export{resolveSurfaceAuthGraphqlUrl}from'./hooks/resolveSurfaceAuthGraphqlUrl.js';var index = new Feature(YantraMobileModule);export{index as default};//# sourceMappingURL=index.js.map
|
|
1
|
+
import {Feature}from'@common-stack/client-react';import YantraMobileModule from'./module.js';export{default as Home}from'./screens/Home/HomeScreen.js';export{default as NewChat}from'./screens/NewChat/index.js';export{default as ChatHistory}from'./screens/ChatHistory/index.js';export{default as Apps}from'./screens/Apps/index.js';export{default as WebBuilder}from'./screens/WebBuilder/index.js';export{GatewayContextProvider,useGatewayContext}from'./contexts/GatewayContext.js';export{CdecliConnectionProvider,useCdecliConnection}from'./contexts/CdecliConnectionContext.js';export{BUILTIN_MOBILE_GATEWAYS,MAX_CONCURRENT_TASKS,STORAGE_KEYS}from'./config/constants.js';export{config}from'./config/env-config.js';export{useCdecliAutoConnect}from'./hooks/useCdecliAutoConnect.js';export{useObtainSystemToken}from'./hooks/useObtainSystemToken.js';export{appendSurfaceAuthParams,buildCdecliTokenInjection,buildSurfaceGateRecoveryScript,mintSurfaceSystemToken,resolveSurfaceCatalogBackend}from'./hooks/mintSurfaceSystemToken.js';export{isInstanceNotFoundError,useGatewayConnection}from'./hooks/useGatewayConnection.js';export{usePrerequisiteIds}from'./hooks/usePrerequisiteIds.js';export{useWorkspaceProvisioner}from'./hooks/useWorkspaceProvisioner.js';export{useGatewayRegistry}from'./hooks/useGatewayRegistry.js';export{agentSessionManager}from'./services/agentSessionManager.js';export{ensureGatewayApiKeys,resetGatewayApiKeyBridge}from'./services/gatewayApiKeyBridge.js';export{GatewayClient}from'./services/gatewayClient.js';export{BRIDGE_PROTOCOL_VERSION,BRIDGE_READY_ACTION,DEFAULT_BRIDGE_TIMEOUT_MS,DEFAULT_CHUNK_SIZE,MessageType}from'./bridge/types.js';export{WebViewManager}from'./bridge/WebViewManager.js';export{NativeWebViewBridge}from'./bridge/NativeWebViewBridge.js';export{TypedBridge}from'./bridge/TypedBridge.js';export{CancellableRequest}from'./bridge/CancellableRequest.js';export{ChunkedMessageHandler}from'./bridge/ChunkedMessageHandler.js';export{BridgeDebugger}from'./bridge/BridgeDebugger.js';export{WEB_BRIDGE_BOOTSTRAP}from'./bridge/webBridgeBootstrap.js';export{AuthenticatedFetch}from'./bridge/AuthenticatedFetch.js';export{AuthBridgeHandler}from'./bridge/handlers/AuthBridgeHandler.js';export{NavigationBridgeHandler}from'./bridge/handlers/NavigationBridgeHandler.js';export{AnalyticsBridgeHandler}from'./bridge/handlers/AnalyticsBridgeHandler.js';export{getPackagerHost,resolveMobileWebUrl}from'./bridge/resolveMobileWebUrl.js';export{YANTRA_LOADER_SIZE_COMPACT,YANTRA_LOADER_SIZE_DEFAULT,YantraBrandLoader}from'./components/YantraBrandLoader.js';export{default as CustomDrawer}from'./components/CustomDrawer.js';export{isKeyboardControllerAvailable}from'./utils/keyboardController.js';export{getNativeCanvasExperience,getNativeCanvasViewer,preloadNativeCanvasExperience,registerCanvasExperiencePreload,registerNativeCanvasExperience,registerNativeCanvasViewer}from'./features/canvas/nativeViewerRegistry.js';export{getNativeCharactersExperience,registerNativeCharactersExperience}from'./features/characters/nativeCharactersRegistry.js';export{getNativeChatExperience,registerNativeChatExperience}from'./features/messaging/nativeChatRegistry.js';export{getNativeShoppingExperience,preloadNativeShoppingExperience,registerNativeShoppingExperience,registerShoppingExperiencePreload}from'./features/shopping/nativeShoppingRegistry.js';export{getNativeTravelExperience,preloadNativeTravelExperience,registerNativeTravelExperience,registerTravelExperiencePreload}from'./features/travel/nativeTravelRegistry.js';export{NativeAgentChat}from'./features/agent-chat/NativeAgentChat.js';export{resolveSurfaceAuthGraphqlUrl}from'./hooks/resolveSurfaceAuthGraphqlUrl.js';var index = new Feature(YantraMobileModule);export{index as default};//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { Feature } from '@common-stack/client-react';\nimport YantraMobileModule from './module';\n\nexport default new Feature(YantraMobileModule);\nexport * from './screens';\nexport { GatewayContextProvider, useGatewayContext } from './contexts/GatewayContext';\nexport { CdecliConnectionProvider, useCdecliConnection } from './contexts/CdecliConnectionContext';\nexport * from './config/constants';\nexport { config } from './config/env-config';\nexport { useCdecliAutoConnect } from './hooks/useCdecliAutoConnect';\nexport { useObtainSystemToken } from './hooks/useObtainSystemToken';\nexport {\n mintSurfaceSystemToken,\n appendSurfaceAuthParams,\n buildCdecliTokenInjection,\n buildSurfaceGateRecoveryScript,\n resolveSurfaceCatalogBackend,\n resolveSurfaceAuthGraphqlUrl,\n} from './hooks/mintSurfaceSystemToken';\nexport { useGatewayConnection, isInstanceNotFoundError } from './hooks/useGatewayConnection';\nexport { usePrerequisiteIds } from './hooks/usePrerequisiteIds';\nexport { useWorkspaceProvisioner } from './hooks/useWorkspaceProvisioner';\nexport { useGatewayRegistry } from './hooks/useGatewayRegistry';\nexport * from './services';\nexport * from './bridge';\nexport {\n YantraBrandLoader,\n YANTRA_LOADER_SIZE_DEFAULT,\n YANTRA_LOADER_SIZE_COMPACT,\n} from './components/YantraBrandLoader';\nexport { default as CustomDrawer } from './components/CustomDrawer';\nexport { isKeyboardControllerAvailable } from './utils/keyboardController';\n// The canvas viewer seam. Exported from the index on purpose: the app (the MF\n// host) registers the federated viewer here and the CanvasBoard screen reads\n// it. Reachability from this entry is what makes rollup emit the registry as a\n// real shared module - as an internal-only file, `registerNativeCanvasViewer`\n// is never called inside the package, so rollup tree-shakes it and constant-\n// folds the screen down to its fallback branch.\nexport {\n registerNativeCanvasViewer,\n getNativeCanvasViewer,\n registerNativeCanvasExperience,\n getNativeCanvasExperience,\n registerCanvasExperiencePreload,\n preloadNativeCanvasExperience,\n} from './features/canvas/nativeViewerRegistry';\n// Characters seam - same reachability contract as the canvas registry above.\nexport {\n registerNativeCharactersExperience,\n getNativeCharactersExperience,\n} from './features/characters/nativeCharactersRegistry';\n// Chat seam - same reachability contract as the two registries above.\nexport { registerNativeChatExperience, getNativeChatExperience } from './features/messaging/nativeChatRegistry';\nexport {\n registerNativeShoppingExperience,\n getNativeShoppingExperience,\n registerShoppingExperiencePreload,\n preloadNativeShoppingExperience,\n} from './features/shopping/nativeShoppingRegistry';\nexport type { ShoppingExperienceProps } from './features/shopping/ShoppingExperience';\nexport type { ShoppingHostChat } from './features/shopping/hostChat';\nexport { NativeAgentChat } from './features/agent-chat';\nexport type { AgentChatMessage, AgentChatSuggestion, NativeAgentChatProps } from './features/agent-chat';\nexport type {\n ChatHostServices,\n ChatViewer,\n FederatedChatProps,\n NativeChatExperienceProps,\n} from './features/messaging/chatHost';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { Feature } from '@common-stack/client-react';\nimport YantraMobileModule from './module';\n\nexport default new Feature(YantraMobileModule);\nexport * from './screens';\nexport { GatewayContextProvider, useGatewayContext } from './contexts/GatewayContext';\nexport { CdecliConnectionProvider, useCdecliConnection } from './contexts/CdecliConnectionContext';\nexport * from './config/constants';\nexport { config } from './config/env-config';\nexport { useCdecliAutoConnect } from './hooks/useCdecliAutoConnect';\nexport { useObtainSystemToken } from './hooks/useObtainSystemToken';\nexport {\n mintSurfaceSystemToken,\n appendSurfaceAuthParams,\n buildCdecliTokenInjection,\n buildSurfaceGateRecoveryScript,\n resolveSurfaceCatalogBackend,\n resolveSurfaceAuthGraphqlUrl,\n} from './hooks/mintSurfaceSystemToken';\nexport { useGatewayConnection, isInstanceNotFoundError } from './hooks/useGatewayConnection';\nexport { usePrerequisiteIds } from './hooks/usePrerequisiteIds';\nexport { useWorkspaceProvisioner } from './hooks/useWorkspaceProvisioner';\nexport { useGatewayRegistry } from './hooks/useGatewayRegistry';\nexport * from './services';\nexport * from './bridge';\nexport {\n YantraBrandLoader,\n YANTRA_LOADER_SIZE_DEFAULT,\n YANTRA_LOADER_SIZE_COMPACT,\n} from './components/YantraBrandLoader';\nexport { default as CustomDrawer } from './components/CustomDrawer';\nexport { isKeyboardControllerAvailable } from './utils/keyboardController';\n// The canvas viewer seam. Exported from the index on purpose: the app (the MF\n// host) registers the federated viewer here and the CanvasBoard screen reads\n// it. Reachability from this entry is what makes rollup emit the registry as a\n// real shared module - as an internal-only file, `registerNativeCanvasViewer`\n// is never called inside the package, so rollup tree-shakes it and constant-\n// folds the screen down to its fallback branch.\nexport {\n registerNativeCanvasViewer,\n getNativeCanvasViewer,\n registerNativeCanvasExperience,\n getNativeCanvasExperience,\n registerCanvasExperiencePreload,\n preloadNativeCanvasExperience,\n} from './features/canvas/nativeViewerRegistry';\n// Characters seam - same reachability contract as the canvas registry above.\nexport {\n registerNativeCharactersExperience,\n getNativeCharactersExperience,\n} from './features/characters/nativeCharactersRegistry';\n// Chat seam - same reachability contract as the two registries above.\nexport { registerNativeChatExperience, getNativeChatExperience } from './features/messaging/nativeChatRegistry';\nexport {\n registerNativeShoppingExperience,\n getNativeShoppingExperience,\n registerShoppingExperiencePreload,\n preloadNativeShoppingExperience,\n} from './features/shopping/nativeShoppingRegistry';\nexport type { ShoppingExperienceProps } from './features/shopping/ShoppingExperience';\nexport type { ShoppingHostChat } from './features/shopping/hostChat';\nexport {\n registerNativeTravelExperience,\n getNativeTravelExperience,\n registerTravelExperiencePreload,\n preloadNativeTravelExperience,\n} from './features/travel/nativeTravelRegistry';\nexport type { TravelExperienceProps } from './features/travel/TravelExperience';\nexport type { TravelHostChat } from './features/travel/hostChat';\nexport { NativeAgentChat } from './features/agent-chat';\nexport type { AgentChatMessage, AgentChatSuggestion, NativeAgentChatProps } from './features/agent-chat';\nexport type {\n ChatHostServices,\n ChatViewer,\n FederatedChatProps,\n NativeChatExperienceProps,\n} from './features/messaging/chatHost';\n"],"names":[],"mappings":"kmHAEA,YAAe,IAAI,QAAQ,kBAAkB,CAAA"}
|
package/lib/routes.json
CHANGED
|
@@ -196,7 +196,8 @@
|
|
|
196
196
|
"swipeEnabled": false,
|
|
197
197
|
"animation": "fade",
|
|
198
198
|
"animationTypeForReplace": "pop",
|
|
199
|
-
"keyboardHandlingEnabled": false
|
|
199
|
+
"keyboardHandlingEnabled": false,
|
|
200
|
+
"unmountOnBlur": true
|
|
200
201
|
}
|
|
201
202
|
},
|
|
202
203
|
"componentPath": "@adminide-stack/yantra-mobile/lib/screens/Apps/index.js",
|
|
@@ -249,7 +250,8 @@
|
|
|
249
250
|
"swipeEnabled": false,
|
|
250
251
|
"animation": "fade",
|
|
251
252
|
"animationTypeForReplace": "pop",
|
|
252
|
-
"keyboardHandlingEnabled": false
|
|
253
|
+
"keyboardHandlingEnabled": false,
|
|
254
|
+
"unmountOnBlur": true
|
|
253
255
|
}
|
|
254
256
|
},
|
|
255
257
|
"componentPath": "@adminide-stack/yantra-mobile/lib/screens/CanvasBoard/index.js",
|
|
@@ -463,11 +465,64 @@
|
|
|
463
465
|
"swipeEnabled": false,
|
|
464
466
|
"animation": "fade",
|
|
465
467
|
"animationTypeForReplace": "pop",
|
|
466
|
-
"keyboardHandlingEnabled": false
|
|
468
|
+
"keyboardHandlingEnabled": false,
|
|
469
|
+
"unmountOnBlur": true
|
|
467
470
|
}
|
|
468
471
|
},
|
|
469
472
|
"componentPath": "@adminide-stack/yantra-mobile/lib/screens/ShoppingNative/index.js",
|
|
470
473
|
"hasComponent": true
|
|
471
474
|
}
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"/:orgName/c/travel-native": {
|
|
478
|
+
"key": "travel-native",
|
|
479
|
+
"path": "/:orgName/c/travel-native",
|
|
480
|
+
"name": "TravelNative",
|
|
481
|
+
"exact": true,
|
|
482
|
+
"priority": 4,
|
|
483
|
+
"hideInMenu": true,
|
|
484
|
+
"auth": true,
|
|
485
|
+
"menu_position": "side",
|
|
486
|
+
"importPaths": {
|
|
487
|
+
"navigationHeader": "@adminide-stack/yantra-mobile/lib/components/NavigationHeader/NavigationHeader.js"
|
|
488
|
+
},
|
|
489
|
+
"customHeader": {
|
|
490
|
+
"name": "NavigationHeader",
|
|
491
|
+
"component": "$.importPaths.navigationHeader",
|
|
492
|
+
"props": {
|
|
493
|
+
"showTitle": true,
|
|
494
|
+
"showToggle": false,
|
|
495
|
+
"showFilter": false,
|
|
496
|
+
"isSearchBack": false,
|
|
497
|
+
"showBack": true,
|
|
498
|
+
"showGateway": false,
|
|
499
|
+
"showHistory": false,
|
|
500
|
+
"showNewChat": false
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
"props": {
|
|
504
|
+
"initialParams": {
|
|
505
|
+
"orgName": null
|
|
506
|
+
},
|
|
507
|
+
"options": {
|
|
508
|
+
"title": "Travel",
|
|
509
|
+
"headerTintColor": "black",
|
|
510
|
+
"headerTitleStyle": {
|
|
511
|
+
"fontWeight": "bold"
|
|
512
|
+
},
|
|
513
|
+
"drawerItemStyle": {
|
|
514
|
+
"display": "none"
|
|
515
|
+
},
|
|
516
|
+
"headerTitleAlign": "left",
|
|
517
|
+
"gestureEnabled": false,
|
|
518
|
+
"swipeEnabled": false,
|
|
519
|
+
"animation": "fade",
|
|
520
|
+
"animationTypeForReplace": "pop",
|
|
521
|
+
"keyboardHandlingEnabled": false
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
"componentPath": "@adminide-stack/yantra-mobile/lib/screens/TravelNative/index.js",
|
|
525
|
+
"hasComponent": true
|
|
526
|
+
}
|
|
472
527
|
}
|
|
473
528
|
]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {jsx,jsxs}from'react/jsx-runtime';import {useColorScheme,StyleSheet,View,Text}from'react-native';import {SafeAreaView}from'react-native-safe-area-context';import {useRoute}from'@react-navigation/native';import {getNativeCanvasExperience}from'../../features/canvas/nativeViewerRegistry.js';import {useCanvasSession}from'../../features/canvas/useCanvasSession.js';function CanvasBoardScreen() {
|
|
1
|
+
import {jsx,jsxs}from'react/jsx-runtime';import {useCallback}from'react';import {useColorScheme,StyleSheet,View,Text}from'react-native';import {SafeAreaView}from'react-native-safe-area-context';import {useRoute,useNavigation,useFocusEffect}from'@react-navigation/native';import {getNativeCanvasExperience}from'../../features/canvas/nativeViewerRegistry.js';import {useCanvasSession}from'../../features/canvas/useCanvasSession.js';import {resetDrawerClosed}from'../../utils/drawerNavigation.js';function CanvasBoardScreen() {
|
|
2
2
|
const route = useRoute();
|
|
3
|
+
const navigation = useNavigation();
|
|
3
4
|
const isDark = useColorScheme() === "dark";
|
|
4
5
|
const Experience = getNativeCanvasExperience();
|
|
5
6
|
const {
|
|
@@ -10,6 +11,10 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useColorScheme,StyleSheet,View,
|
|
|
10
11
|
} = useCanvasSession();
|
|
11
12
|
const params = route.params;
|
|
12
13
|
const channelId = typeof (params == null ? void 0 : params.channelId) === "string" ? params.channelId : void 0;
|
|
14
|
+
useFocusEffect(useCallback(() => {
|
|
15
|
+
resetDrawerClosed(navigation);
|
|
16
|
+
return () => resetDrawerClosed(navigation);
|
|
17
|
+
}, [navigation]));
|
|
13
18
|
if (!Experience) {
|
|
14
19
|
return /* @__PURE__ */ jsx(SafeAreaView, { style: [styles.fill, isDark && styles.fillDark], children: /* @__PURE__ */ jsxs(View, { style: styles.center, children: [
|
|
15
20
|
/* @__PURE__ */ jsx(Text, { style: [styles.title, isDark && styles.textLight], children: "Native canvas unavailable" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/screens/CanvasBoard/index.tsx"],"sourcesContent":["/**\n * Native canvas board screen.\n *\n *
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/screens/CanvasBoard/index.tsx"],"sourcesContent":["/**\n * Native canvas board screen.\n *\n * Host mints the session token and index URL; the in-binary CanvasExperience\n * loads boards and editors. Leaving the screen unmounts nested editors so the\n * home drawer overlay does not stay cut off.\n */\nimport React, { useCallback } from 'react';\nimport { StyleSheet, Text, View, useColorScheme } from 'react-native';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport { useFocusEffect, useNavigation, useRoute } from '@react-navigation/native';\nimport { getNativeCanvasExperience } from '../../features/canvas/nativeViewerRegistry';\nimport { useCanvasSession } from '../../features/canvas/useCanvasSession';\nimport { resetDrawerClosed } from '../../utils/drawerNavigation';\n\nexport interface CanvasBoardRouteParams {\n /** Open a specific board from the index; otherwise the newest one opens. */\n channelId?: string;\n}\n\nexport default function CanvasBoardScreen() {\n const route = useRoute();\n const navigation = useNavigation();\n const isDark = useColorScheme() === 'dark';\n const Experience = getNativeCanvasExperience();\n const { token, indexUrl, error, ready } = useCanvasSession();\n\n const params = route.params as CanvasBoardRouteParams | undefined;\n const channelId = typeof params?.channelId === 'string' ? params.channelId : undefined;\n\n useFocusEffect(\n useCallback(() => {\n resetDrawerClosed(navigation);\n return () => resetDrawerClosed(navigation);\n }, [navigation]),\n );\n\n if (!Experience) {\n // A build without the federation host (or before App registered it).\n // Say so instead of rendering a blank screen.\n return (\n <SafeAreaView style={[styles.fill, isDark && styles.fillDark]}>\n <View style={styles.center}>\n <Text style={[styles.title, isDark && styles.textLight]}>Native canvas unavailable</Text>\n <Text style={[styles.detail, isDark && styles.textMuted]}>\n This build does not carry the federation host runtime.\n </Text>\n </View>\n </SafeAreaView>\n );\n }\n\n return (\n <SafeAreaView style={[styles.fill, isDark && styles.fillDark]} edges={['left', 'right']}>\n <Experience\n token={token}\n indexUrl={indexUrl}\n channelId={channelId}\n // Until the mint settles, `sessionError` stays null so the remote\n // shows its loading state rather than flashing a failure.\n sessionError={ready ? error : null}\n />\n </SafeAreaView>\n );\n}\n\nconst styles = StyleSheet.create({\n fill: { flex: 1, backgroundColor: '#f8fafc' },\n fillDark: { backgroundColor: '#0f172a' },\n center: { flex: 1, alignItems: 'center', justifyContent: 'center', padding: 24 },\n title: { fontSize: 15, fontWeight: '600', color: '#0f172a', marginBottom: 6 },\n detail: { fontSize: 13, color: '#64748b', textAlign: 'center' },\n textLight: { color: '#f8fafc' },\n textMuted: { color: '#94a3b8' },\n});\n"],"names":[],"mappings":"8eAkBA,SAAwB,iBAAoB,GAAA;AAC1C,EAAA,MAAM,QAAQ,QAAS,EAAA;AACvB,EAAA,MAAM,aAAa,aAAc,EAAA;AACjC,EAAM,MAAA,MAAA,GAAS,gBAAqB,KAAA,MAAA;AACpC,EAAA,MAAM,aAAa,yBAA0B,EAAA;AAC7C,EAAM,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,MACE,gBAAiB,EAAA;AACrB,EAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,EAAA,MAAM,YAAY,QAAO,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,SAAc,CAAA,KAAA,QAAA,GAAW,OAAO,SAAY,GAAA,MAAA;AAC7E,EAAA,cAAA,CAAe,YAAY,MAAM;AAC/B,IAAA,iBAAA,CAAkB,UAAU,CAAA;AAC5B,IAAO,OAAA,MAAM,kBAAkB,UAAU,CAAA;AAAA,GACxC,EAAA,CAAC,UAAU,CAAC,CAAC,CAAA;AAChB,EAAA,IAAI,CAAC,UAAY,EAAA;AAGf,IAAA,uBAAQ,GAAA,CAAA,YAAA,EAAA,EAAa,KAAO,EAAA,CAAC,OAAO,IAAM,EAAA,MAAA,IAAU,MAAO,CAAA,QAAQ,CACvD,EAAA,QAAA,kBAAA,IAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAO,OAAO,MAChB,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,IAAA,EAAA,EAAK,OAAO,CAAC,MAAA,CAAO,OAAO,MAAU,IAAA,MAAA,CAAO,SAAS,CAAA,EAAG,QAAyB,EAAA,2BAAA,EAAA,CAAA;AAAA,sBAClF,GAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAO,CAAC,MAAA,CAAO,QAAQ,MAAU,IAAA,MAAA,CAAO,SAAS,CAAA,EAAG,QAE1D,EAAA,wDAAA,EAAA;AAAA,KAAA,EACJ,CACJ,EAAA,CAAA;AAAA;AAEV,EAAA,uBAAQ,GAAA,CAAA,YAAA,EAAA,EAAa,KAAO,EAAA,CAAC,OAAO,IAAM,EAAA,MAAA,IAAU,MAAO,CAAA,QAAQ,CAAG,EAAA,KAAA,EAAO,CAAC,MAAA,EAAQ,OAAO,CACnF,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MAAW,KAAA;AAAA,MAAc,QAAA;AAAA,MAAoB,SAAA;AAAA,MAGtD,YAAA,EAAc,QAAQ,KAAQ,GAAA;AAAA;AAAA,GAC1B,EAAA,CAAA;AACR;AACA,MAAM,MAAA,GAAS,WAAW,MAAO,CAAA;AAAA,EAC/B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,CAAA;AAAA,IACN,eAAiB,EAAA;AAAA,GACnB;AAAA,EACA,QAAU,EAAA;AAAA,IACR,eAAiB,EAAA;AAAA,GACnB;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,CAAA;AAAA,IACN,UAAY,EAAA,QAAA;AAAA,IACZ,cAAgB,EAAA,QAAA;AAAA,IAChB,OAAS,EAAA;AAAA,GACX;AAAA,EACA,KAAO,EAAA;AAAA,IACL,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA,KAAA;AAAA,IACZ,KAAO,EAAA,SAAA;AAAA,IACP,YAAc,EAAA;AAAA,GAChB;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,QAAU,EAAA,EAAA;AAAA,IACV,KAAO,EAAA,SAAA;AAAA,IACP,SAAW,EAAA;AAAA,GACb;AAAA,EACA,SAAW,EAAA;AAAA,IACT,KAAO,EAAA;AAAA,GACT;AAAA,EACA,SAAW,EAAA;AAAA,IACT,KAAO,EAAA;AAAA;AAEX,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import React,{useRef,useState,useCallback,useEffect,useMemo}from'react';import {useWindowDimensions,useColorScheme,Keyboard,View,StyleSheet,ScrollView,Pressable,Platform}from'react-native';import {dismissKeyboard}from'../../utils/keyboardController.js';import {getDefaultLeftItems,Text,InputToolBar}from'@admin-layout/gluestack-ui-mobile';import {useSafeAreaInsets,SafeAreaView}from'react-native-safe-area-context';import {useNavigation,useRoute,useFocusEffect,CommonActions}from'@react-navigation/native';import {KeyboardAwareScreen,KeyboardComposerDock}from'../../components/KeyboardComposerDock.js';import {useKeyboardBottomOffset}from'../../hooks/useKeyboardBottomOffset.js';import {useDispatch,useSelector}from'react-redux';import {v4}from'uuid';import {usePrerequisiteIds}from'../../hooks/usePrerequisiteIds.js';import {syncMobileOrgRouteContext}from'../../utils/syncMobileOrgRouteContext.js';import {useChatMutations,usePrefetchChatHistory}from'../../hooks/useChatApi.js';import {hydrateChatHistorySnapshot,persistChatHistorySnapshot}from'../../features/chat/chatHistorySnapshot.js';import {AudioRecorderPanel}from'../../features/audio-input/AudioRecorderPanel.js';import {MicErrorBoundary}from'../../features/audio-input/MicErrorBoundary.js';import {requestMicPermission}from'../../features/audio-input/useAudioPermission.js';import {mobileTokens}from'../../theme/mobileTokens.js';import {useMarketplaceTemplateGroups}from'../../hooks/useMarketplaceTemplateGroups.js';import {useImageAttachments}from'../../features/attachments/useImageAttachments.js';import {ComposerAttachmentBar}from'../../features/attachments/ComposerAttachmentBar.js';import {useComposerAttachMenu}from'../../features/attachments/ComposerAttachMenu.js';import {stashComposerAttachments}from'../../features/attachments/composerAttachmentHandoff.js';import {BuildTemplatesSection}from'./components/BuildTemplatesSection.js';import {ChooseTemplateModal}from'./components/ChooseTemplateModal.js';import {HomeSuggestions}from'./components/HomeSuggestions.js';import {WebBuilderPrewarm}from'./components/WebBuilderPrewarm.js';import {CanvasPrewarm}from'./components/CanvasPrewarm.js';import {shouldRedirectToShop}from'../../features/shopping/chat/homeShoppingIntent.js';import {openShopFromHome,shopHandoffParams}from'../../features/shopping/chat/openShopNative.js';var __defProp = Object.defineProperty;
|
|
1
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import React,{useRef,useState,useCallback,useEffect,useMemo}from'react';import {useWindowDimensions,useColorScheme,InteractionManager,Keyboard,View,StyleSheet,ScrollView,Pressable,Platform}from'react-native';import {dismissKeyboard}from'../../utils/keyboardController.js';import {getDefaultLeftItems,Text,InputToolBar}from'@admin-layout/gluestack-ui-mobile';import {useSafeAreaInsets,SafeAreaView}from'react-native-safe-area-context';import {useNavigation,useRoute,useFocusEffect,CommonActions}from'@react-navigation/native';import {KeyboardAwareScreen,KeyboardComposerDock}from'../../components/KeyboardComposerDock.js';import {useKeyboardBottomOffset}from'../../hooks/useKeyboardBottomOffset.js';import {useDispatch,useSelector}from'react-redux';import {v4}from'uuid';import {usePrerequisiteIds}from'../../hooks/usePrerequisiteIds.js';import {syncMobileOrgRouteContext}from'../../utils/syncMobileOrgRouteContext.js';import {useChatMutations,usePrefetchChatHistory}from'../../hooks/useChatApi.js';import {hydrateChatHistorySnapshot,persistChatHistorySnapshot}from'../../features/chat/chatHistorySnapshot.js';import {AudioRecorderPanel}from'../../features/audio-input/AudioRecorderPanel.js';import {MicErrorBoundary}from'../../features/audio-input/MicErrorBoundary.js';import {requestMicPermission}from'../../features/audio-input/useAudioPermission.js';import {mobileTokens}from'../../theme/mobileTokens.js';import {useMarketplaceTemplateGroups}from'../../hooks/useMarketplaceTemplateGroups.js';import {useImageAttachments}from'../../features/attachments/useImageAttachments.js';import {ComposerAttachmentBar}from'../../features/attachments/ComposerAttachmentBar.js';import {useComposerAttachMenu}from'../../features/attachments/ComposerAttachMenu.js';import {stashComposerAttachments}from'../../features/attachments/composerAttachmentHandoff.js';import {BuildTemplatesSection}from'./components/BuildTemplatesSection.js';import {ChooseTemplateModal}from'./components/ChooseTemplateModal.js';import {HomeSuggestions}from'./components/HomeSuggestions.js';import {WebBuilderPrewarm}from'./components/WebBuilderPrewarm.js';import {CanvasPrewarm}from'./components/CanvasPrewarm.js';import {shouldRedirectToShop}from'../../features/shopping/chat/homeShoppingIntent.js';import {openShopFromHome,shopHandoffParams}from'../../features/shopping/chat/openShopNative.js';import {resetDrawerClosed,dispatchDrawerAction,afterNativeModalClose}from'../../utils/drawerNavigation.js';var __defProp = Object.defineProperty;
|
|
2
2
|
var __defProps = Object.defineProperties;
|
|
3
3
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
4
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -51,7 +51,7 @@ function HomeScreenContent({
|
|
|
51
51
|
isLoading: isLoadingProp = false,
|
|
52
52
|
disabled = false
|
|
53
53
|
}) {
|
|
54
|
-
var _a, _b, _c, _d, _e, _f;
|
|
54
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
55
55
|
const {
|
|
56
56
|
width: screenWidth
|
|
57
57
|
} = useWindowDimensions();
|
|
@@ -76,11 +76,25 @@ function HomeScreenContent({
|
|
|
76
76
|
(_a2 = inputRef.current) == null ? void 0 : _a2.clear();
|
|
77
77
|
}, []);
|
|
78
78
|
useFocusEffect(useCallback(() => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
var _a2, _b2;
|
|
80
|
+
resetDrawerClosed(navigation);
|
|
81
|
+
const task = InteractionManager.runAfterInteractions(() => {
|
|
82
|
+
resetDrawerClosed(navigation);
|
|
83
|
+
});
|
|
84
|
+
if ((_a2 = route == null ? void 0 : route.params) == null ? void 0 : _a2.hideNavigationHeader) {
|
|
85
|
+
(_b2 = navigation.setParams) == null ? void 0 : _b2.call(navigation, {
|
|
86
|
+
hideNavigationHeader: void 0
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (clearComposerOnFocusRef.current) {
|
|
90
|
+
clearComposerOnFocusRef.current = false;
|
|
91
|
+
resetComposer();
|
|
92
|
+
}
|
|
93
|
+
return () => {
|
|
94
|
+
task.cancel();
|
|
95
|
+
dispatchDrawerAction(navigation, "close");
|
|
96
|
+
};
|
|
97
|
+
}, [navigation, resetComposer, (_a = route == null ? void 0 : route.params) == null ? void 0 : _a.hideNavigationHeader]));
|
|
84
98
|
const [activeMode, setActiveMode] = useState(initialMode);
|
|
85
99
|
const [showAudioRecorder, setShowAudioRecorder] = useState(false);
|
|
86
100
|
const [selectedTemplateGroup, setSelectedTemplateGroup] = useState(null);
|
|
@@ -93,7 +107,7 @@ function HomeScreenContent({
|
|
|
93
107
|
menu: attachMenu
|
|
94
108
|
} = useComposerAttachMenu(composerAttachments, isDark);
|
|
95
109
|
const clearComposerAttachments = composerAttachments.clear;
|
|
96
|
-
const newChatNonce = (
|
|
110
|
+
const newChatNonce = (_b = route == null ? void 0 : route.params) == null ? void 0 : _b.newChatNonce;
|
|
97
111
|
useEffect(() => {
|
|
98
112
|
var _a2;
|
|
99
113
|
if (newChatNonce == null) return;
|
|
@@ -120,7 +134,7 @@ function HomeScreenContent({
|
|
|
120
134
|
loading: prerequisitesLoading,
|
|
121
135
|
orgLoading
|
|
122
136
|
} = usePrerequisiteIds();
|
|
123
|
-
const routeOrgName = ((
|
|
137
|
+
const routeOrgName = ((_d = (_c = route == null ? void 0 : route.params) == null ? void 0 : _c.orgName) != null ? _d : "").trim() || null;
|
|
124
138
|
const effectiveOrgName = resolvedOrgName || routeOrgName || null;
|
|
125
139
|
const effectiveProjectId = projectId || null;
|
|
126
140
|
const {
|
|
@@ -195,13 +209,16 @@ function HomeScreenContent({
|
|
|
195
209
|
}));
|
|
196
210
|
}, [navigation, effectiveOrgName, routeOrgName]);
|
|
197
211
|
const handleOpenRoute = React.useCallback((name) => {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
212
|
+
dispatchDrawerAction(navigation, "close");
|
|
213
|
+
afterNativeModalClose(() => {
|
|
214
|
+
var _a2;
|
|
215
|
+
navigation.dispatch(CommonActions.navigate({
|
|
216
|
+
name,
|
|
217
|
+
params: {
|
|
218
|
+
orgName: (_a2 = effectiveOrgName != null ? effectiveOrgName : routeOrgName) != null ? _a2 : void 0
|
|
219
|
+
}
|
|
220
|
+
}));
|
|
221
|
+
});
|
|
205
222
|
}, [navigation, effectiveOrgName, routeOrgName]);
|
|
206
223
|
const navigateToWebBuilder = useCallback((channelId, handoff) => {
|
|
207
224
|
var _a2, _b2;
|
|
@@ -353,7 +370,7 @@ function HomeScreenContent({
|
|
|
353
370
|
}),
|
|
354
371
|
merge: true
|
|
355
372
|
}));
|
|
356
|
-
}, [dispatch, navigation, route == null ? void 0 : route.name, route == null ? void 0 : route.params, (
|
|
373
|
+
}, [dispatch, navigation, route == null ? void 0 : route.name, route == null ? void 0 : route.params, (_e = route == null ? void 0 : route.params) == null ? void 0 : _e.orgName, resolvedOrgName, accountUserId, mobileRoutePath, orgLoading]);
|
|
357
374
|
const handleValueChange = useCallback((e) => {
|
|
358
375
|
setValue(e.nativeEvent.text);
|
|
359
376
|
}, []);
|
|
@@ -467,7 +484,7 @@ function HomeScreenContent({
|
|
|
467
484
|
/* @__PURE__ */ jsx(WebBuilderPrewarm, { enabled: isBuildMode, orgName: effectiveOrgName, projectId: effectiveProjectId, tagId }),
|
|
468
485
|
/* @__PURE__ */ jsx(CanvasPrewarm, { orgName: effectiveOrgName, projectId: effectiveProjectId, tagId }),
|
|
469
486
|
/* @__PURE__ */ jsx(KeyboardAwareScreen, { children: /* @__PURE__ */ jsxs(View, { style: styles.flex, children: [
|
|
470
|
-
/* @__PURE__ */ jsx(View, { style: styles.flex, children: /* @__PURE__ */ jsx(ScrollView, { ref: emptyScrollRef, style: styles.flex, contentContainerStyle: [styles.emptyScroll, keyboardVisible ? styles.emptyScrollKeyboardOpen : null], keyboardShouldPersistTaps: "handled", keyboardDismissMode: Platform.OS === "ios" ? "interactive" : "on-drag", automaticallyAdjustKeyboardInsets: false, contentInsetAdjustmentBehavior: "never", showsVerticalScrollIndicator: false, children: /* @__PURE__ */ jsx(Pressable, { style: styles.dismissArea, onPress: dismissKeyboard, accessible: false, children: /* @__PURE__ */ jsx(EmptyStateSection, { isDark, secondaryTextColor, primaryTextColor, activeMode, selectedTemplateGroup, selectedBuildTemplateId: (
|
|
487
|
+
/* @__PURE__ */ jsx(View, { style: styles.flex, children: /* @__PURE__ */ jsx(ScrollView, { ref: emptyScrollRef, style: styles.flex, contentContainerStyle: [styles.emptyScroll, keyboardVisible ? styles.emptyScrollKeyboardOpen : null], keyboardShouldPersistTaps: "handled", keyboardDismissMode: Platform.OS === "ios" ? "interactive" : "on-drag", automaticallyAdjustKeyboardInsets: false, contentInsetAdjustmentBehavior: "never", showsVerticalScrollIndicator: false, children: /* @__PURE__ */ jsx(Pressable, { style: styles.dismissArea, onPress: dismissKeyboard, accessible: false, children: /* @__PURE__ */ jsx(EmptyStateSection, { isDark, secondaryTextColor, primaryTextColor, activeMode, selectedTemplateGroup, selectedBuildTemplateId: (_f = selectedBuildTemplate == null ? void 0 : selectedBuildTemplate.id) != null ? _f : null, compact: keyboardVisible, onInjectPrompt: handleInjectPrompt, onOpenRoute: handleOpenRoute }) }) }) }),
|
|
471
488
|
/* @__PURE__ */ jsx(KeyboardComposerDock, { closedInset: insets.bottom, onSwipeUp: () => {
|
|
472
489
|
var _a2;
|
|
473
490
|
return (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
@@ -484,7 +501,7 @@ function HomeScreenContent({
|
|
|
484
501
|
/* @__PURE__ */ jsx(ComposerAttachmentBar, { attachments: composerAttachments.pending, onRemove: composerAttachments.remove, isDark }),
|
|
485
502
|
/* @__PURE__ */ jsx(InputToolBar, { inputConfig, leftItems, rightItems, templateButton, templateModalConfig, templateModalRender: renderTemplateModal, micSendButton }, composerEpoch)
|
|
486
503
|
] }),
|
|
487
|
-
isBuildMode ? /* @__PURE__ */ jsx(BuildTemplatesSection, { enabled: true, compact: keyboardVisible, group: selectedTemplateGroup, orgName: effectiveOrgName, isDark, primaryTextColor, secondaryTextColor, selectedTemplateId: (
|
|
504
|
+
isBuildMode ? /* @__PURE__ */ jsx(BuildTemplatesSection, { enabled: true, compact: keyboardVisible, group: selectedTemplateGroup, orgName: effectiveOrgName, isDark, primaryTextColor, secondaryTextColor, selectedTemplateId: (_g = selectedBuildTemplate == null ? void 0 : selectedBuildTemplate.id) != null ? _g : null, onUseTemplate: handleUseBuildTemplate }) : null
|
|
488
505
|
] }) })
|
|
489
506
|
] }) }),
|
|
490
507
|
attachMenu
|