Skip to content

Commit

Permalink
[INJIMOB-854] [Data backup]: iCloud settings section in the Backup & …
Browse files Browse the repository at this point in the history
…Restore screen (mosip#1369)

* [INJIMOB-854]: Refactor  package-lock and typegen

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

[INJIMOB-854]: Refactor  package-lock and typegen

* [INJIMOB-854]: Changes for ios setup

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

[INJIMOB-854]: Changes for ios setup

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

[INJIMOB-854]: Changes for ios setup

INJIMOB-854]: Changes for ios setup

* [INJIMOB-854]: Refactor back up and restore Ios changes

Signed-off-by: Abhishek Paul <abhishek.paul@thoughtworks.com>

[INJIMOB-854]: Refactor back up and restore Ios changes

* [INJIMOB-854]: Refactor  package-lock and typegen

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

* [INJIMOB-854]: Refactor  typegen

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

* [INJIMOB-854]: Refactor Backup and restore screen

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

* [INJIMOB-854]: Refactor Backup and restore screen

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

* [INJIMOB-854]: Refactor Backup and restore screen

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

---------

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>
Co-authored-by: Abhishek Paul <abhishek.paul@thoughtworks.com>
  • Loading branch information
2 people authored and Adityankannan committed Apr 22, 2024
1 parent dd9426b commit f7d366d
Show file tree
Hide file tree
Showing 25 changed files with 324 additions and 415 deletions.
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

0 comments on commit f7d366d

Please sign in to comment.