Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[INJIMOB-854] [Data backup]: iCloud settings section in the Backup & Restore screen #1369

Merged
merged 8 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .talismanrc
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ fileignoreconfig:
- filename: machines/backupAndRestore/backupAndRestoreSetup.ts
checksum: 5fc57c926cf1b97bf3226ef30149d59ab3c5b437aad3315306b505dc6207d37d
- filename: machines/backupAndRestore/backupAndRestoreSetup.typegen.ts
checksum: 9a5c3dab3e681297081ce0da5ec3189b2d47616d0f74937160548d63919961ab
checksum: b55be87b377515af3533c66ca23670c05032c3737adaaad2901f7c6d639b9519
- filename: injitest/src/main/resources/AidData.json
checksum: 1bd07afe80d6d9cb1b8bea6e5cb77314964c803ff88c0756e40c47bc7564d20f
- filename: injitest/src/main/java/inji/api/KernelAuthentication.java
Expand Down
21 changes: 12 additions & 9 deletions components/AccountInformation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,23 @@ import {Theme} from './ui/styleUtils';
import {ProfileInfo} from '../shared/CloudBackupAndRestoreUtils';
import {useTranslation} from 'react-i18next';
import testIDProps from '../shared/commonUtil';
import {isAndroid} from '../shared/constants';

