Bridge No-Codes loadScreen, defaultVariables and custom action event (DEV-1188)#452
Conversation
…(DEV-1188) Bump sandwich to 7.10.1. loadScreen(contextKey) resolves with a typed NoCodesScreen (id, contextKey, defaultSelectedProductId, typed defaultVariables). Custom builder actions surface via the optional onCustomAction listener callback fed by the new nocodes_custom_action event. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KQEJXqfVNxqoUcKXhSPhWn
|
iOS verification status: |
…ustom action payload (DEV-1188) Map the ClientError code both natives emit since sandwich 7.10.1 instead of degrading it to UNKNOWN. Wrap the Android loadScreen call in try/catch so an uninitialized SDK rejects instead of crashing. Extend the NoCodeEvent payload union with QNoCodeCustomActionInfo and commit the example Podfile.lock updated to sandwich 7.10.1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KQEJXqfVNxqoUcKXhSPhWn
|
Review addressed: Android |
Brings the No-Codes API from sandwich 7.10.1 (native iOS 6.13.0 / Android nocodes 1.10.0) into the RN layer.
DEV-1188
Changes
NoCodes.loadScreen(contextKey): Promise<NoCodesScreen>— load-before-present; the screen model exposesid,contextKey,defaultSelectedProductIdand typeddefaultVariables(kind: custom|product|selected_product|unknown, typedvalue+stringValue) with adefaultVariable(key, kind?)lookup mirroring the native SDKs. Presenting stays onshowScreen(served from cache).nocodes_custom_actionevent → optionalonCustomAction(value)callback onNoCodesListener(optional keeps existing listeners source-compatible).loadScreenmethod; iOS bridges via sandwichBridgeCompletion→ promise, Android viaUtils.getResultListener.Verification
yarn typecheck✅,yarn test✅ (10/10), eslint on the new file ✅ (repo-wide prettier debt untouched)generateCodegenArtifactsFromSchema) ✅ +:qonversion_react-native-sdk:compileDebugKotlin✅ against sandwich 7.10.1🤖 Generated with Claude Code
https://claude.ai/code/session_01KQEJXqfVNxqoUcKXhSPhWn