@adminide-stack/yantra-mobile 12.0.49 → 12.0.50-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.
- package/lib/bridge/NativeWebViewBridge.js +14 -1
- package/lib/bridge/NativeWebViewBridge.js.map +1 -1
- package/lib/components/KeyboardComposerDock.js +23 -17
- package/lib/components/KeyboardComposerDock.js.map +1 -1
- package/lib/features/apps/AppsCatalog.js +9 -0
- package/lib/features/apps/AppsCatalog.js.map +1 -1
- package/lib/features/chat/ChatTranscript.js +16 -8
- package/lib/features/chat/ChatTranscript.js.map +1 -1
- package/lib/features/skills/skillTemplates.js.map +1 -1
- package/lib/hooks/useChatStream.js +30 -6
- package/lib/hooks/useChatStream.js.map +1 -1
- package/lib/screens/Chat/index.js +5 -8
- package/lib/screens/Chat/index.js.map +1 -1
- package/lib/screens/Home/HomeScreen.js +7 -17
- package/lib/screens/Home/HomeScreen.js.map +1 -1
- package/lib/screens/Home/components/DeepSearchModal.js +1 -1
- package/lib/screens/Home/components/DeepSearchModal.js.map +1 -1
- package/lib/screens/Home/components/WebBuilderPrewarm.js +4 -47
- package/lib/screens/Home/components/WebBuilderPrewarm.js.map +1 -1
- package/lib/screens/WebBuilder/webbuilderWarmCache.js +1 -15
- package/lib/screens/WebBuilder/webbuilderWarmCache.js.map +1 -1
- package/package.json +4 -4
- package/lib/hooks/useKeyboardBottomOffset.js +0 -42
- package/lib/hooks/useKeyboardBottomOffset.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webbuilderWarmCache.js","sources":["../../../src/screens/WebBuilder/webbuilderWarmCache.ts"],"sourcesContent":["/**\n * Background warm cache for Web Builder surface auth.\n * Home (Build mode) mints ahead of time so navigate → WebView skips the\n * full-screen \"Preparing Web Builder…\" gate.\n */\n\nexport type WarmWebBuilderSession = {\n token: string;\n backend: string;\n warmedAt: number;\n};\n\nconst TTL_MS = 45 * 60 * 1000;\n\nlet session: WarmWebBuilderSession | null = null;\nlet inflight: { backend: string; promise: Promise<WarmWebBuilderSession> } | null = null;\n\nfunction backendsMatch(a: string, b: string): boolean {\n return a.trim().replace(/\\/$/, '') === b.trim().replace(/\\/$/, '');\n}\n\nexport function getWarmWebBuilderSession(backend?: string): WarmWebBuilderSession | null {\n if (!session?.token?.trim()) return null;\n if (Date.now() - session.warmedAt > TTL_MS) {\n session = null;\n return null;\n }\n if (backend && !backendsMatch(session.backend, backend)) return null;\n return session;\n}\n\nexport function setWarmWebBuilderSession(next: WarmWebBuilderSession): void {\n session = {\n token: next.token.trim(),\n backend: next.backend.trim(),\n warmedAt: next.warmedAt || Date.now(),\n };\n}\n\nexport function clearWarmWebBuilderSession(): void {\n session = null;\n inflight = null;\n}\n\nexport type WarmWebBuilderInput = {\n graphqlUrl: string;\n orgName?: string | null;\n projectId?: string | null;\n tagId?: string | null;\n /** Prefer Apollo mint when provided (same session as chat). */\n obtainSystemToken?: () => Promise<string | null>;\n /**\n * Mint against `graphqlUrl`'s own org/project/env. Used when the surface\n * index lives on a different cluster than the mobile GRAPHQL_URL (canvas).\n */\n discoverScope?: boolean;\n};\n\n/**\n * Ensure a system JWT + backend URL are ready for the WebBuilder WebView.\n * Dedupes concurrent callers (Home prewarm + WebBuilder mount).\n */\nexport async function warmWebBuilderSession(input: WarmWebBuilderInput): Promise<WarmWebBuilderSession> {\n const backend = (input.graphqlUrl || '').trim();\n const existing = getWarmWebBuilderSession(backend);\n if (existing) return existing;\n if (inflight && inflight.backend === backend) return inflight.promise;\n\n const promise = (async () => {\n if (!backend) {\n throw new Error('GRAPHQL_URL is not configured');\n }\n\n let token: string | null = null;\n let apolloAttempted = false;\n if (input.obtainSystemToken && !input.discoverScope) {\n apolloAttempted = true;\n try {\n token = (await input.obtainSystemToken())?.trim() || null;\n } catch (err) {\n if (__DEV__) {\n // eslint-disable-next-line no-console\n console.warn('[WebBuilderWarm] Apollo mint failed, trying raw GraphQL:', err);\n }\n }\n }\n\n if (!token) {\n // Raw mint must send ismobile+authstrategy (see mintSurfaceSystemToken).\n // Prefer Apollo when org/project are ready — avoid racing raw mint before session is hydrated.\n if (apolloAttempted && !input.discoverScope && (!input.orgName?.trim() || !input.projectId?.trim())) {\n throw new Error('Waiting for org/project before minting Web Builder token');\n }\n const { mintSurfaceSystemToken } = await import('../../hooks/mintSurfaceSystemToken');\n const minted = await mintSurfaceSystemToken({\n graphqlUrl: backend,\n orgName: input.orgName,\n projectId: input.projectId,\n tagId: input.tagId,\n discoverScope: input.discoverScope,\n });\n token = minted.token.trim();\n }\n\n if (!token) {\n throw new Error('Could not obtain system token for Web Builder');\n }\n\n const next: WarmWebBuilderSession = {\n token,\n backend: backend,\n warmedAt: Date.now(),\n };\n setWarmWebBuilderSession(next);\n return next;\n })().finally(() => {\n if (inflight?.promise === promise) inflight = null;\n });\n inflight = { backend, promise };\n return promise;\n}\n\n/** Stable surface origin for background preload (no handoff query yet). */\nexport function webbuilderPreloadUrl(surfaceBase: string): string {\n const raw = (surfaceBase || '').trim() || 'http://localhost:5174/';\n try {\n const url = new URL(raw);\n url.searchParams.set('embed', 'mobile');\n // Drop any leftover handoff from a previous session.\n for (const key of [\n 'message',\n 'snapshotId',\n 'channelId',\n 'projectId',\n 'templateId',\n 'templateTitle',\n 'seedTemplate',\n 'token',\n 'code',\n 'state',\n ]) {\n url.searchParams.delete(key);\n }\n return url.toString();\n } catch {\n const sep = raw.includes('?') ? '&' : '?';\n return `${raw}${sep}embed=mobile`;\n }\n}\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"webbuilderWarmCache.js","sources":["../../../src/screens/WebBuilder/webbuilderWarmCache.ts"],"sourcesContent":["/**\n * Background warm cache for Web Builder surface auth.\n * Home (Build mode) mints ahead of time so navigate → WebView skips the\n * full-screen \"Preparing Web Builder…\" gate.\n */\n\nexport type WarmWebBuilderSession = {\n token: string;\n backend: string;\n warmedAt: number;\n};\n\nconst TTL_MS = 45 * 60 * 1000;\n\nlet session: WarmWebBuilderSession | null = null;\nlet inflight: { backend: string; promise: Promise<WarmWebBuilderSession> } | null = null;\n\nfunction backendsMatch(a: string, b: string): boolean {\n return a.trim().replace(/\\/$/, '') === b.trim().replace(/\\/$/, '');\n}\n\nexport function getWarmWebBuilderSession(backend?: string): WarmWebBuilderSession | null {\n if (!session?.token?.trim()) return null;\n if (Date.now() - session.warmedAt > TTL_MS) {\n session = null;\n return null;\n }\n if (backend && !backendsMatch(session.backend, backend)) return null;\n return session;\n}\n\nexport function setWarmWebBuilderSession(next: WarmWebBuilderSession): void {\n session = {\n token: next.token.trim(),\n backend: next.backend.trim(),\n warmedAt: next.warmedAt || Date.now(),\n };\n}\n\nexport function clearWarmWebBuilderSession(): void {\n session = null;\n inflight = null;\n}\n\nexport type WarmWebBuilderInput = {\n graphqlUrl: string;\n orgName?: string | null;\n projectId?: string | null;\n tagId?: string | null;\n /** Prefer Apollo mint when provided (same session as chat). */\n obtainSystemToken?: () => Promise<string | null>;\n /**\n * Mint against `graphqlUrl`'s own org/project/env. Used when the surface\n * index lives on a different cluster than the mobile GRAPHQL_URL (canvas).\n */\n discoverScope?: boolean;\n};\n\n/**\n * Ensure a system JWT + backend URL are ready for the WebBuilder WebView.\n * Dedupes concurrent callers (Home prewarm + WebBuilder mount).\n */\nexport async function warmWebBuilderSession(input: WarmWebBuilderInput): Promise<WarmWebBuilderSession> {\n const backend = (input.graphqlUrl || '').trim();\n const existing = getWarmWebBuilderSession(backend);\n if (existing) return existing;\n if (inflight && inflight.backend === backend) return inflight.promise;\n\n const promise = (async () => {\n if (!backend) {\n throw new Error('GRAPHQL_URL is not configured');\n }\n\n let token: string | null = null;\n let apolloAttempted = false;\n if (input.obtainSystemToken && !input.discoverScope) {\n apolloAttempted = true;\n try {\n token = (await input.obtainSystemToken())?.trim() || null;\n } catch (err) {\n if (__DEV__) {\n // eslint-disable-next-line no-console\n console.warn('[WebBuilderWarm] Apollo mint failed, trying raw GraphQL:', err);\n }\n }\n }\n\n if (!token) {\n // Raw mint must send ismobile+authstrategy (see mintSurfaceSystemToken).\n // Prefer Apollo when org/project are ready — avoid racing raw mint before session is hydrated.\n if (apolloAttempted && !input.discoverScope && (!input.orgName?.trim() || !input.projectId?.trim())) {\n throw new Error('Waiting for org/project before minting Web Builder token');\n }\n const { mintSurfaceSystemToken } = await import('../../hooks/mintSurfaceSystemToken');\n const minted = await mintSurfaceSystemToken({\n graphqlUrl: backend,\n orgName: input.orgName,\n projectId: input.projectId,\n tagId: input.tagId,\n discoverScope: input.discoverScope,\n });\n token = minted.token.trim();\n }\n\n if (!token) {\n throw new Error('Could not obtain system token for Web Builder');\n }\n\n const next: WarmWebBuilderSession = {\n token,\n backend: backend,\n warmedAt: Date.now(),\n };\n setWarmWebBuilderSession(next);\n return next;\n })().finally(() => {\n if (inflight?.promise === promise) inflight = null;\n });\n inflight = { backend, promise };\n return promise;\n}\n\n/** Stable surface origin for background preload (no handoff query yet). */\nexport function webbuilderPreloadUrl(surfaceBase: string): string {\n const raw = (surfaceBase || '').trim() || 'http://localhost:5174/';\n try {\n const url = new URL(raw);\n url.searchParams.set('embed', 'mobile');\n // Drop any leftover handoff from a previous session.\n for (const key of [\n 'message',\n 'snapshotId',\n 'channelId',\n 'projectId',\n 'templateId',\n 'templateTitle',\n 'seedTemplate',\n 'token',\n 'code',\n 'state',\n ]) {\n url.searchParams.delete(key);\n }\n return url.toString();\n } catch {\n const sep = raw.includes('?') ? '&' : '?';\n return `${raw}${sep}embed=mobile`;\n }\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adminide-stack/yantra-mobile",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.50-alpha.0",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"uuid": "^9.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"common": "
|
|
28
|
+
"common": "12.0.49-alpha.1"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@admin-layout/gluestack-ui-mobile": "*",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@messenger-box/platform-mobile": "*",
|
|
42
42
|
"@react-native-async-storage/async-storage": "*",
|
|
43
43
|
"@react-navigation/native": "*",
|
|
44
|
-
"common": "12.0.
|
|
44
|
+
"common": "12.0.49-alpha.1",
|
|
45
45
|
"expo-constants": "*",
|
|
46
46
|
"expo-secure-store": "*",
|
|
47
47
|
"lodash": "*",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"typescript": {
|
|
57
57
|
"definition": "lib/index.d.ts"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "56d77a77cf9d30a0f4c697f04ea4dbbbc5bde84b"
|
|
60
60
|
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import {useState,useEffect}from'react';import {Platform,Keyboard,LayoutAnimation}from'react-native';function syncNextLayoutToKeyboard(event) {
|
|
2
|
-
if (Platform.OS !== "ios") return;
|
|
3
|
-
const duration = (event == null ? void 0 : event.duration) && event.duration > 0 ? event.duration : 250;
|
|
4
|
-
LayoutAnimation.configureNext({
|
|
5
|
-
duration,
|
|
6
|
-
create: {
|
|
7
|
-
type: LayoutAnimation.Types.keyboard,
|
|
8
|
-
property: LayoutAnimation.Properties.opacity
|
|
9
|
-
},
|
|
10
|
-
update: {
|
|
11
|
-
type: LayoutAnimation.Types.keyboard
|
|
12
|
-
},
|
|
13
|
-
delete: {
|
|
14
|
-
type: LayoutAnimation.Types.keyboard,
|
|
15
|
-
property: LayoutAnimation.Properties.opacity
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
function useKeyboardBottomOffset() {
|
|
20
|
-
const [keyboardHeight, setKeyboardHeight] = useState(0);
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
const showEvent = Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
|
|
23
|
-
const hideEvent = Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide";
|
|
24
|
-
const show = Keyboard.addListener(showEvent, (event) => {
|
|
25
|
-
var _a, _b;
|
|
26
|
-
syncNextLayoutToKeyboard(event);
|
|
27
|
-
setKeyboardHeight((_b = (_a = event.endCoordinates) == null ? void 0 : _a.height) != null ? _b : 0);
|
|
28
|
-
});
|
|
29
|
-
const hide = Keyboard.addListener(hideEvent, (event) => {
|
|
30
|
-
syncNextLayoutToKeyboard(event);
|
|
31
|
-
setKeyboardHeight(0);
|
|
32
|
-
});
|
|
33
|
-
return () => {
|
|
34
|
-
show.remove();
|
|
35
|
-
hide.remove();
|
|
36
|
-
};
|
|
37
|
-
}, []);
|
|
38
|
-
return {
|
|
39
|
-
keyboardHeight,
|
|
40
|
-
keyboardVisible: keyboardHeight > 0
|
|
41
|
-
};
|
|
42
|
-
}export{useKeyboardBottomOffset};//# sourceMappingURL=useKeyboardBottomOffset.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardBottomOffset.js","sources":["../../src/hooks/useKeyboardBottomOffset.ts"],"sourcesContent":["/**\n * Keyboard visibility for compacting chrome (suggestions, template peeks).\n * Composer lift is handled by KeyboardComposerDock, not this hook.\n */\nimport { useEffect, useState } from 'react';\nimport { Keyboard, LayoutAnimation, Platform, type KeyboardEvent } from 'react-native';\n\nexport type KeyboardBottomOffset = {\n keyboardHeight: number;\n keyboardVisible: boolean;\n};\n\n/**\n * Animate the NEXT layout pass with the keyboard's own duration and curve, so\n * everything laid out off this hook (list padding, compacted chrome) glides in\n * sync with the keyboard instead of snapping. iOS supplies duration/easing on\n * the event; Android's softwareKeyboardLayoutMode=\"resize\" already animates\n * the window resize itself.\n */\nfunction syncNextLayoutToKeyboard(event: KeyboardEvent) {\n if (Platform.OS !== 'ios') return;\n const duration = event?.duration && event.duration > 0 ? event.duration : 250;\n LayoutAnimation.configureNext({\n duration,\n create: { type: LayoutAnimation.Types.keyboard, property: LayoutAnimation.Properties.opacity },\n update: { type: LayoutAnimation.Types.keyboard },\n delete: { type: LayoutAnimation.Types.keyboard, property: LayoutAnimation.Properties.opacity },\n });\n}\n\nexport function useKeyboardBottomOffset(): KeyboardBottomOffset {\n const [keyboardHeight, setKeyboardHeight] = useState(0);\n\n useEffect(() => {\n const showEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';\n const hideEvent = Platform.OS === 'ios' ? 'keyboardWillHide' : 'keyboardDidHide';\n\n const show = Keyboard.addListener(showEvent, (event) => {\n syncNextLayoutToKeyboard(event);\n setKeyboardHeight(event.endCoordinates?.height ?? 0);\n });\n const hide = Keyboard.addListener(hideEvent, (event) => {\n syncNextLayoutToKeyboard(event);\n setKeyboardHeight(0);\n });\n\n return () => {\n show.remove();\n hide.remove();\n };\n }, []);\n\n return {\n keyboardHeight,\n keyboardVisible: keyboardHeight > 0,\n };\n}\n"],"names":[],"mappings":"oGAkBA,SAAS,yBAAyB,KAAsB,EAAA;AACtD,EAAI,IAAA,QAAA,CAAS,OAAO,KAAO,EAAA;AAC3B,EAAA,MAAM,YAAW,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,QAAA,KAAY,MAAM,QAAW,GAAA,CAAA,GAAI,MAAM,QAAW,GAAA,GAAA;AAC1E,EAAA,eAAA,CAAgB,aAAc,CAAA;AAAA,IAC5B,QAAA;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAA,EAAM,gBAAgB,KAAM,CAAA,QAAA;AAAA,MAC5B,QAAA,EAAU,gBAAgB,UAAW,CAAA;AAAA,KACvC;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAA,EAAM,gBAAgB,KAAM,CAAA;AAAA,KAC9B;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAA,EAAM,gBAAgB,KAAM,CAAA,QAAA;AAAA,MAC5B,QAAA,EAAU,gBAAgB,UAAW,CAAA;AAAA;AACvC,GACD,CAAA;AACH;AACO,SAAS,uBAAgD,GAAA;AAC9D,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,CAAC,CAAA;AACtD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,SAAY,GAAA,QAAA,CAAS,EAAO,KAAA,KAAA,GAAQ,kBAAqB,GAAA,iBAAA;AAC/D,IAAA,MAAM,SAAY,GAAA,QAAA,CAAS,EAAO,KAAA,KAAA,GAAQ,kBAAqB,GAAA,iBAAA;AAC/D,IAAA,MAAM,IAAO,GAAA,QAAA,CAAS,WAAY,CAAA,SAAA,EAAW,CAAS,KAAA,KAAA;AAzC1D,MAAA,IAAA,EAAA,EAAA,EAAA;AA0CM,MAAA,wBAAA,CAAyB,KAAK,CAAA;AAC9B,MAAA,iBAAA,CAAA,CAAkB,EAAM,GAAA,CAAA,EAAA,GAAA,KAAA,CAAA,cAAA,KAAN,IAAsB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,KAAtB,YAAgC,CAAC,CAAA;AAAA,KACpD,CAAA;AACD,IAAA,MAAM,IAAO,GAAA,QAAA,CAAS,WAAY,CAAA,SAAA,EAAW,CAAS,KAAA,KAAA;AACpD,MAAA,wBAAA,CAAyB,KAAK,CAAA;AAC9B,MAAA,iBAAA,CAAkB,CAAC,CAAA;AAAA,KACpB,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,MAAO,EAAA;AACZ,MAAA,IAAA,CAAK,MAAO,EAAA;AAAA,KACd;AAAA,GACF,EAAG,EAAE,CAAA;AACL,EAAO,OAAA;AAAA,IACL,cAAA;AAAA,IACA,iBAAiB,cAAiB,GAAA;AAAA,GACpC;AACF"}
|