export const AccountInformation: React.FC<ProfileInfo> = ({email, picture}) => {
const {t} = useTranslation('AccountSelection');
return (
<Row style={{marginBottom: 21, columnGap: 11}}>
<Column align="center">
<Image
{...testIDProps('associatedAccountPicture')}
style={{height: 40, width: 40, borderRadius: 45}}
source={{
uri: picture,
}}
/>
</Column>
{isAndroid() && (
<Column align="center">
<Image
{...testIDProps('associatedAccountPicture')}
style={{height: 40, width: 40, borderRadius: 45}}
source={{
uri: picture,
}}
/>
</Column>
)}
<Column>
<Row>
<Text
Expand Down
8 changes: 3 additions & 5 deletions ios/Inji.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -473,11 +473,10 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Inji/Inji.entitlements;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = V2ABX7953Z;
DEVELOPMENT_TEAM = V2ABX7953Z;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
INFOPLIST_FILE = Inji/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
Expand All @@ -495,7 +494,6 @@
PRODUCT_BUNDLE_IDENTIFIER = io.mosip.inji.wallet.mobileid;
PRODUCT_NAME = Inji;
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore io.mosip.inji.wallet.mobileid";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
Expand Down
6 changes: 5 additions & 1 deletion ios/Inji/Inji.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.io.mosip.inji.wallet.mobileid</string>
Expand All @@ -17,4 +21,4 @@
<string>iCloud.io.mosip.inji.wallet.mobileid</string>
</array>
</dict>
</plist>
</plist>
6 changes: 6 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -474,6 +474,8 @@ PODS:
- React-jsi (= 0.71.8)
- React-logger (= 0.71.8)
- React-perflogger (= 0.71.8)
- RNAppleAuthentication (2.3.0):
- React-Core
- RNArgon2 (2.0.1):
- CatCrypto
- React-Core
Expand Down Expand Up @@ -607,6 +609,7 @@ DEPENDENCIES:
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- "RNAppleAuthentication (from `../node_modules/@invertase/react-native-apple-authentication`)"
- RNArgon2 (from `../node_modules/react-native-argon2`)
- RNBluetoothStateManager (from `../node_modules/react-native-bluetooth-state-manager`)
- "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)"
Expand Down Expand Up @@ -790,6 +793,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
RNAppleAuthentication:
:path: "../node_modules/@invertase/react-native-apple-authentication"
RNArgon2:
:path: "../node_modules/react-native-argon2"
RNBluetoothStateManager:
Expand Down Expand Up @@ -913,6 +918,7 @@ SPEC CHECKSUMS:
React-RCTVibration: 43ffd976a25f6057a7cf95ea3648ba4e00287f89
React-runtimeexecutor: 7c51ae9d4b3e9608a2366e39ccaa606aa551b9ed
ReactCommon: 85c98ab0a509e70bf5ee5d9715cf68dbf495b84c
RNAppleAuthentication: e99eaf3c4c01ad8ecb6125dd6f0cfd98871685b5
RNArgon2: 1481820722fd4af1575c09f7fc9ad67c00ee8a42
RNBluetoothStateManager: ae6a26260cbdf1827b58bd3bcc563527d61e6488
RNCClipboard: 3f0451a8100393908bea5c5c5b16f96d45f30bfc
Expand Down
2 changes: 1 addition & 1 deletion locales/ara.json
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@
"lastBackupDetails": "تفاصيل النسخ الاحتياطي الأخير",
"backupInProgress": "لا يزال بإمكانك استخدام التطبيق أثناء إجراء النسخ الاحتياطي للبيانات. سيؤدي إغلاق التطبيق إلى إنهاء عملية النسخ الاحتياطي للبيانات.",
"noBackup": "قم بعمل نسخة احتياطية لبياناتك على {{driveName}}. يمكنك استعادتها عند إعادة تثبيت INJI.",
"storage": "سيتم تخزين النسخة الاحتياطية في Google Drive المرتبط بحساب Gmail الذي اخترته.",
"storage": "سيتم تخزين النسخة الاحتياطية في {{driveName}} المرتبط بحساب {{accountType}} الذي اخترته.",
"backup": "دعم",
"size": "مقاس:",
"restore": "يعيد",
Expand Down
2 changes: 1 addition & 1 deletion locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -806,7 +806,7 @@
"lastBackupDetails": "Last Backup Details",
"backupInProgress": "You can still use the application while data backup is in progress. Closing the app will terminate the data backup process.",
"noBackup": "Backup your Data to {{driveName}}. You can restore them when you reinstall INJI.",
"storage": "The backup will be stored in the Google Drive associated to your chosen gmail account.",
"storage": "The backup will be stored in the {{driveName}} associated to your chosen {{accountType}} account.",
"backup": "Backup",
"size": "Size: ",
"restore": "Restore",
Expand Down
2 changes: 1 addition & 1 deletion locales/fil.json
Original file line number Diff line number Diff line change
Expand Up @@ -797,7 +797,7 @@
"lastBackupDetails": "Mga Detalye ng Huling Backup",
"backupInProgress": "Maaari mo pa ring gamitin ang application habang isinasagawa ang pag-backup ng data. Ang pagsasara ng app ay magwawakas sa proseso ng pag-backup ng data.",
"noBackup": "I-backup ang iyong Data sa {{driveName}}. Maaari mong ibalik ang mga ito kapag na-install mong muli ang INJI.",
"storage": "Ang backup ay maiimbak sa Google Drive na nauugnay sa iyong napiling gmail account.",
"storage": "Ang backup ay maiimbak sa {{driveName}} na nauugnay sa iyong napiling {{accountType}} account.",
"backup": "Backup",
"size": "Size: ",
"restore": "Ibalik",
Expand Down
2 changes: 1 addition & 1 deletion locales/hin.json
Original file line number Diff line number Diff line change
Expand Up @@ -800,7 +800,7 @@
"lastBackupDetails": "अंतिम बैकअप विवरण",
"backupInProgress": "जब डेटा बैकअप चल रहा हो तब भी आप एप्लिकेशन का उपयोग कर सकते हैं। ऐप बंद करने से डेटा बैकअप प्रक्रिया समाप्त हो जाएगी।",
"noBackup": "अपने डेटा का {{driveName}} पर बैकअप लें। INJI को पुनः इंस्टॉल करने पर आप उन्हें पुनर्स्थापित कर सकते हैं।",
"storage": "बैकअप आपके चुने हुए जीमेल खाते से जुड़े Google ड्राइव में संग्रहीत किया जाएगा।",
"storage": "बैकअप आपके चुने हुए {{accountType}} खाते से जुड़े {{driveName}} में संग्रहीत किया जाएगा।",
"backup": "बैकअप",
"size": "आकार: ",
"restore": "पुनर्स्थापित करें",
Expand Down
2 changes: 1 addition & 1 deletion locales/kan.json
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@
"lastBackupDetails": "ಕೊನೆಯ ಬ್ಯಾಕಪ್ ವಿವರಗಳು",
"backupInProgress": "ಡೇಟಾ ಬ್ಯಾಕಪ್ ಪ್ರಗತಿಯಲ್ಲಿರುವಾಗಲೂ ನೀವು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಬಳಸಬಹುದು. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮುಚ್ಚುವುದರಿಂದ ಡೇಟಾ ಬ್ಯಾಕಪ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ.",
"noBackup": "{{driveName}} ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಿ. ನೀವು INJI ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಿದಾಗ ನೀವು ಅವುಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಬಹುದು.",
"storage": "ನಿಮ್ಮ ಆಯ್ಕೆಮಾಡಿದ gmail ಖಾತೆಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ Google ಡ್ರೈವ್‌ನಲ್ಲಿ ಬ್ಯಾಕಪ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.",
"storage": "ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ {{accountType}} ಖಾತೆಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ {{driveName}} ನಲ್ಲಿ ಬ್ಯಾಕಪ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.",
"backup": "ಬ್ಯಾಕಪ್",
"size": "ಗಾತ್ರ: ",
"restore": "ಮರುಸ್ಥಾಪಿಸು",
Expand Down
2 changes: 1 addition & 1 deletion locales/tam.json
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@
"lastBackupDetails": "கடைசி காப்பு விவரங்கள்",
"backupInProgress": "தரவு காப்புப்பிரதி செயலில் இருக்கும்போது நீங்கள் பயன்பாட்டைப் பயன்படுத்தலாம். பயன்பாட்டை மூடுவது தரவு காப்புப்பிரதி செயல்முறையை நிறுத்தும்.",
"noBackup": "உங்கள் தரவை {{driveName}} காப்புப் பிரதி எடுக்கவும். நீங்கள் INJI ஐ மீண்டும் நிறுவும் போது அவற்றை மீட்டெடுக்கலாம்.",
"storage": "நீங்கள் தேர்ந்தெடுத்த ஜிமெயில் கணக்குடன் தொடர்புடைய Google இயக்ககத்தில் காப்புப்பிரதி சேமிக்கப்படும்.",
"storage": "நீங்கள் தேர்ந்தெடுத்த {{accountType}} கணக்குடன் தொடர்புடைய {{driveName}} இல் காப்புப்பிரதி சேமிக்கப்படும்.",
"backup": "காப்புப்பிரதி",
"size": "அளவு: ",
"restore": "மீட்டமை",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
export interface Typegen0 {
'@@xstate/typegen': true;
internalEvents: {
'done.invoke.vc.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]': {
type: 'done.invoke.vc.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
'done.invoke.vcMeta.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]': {
type: 'done.invoke.vcMeta.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
data: unknown;
__tip: 'See the XState TS docs to learn how to strongly type this.';
};
'xstate.init': {type: 'xstate.init'};
};
invokeSrcNameMap: {
isUserSignedAlready: 'done.invoke.vc.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
isUserSignedAlready: 'done.invoke.vcMeta.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
};
missingImplementations: {
actions: never;
Expand All @@ -30,7 +30,7 @@ export interface Typegen0 {
| 'VERIFY_VC_FAILED'
| 'xstate.init';
loadReceivedVcs: 'REFRESH_RECEIVED_VCS' | 'STORE_RESPONSE';
logTamperedVCsremoved: 'done.invoke.vc.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
logTamperedVCsremoved: 'done.invoke.vcMeta.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
prependToMyVcs: 'VC_ADDED';
removeDownloadFailedVcsFromStorage: 'DELETE_VC';
removeDownloadingFailedVcsFromMyVcs: 'STORE_RESPONSE';
Expand All @@ -43,7 +43,7 @@ export interface Typegen0 {
resetInProgressVcsDownloaded: 'RESET_IN_PROGRESS_VCS_DOWNLOADED';
resetVerificationErrorMessage: 'RESET_VERIFY_ERROR';
resetWalletBindingSuccess: 'RESET_WALLET_BINDING_SUCCESS';
sendBackupEvent: 'done.invoke.vc.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
sendBackupEvent: 'done.invoke.vcMeta.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
setDownloadedVc: 'VC_DOWNLOADED';
setDownloadingFailedVcs: 'DOWNLOAD_LIMIT_EXPIRED';
setMyVcs: 'STORE_RESPONSE';
Expand All @@ -56,7 +56,7 @@ export interface Typegen0 {
};
eventsCausingDelays: {};
eventsCausingGuards: {
isSignedIn: 'done.invoke.vc.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
isSignedIn: 'done.invoke.vcMeta.tamperedVCs.triggerAutoBackupForTamperedVcDeletion:invocation[0]';
};
eventsCausingServices: {
isUserSignedAlready: 'REMOVE_TAMPERED_VCS';
Expand Down
38 changes: 26 additions & 12 deletions machines/backupAndRestore/backupAndRestoreSetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ const model = createModel(
errorMessage: '' as string,
serviceRefs: {} as AppServices,
shouldTriggerAutoBackup: false as boolean,
isCloudSignedIn: false as boolean,
},
{
events: {
Expand All @@ -53,6 +54,7 @@ export const BackupAndRestoreSetupEvents = model.events;

export const backupAndRestoreSetupMachine = model.createMachine(
{
/** @xstate-layout N4IgpgJg5mDOIC5QCMCGBjA1gVwA4EEA7CAJTgBcB7AJzAGUxy8A6AS0NfIGIAJfAOQAiAGQCiAfQBC+AMIBpAKoAFcQMHiSougBUA8poDaABgC6iULkqxOrSoXMgAnogC0ADgDszAKxG-RjwBOIzcQgGYAJjCAGhAAD0QAFjdE5gBGCN9MjzSANly0xI9EgF8S2LQsPCJSChp6RhZ2TmZ0AAswLABJQnIwakJGLgg7MDZCADdKTDHKnAJiMlgqWgYmXHGW9s7MHr6BxgR2KfRUcltCYxMrh0trc7sHZwREiIifWISEMLTvZjdcjlAokwh5Ad4IoEyhUMPMaksVg11ptyK0Ot1ev1BtwRoNxlMZsw5tVFnVVo0Ns1UdsMftsUdJpRTg9LqYDGkzEgQHcbI8uc9Xu9vJ9ED8-gCgSCwR4IVDyiBiQtast6msmhxqejdpiDtx+tQaMxcAAbM4AMxoAFsibCScrEWrKRq0Ts9ljDscmWcLlcblyeSyHF8xf9AWlgaDwZDYs9QalvNCFbalQjVRSUcxCJQ3bquNoSABNVQAcXwXX4fosVl59i5XzebmYHjcwW8aSMgQ8YTCRlyMSciG8Q-S3lyERy3mbiSHpXlivhZKR6paWZz2K4gi6dAAslu6JXudXA3XEA2my2jG2O12e32Y4h8mEm2EQYFChLOx5E-PSSrycizUYdo6DaSgAHcZDsM1WGoS1vTsHoLS4HR9AkTQ6CUXR+DoUQDwDC4g1FRJUnbX5vESIwwjcNJiiKe8EHbNtmESQJWLCQJR0hcMvznZMFz-JcNkA8hgNAiCoJguCWUQyhkL0TQNC0TDsNwjlbiPAiT2+Yj0iMMiKKomjiI8ei0jMp9WNYiFPBo7xQW-PjfwddNYDAY1OnIGRjUobAIHwdB0B83ouGLXQpFkOQ8I0vlQHrXxmDfCiPCCDw3kowI3FMzJG0sjLkrcMJvDfBNeKqFNF0dZhXPc9BPO83z-MC7BgqUEhdBkURREEKL7k02LT3ixKAhStL2MygcGLCQEfGbdswTfQJu1yByyv45zkRpTA6FYKBCB6YZRnxaZZkc+00w2rVtt2noGROeDWWuUx1N6mL4kHUd0mSRIaPyQIIlyIxEnolw3iffw9O8aiCnyIoVrhJzzpYTarr2wgDrxT1CR-M7-yRy6dtR26vRZX01P9aLa36hAh1yT6Uh+3I-oBoGJpBnJmHB34obyXJYdK+GccEl0sBR-bcTGTGTtWhHcY2ZGCZuz1mR9NkIk5KsXsp1mKL+Xw-HHSzckhui3oYsz3khXJQgCPIIiKNw4btVNZeFraFcIZh9RoEKwukeQeprJ5EByIwPlNn5Gy7EECmbf7ARlR3yoEyr5euj2veoLhdCUUR+HEHDtG0cti33J7yc1oOEBDsPgzSSOXymmi3Dj5KSphaXBZT-G08zbMdXXfMi3wUtywD49QGeFsIhFBAz2bVt207btezCRO1sRuXu9R3u1yGTcdz3Me+tNueLyvJfb37Z4OPjfw0mXtwCu+teZaF6w0-RiXGSx07nbf92ibKzsL6MuGtA5aUSPkDmHhKKQgnF2KIwNpxPj1kYA2rEjYpB4u3AWf9Krv1Rp-I6P8O54JcgApW91Sbq0PBXCBUCAiwM7L8BBV9ED32mpOaiARGbhiWi-Tu5CP7i2IVLXBFUhGE0oSTVWND8KvS+Itd4hRexFRBIUXmJltZ2R8P4dBgRMF8xwU7CRyICFi0OpLG0pDTEsHMYQQBVC2RhDkRTQiCAlGfVURGDRJtnguF8GkXR+sggYONtgpMNjk6SJ6J7agBpM6hXCv7UBtDwFUzroEXRs1AbER+D9eiY5gl6Qfk-MyAiyFmPdnEhJXBNAyCwgAMS6MWBQClZANIUPwbQR9XqT17DXdhLZsncOIuon6FTbEbHsTvfuQxB4ljLBWVJ8itb1giJHM+i8bwr3ogCLJnNSkvjSJM6JVSe6rjmdwfeu46Cl1cXQqmp8F7XmXneCai0gmoLjgzAqpz1osGxn-H2yTIorLcRAkE55ghW2KG2ZsQ5TIQiCb8McIJQiZA2SVeUWYIBwAcECqZz10mm0WiM9sYz8lgmBqlFBfh2wAj8I-Ls-yN4omJePU2ddQ7z0vNst5bCEAuCMglQ2ekOzJGShEwlZzlyolYBAdyHLj5fCMPRDZDt+YmNlU6LYWpd7kGVQoxAaqJqCh8Kyl2VJZl0kYEatZJrCmA0tULYSolwKQUINBWC90ZL2vcS4ZI9Fmy0zbpE8ROqqpuQ8l5HyfkApBUNeXElXxA3jWvlbF1Xcdiiy1qs9x3LoV8teZfJBl5inth7L2DFq8tVJwBZvHN1SFVKuTZy1V9FJzLTrevF2qdt4Z39VpU1zxq5hplQ212uabXuiTWA9tjqJpTyzTEvNEKMnfXJbk8Z1LWZ9lpuDAxrwfgRBCCu8528W1gCHVTEdD5UrnrsdUwdbaVWLv6aGx90zqmXNtXOtJC6EB3o8c-Htr9KoTvqDe02abTIZBQWUMoQA */
predictableActionArguments: true,
preserveActionOrder: true,
tsTypes: {} as import('./backupAndRestoreSetup.typegen').Typegen0,
Expand Down Expand Up @@ -166,12 +168,8 @@ export const backupAndRestoreSetupMachine = model.createMachine(
target: '.noInternet',
},
{
cond: 'isIOSAndNotSignedIn',
actions: [
'unsetIsLoading',
'setErrorReasonAsAccountRequired',
'sendBackupAndRestoreSetupErrorEvent',
],
cond: 'isAuthorisedAndCloudAccessNotGiven',
actions: ['unsetIsLoading'],
target: '.error',
},
{
Expand Down Expand Up @@ -227,6 +225,10 @@ export const backupAndRestoreSetupMachine = model.createMachine(
actions: 'sendBackupAndRestoreSetupErrorEvent',
target: '.noInternet',
},
{
cond: 'isIOSAndSignInFailed',
target: '#backupAndRestoreSetup.init',
},
{
actions: 'sendBackupAndRestoreSetupErrorEvent',
target: '.error',
Expand Down Expand Up @@ -357,10 +359,15 @@ export const backupAndRestoreSetupMachine = model.createMachine(
isInternetConnected: (_, event) =>
!!(event.data as NetInfoState).isConnected,
isNetworkError: (_, event) => event.data.error === NETWORK_REQUEST_FAILED,
isSignedIn: (_context, event) =>
(event.data as isSignedInResult).isSignedIn,
isIOSAndNotSignedIn: (_context, event) => {
return isIOS() && !(event.data as isSignedInResult).isSignedIn;
isSignedIn: (_context, event) => {
return (event.data as isSignedInResult).isSignedIn;
},

isIOSAndSignInFailed: (_context, event) => {
const isSignInFailed = !(
(event.data as SignInResult).status === Cloud.status.SUCCESS
);
return isIOS() && isSignInFailed;
},
isConfirmationAlreadyShown: (_context, event) => {
return (
Expand All @@ -369,8 +376,12 @@ export const backupAndRestoreSetupMachine = model.createMachine(
] || false
);
},
isSignInSuccessful: (_context, event) =>
(event.data as SignInResult).status === Cloud.status.SUCCESS,
isSignInSuccessful: (_context, event) => {
return (event.data as SignInResult).status === Cloud.status.SUCCESS;
},
isAuthorisedAndCloudAccessNotGiven: (_context, event) => {
return (event.data as isSignedInResult).isAuthorised || false;
},
},
},
);
Expand Down Expand Up @@ -417,4 +428,7 @@ export function selectIsSigningFailure(state: State) {
return state.matches('signIn.error') || state.matches('checkSignIn.error');
}

export function selectIsCloudSignedInFailed(state: State) {
return state.matches('checkSignIn.error');
}
type State = StateFrom<typeof backupAndRestoreSetupMachine>;
Loading
Loading