diff --git a/app/App.tsx b/app/App.tsx index 4a81fe22a..28cdad635 100644 --- a/app/App.tsx +++ b/app/App.tsx @@ -5,7 +5,7 @@ // CI/CD Pipeline Test - July 31, 2025 - With Permissions Fix import React from 'react'; import { Platform } from 'react-native'; -import { YStack } from 'tamagui'; +import { Theme, YStack } from 'tamagui'; import type { TurnkeyCallbacks, TurnkeyProviderConfig, @@ -90,30 +90,32 @@ export const TURNKEY_CONFIG: TurnkeyProviderConfig = { function App(): React.JSX.Element { return ( - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + ); } diff --git a/app/android/app/build.gradle b/app/android/app/build.gradle index 1d2c3bbbf..2980d127a 100644 --- a/app/android/app/build.gradle +++ b/app/android/app/build.gradle @@ -138,7 +138,7 @@ android { applicationId "com.proofofpassportapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 142 + versionCode 146 versionName "2.9.17" manifestPlaceholders = [appAuthRedirectScheme: 'com.proofofpassportapp'] externalNativeBuild { diff --git a/app/ios/OpenPassport/Info.plist b/app/ios/OpenPassport/Info.plist index 4f767e946..1621fccc2 100644 --- a/app/ios/OpenPassport/Info.plist +++ b/app/ios/OpenPassport/Info.plist @@ -31,10 +31,8 @@ proofofpassport com.warroom.proofofpassport - - - - com.googleusercontent.apps.YOUR_CLIENT_ID + + diff --git a/app/ios/Self.xcodeproj/project.pbxproj b/app/ios/Self.xcodeproj/project.pbxproj index 6dd78bdf0..fde2bd2b7 100644 --- a/app/ios/Self.xcodeproj/project.pbxproj +++ b/app/ios/Self.xcodeproj/project.pbxproj @@ -477,7 +477,7 @@ CODE_SIGN_ENTITLEMENTS = OpenPassport/OpenPassportDebug.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 189; + CURRENT_PROJECT_VERSION = 216; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_APP_SANDBOX = NO; ENABLE_BITCODE = NO; @@ -620,7 +620,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = OpenPassport/OpenPassport.entitlements; - CURRENT_PROJECT_VERSION = 189; + CURRENT_PROJECT_VERSION = 216; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_APP_SANDBOX = NO; ENABLE_RESOURCE_ACCESS_CAMERA = YES; diff --git a/packages/webview-app/src/screens/tunnel/TunnelProofReceiptScreen.tsx b/packages/webview-app/src/screens/tunnel/TunnelProofReceiptScreen.tsx index cf7a55567..e5398a1fc 100644 --- a/packages/webview-app/src/screens/tunnel/TunnelProofReceiptScreen.tsx +++ b/packages/webview-app/src/screens/tunnel/TunnelProofReceiptScreen.tsx @@ -21,14 +21,6 @@ export const TunnelProofReceiptScreen: React.FC = () => { const { backPath = '/tunnel/proof/result', backState } = (location.state as { backPath?: string; backState?: Record } | null) ?? {}; - const showConfirm = backPath !== '/tunnel/proof/result' || backState?.success === true; - - const onConfirm = useCallback(() => { - haptic.trigger('selection'); - analytics.trackEvent('tunnel_proof_receipt_confirmed'); - navigate('/tunnel/proof/disclose'); - }, [navigate, haptic, analytics]); - const proofItems = useMemo(() => { if (displayLabels && displayLabels.length > 0) { return displayLabels.map(label => ({ label })); @@ -49,7 +41,6 @@ export const TunnelProofReceiptScreen: React.FC = () => { {...WEB_SAFE_AREA} variant="default" onClose={onClose} - onConfirm={showConfirm ? onConfirm : undefined} appIcon={} appName={appName} appEndpoint={appEndpoint} diff --git a/packages/webview-app/src/screens/tunnel/TunnelResultScreen.tsx b/packages/webview-app/src/screens/tunnel/TunnelResultScreen.tsx index b563a6f00..3db6a4e73 100644 --- a/packages/webview-app/src/screens/tunnel/TunnelResultScreen.tsx +++ b/packages/webview-app/src/screens/tunnel/TunnelResultScreen.tsx @@ -31,18 +31,6 @@ const getTunnelBackPath = (source: TunnelResultState['source']): string => { } }; -const getTunnelClosePath = (source: TunnelResultState['source']): string => { - switch (source) { - case 'disclose': - return '/tunnel/proof/disclose'; - case 'kyc': - return '/tunnel/kyc'; - case 'proving': - default: - return '/tunnel/tour/4'; - } -}; - export const TunnelResultScreen: React.FC = () => { const navigate = useNavigate(); const location = useLocation(); @@ -84,9 +72,27 @@ export const TunnelResultScreen: React.FC = () => { }); }, [location.pathname, location.state, navigate]); - const onCancel = useCallback(() => { - navigate(getTunnelClosePath(source), { replace: true }); - }, [navigate, source]); + const onCancel = useCallback(async () => { + try { + const result: VerificationResult = { + success: false, + userId: request.userId, + verificationId, + error: { + code: 'VERIFICATION_FAILED', + message: error ?? 'Verification failed', + }, + }; + await lifecycle.setResult(result); + analytics.trackEvent('tunnel_result_cancelled', { source }); + lifecycle.dismiss(); + } catch (err) { + analytics.trackEvent('tunnel_result_cancel_failed', { + error: err instanceof Error ? err.message : 'Failed to send cancel result', + }); + lifecycle.dismiss(); + } + }, [request.userId, verificationId, error, lifecycle, analytics, source]); if (success) { return (