mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-09 13:38:01 -05:00
Merge remote-tracking branch 'upstream/develop' into inji-214
This commit is contained in:
@@ -12,5 +12,6 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "verification failed",
|
||||
"QRLOGIN_SUCCESFULL": "QRLogin successful",
|
||||
"WALLET_BINDING_SUCCESSFULL": "Activation successful",
|
||||
"WALLET_BINDING_FAILURE": "Activation failed"
|
||||
"WALLET_BINDING_FAILURE": "Activation failed",
|
||||
"VC_REMOVED":"Removed from wallet"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import React from 'react';
|
||||
import { BottomSheet, Icon, ListItem } from 'react-native-elements';
|
||||
import { Icon, ListItem, Overlay } from 'react-native-elements';
|
||||
import { Theme } from '../components/ui/styleUtils';
|
||||
import { Centered, Column, Row, Text } from '../components/ui';
|
||||
import { Column, Row, Text } from '../components/ui';
|
||||
import { WalletBinding } from '../screens/Home/MyVcs/WalletBinding';
|
||||
import { Pressable } from 'react-native';
|
||||
import { useKebabPopUp } from './KebabPopUpController';
|
||||
@@ -21,9 +21,10 @@ export const KebabPopUp: React.FC<KebabPopUpProps> = (props) => {
|
||||
type={props.iconType}
|
||||
color={Theme.Colors.GrayIcon}
|
||||
/>
|
||||
<BottomSheet
|
||||
<Overlay
|
||||
isVisible={props.isVisible}
|
||||
containerStyle={Theme.KebabPopUpStyles.kebabPopUp}>
|
||||
onBackdropPress={props.onDismiss}
|
||||
overlayStyle={Theme.KebabPopUpStyles.kebabPopUp}>
|
||||
<Row style={Theme.KebabPopUpStyles.kebabHeaderStyle}>
|
||||
<Text weight="bold">{t('title')}</Text>
|
||||
<Icon
|
||||
@@ -78,7 +79,7 @@ export const KebabPopUp: React.FC<KebabPopUpProps> = (props) => {
|
||||
onCancel={controller.CANCEL}
|
||||
/>
|
||||
</Column>
|
||||
</BottomSheet>
|
||||
</Overlay>
|
||||
</Column>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -732,12 +732,12 @@ export const DefaultTheme = {
|
||||
}),
|
||||
KebabPopUpStyles: StyleSheet.create({
|
||||
kebabPopUp: {
|
||||
marginHorizontal: 4,
|
||||
borderTopLeftRadius: 15,
|
||||
borderTopRightRadius: 15,
|
||||
width: Dimensions.get('screen').width,
|
||||
marginTop: Dimensions.get('screen').height * 0.55,
|
||||
},
|
||||
kebabHeaderStyle: {
|
||||
backgroundColor: Colors.White,
|
||||
borderTopLeftRadius: 24,
|
||||
borderTopRightRadius: 24,
|
||||
justifyContent: 'space-between',
|
||||
fontFamily: 'Inter_700Bold',
|
||||
paddingRight: 15,
|
||||
|
||||
@@ -734,12 +734,12 @@ export const PurpleTheme = {
|
||||
}),
|
||||
KebabPopUpStyles: StyleSheet.create({
|
||||
kebabPopUp: {
|
||||
marginHorizontal: 4,
|
||||
borderTopLeftRadius: 15,
|
||||
borderTopRightRadius: 15,
|
||||
width: Dimensions.get('screen').width,
|
||||
marginTop: Dimensions.get('screen').height * 0.55,
|
||||
},
|
||||
kebabHeaderStyle: {
|
||||
backgroundColor: Colors.White,
|
||||
borderTopLeftRadius: 24,
|
||||
borderTopRightRadius: 24,
|
||||
justifyContent: 'space-between',
|
||||
fontFamily: 'Inter_700Bold',
|
||||
paddingRight: 15,
|
||||
|
||||
@@ -662,7 +662,7 @@ SPEC CHECKSUMS:
|
||||
EXUpdates: a83e036243b0f6ece53a8c1cb883b6751c88a5f8
|
||||
EXUpdatesInterface: a9814f422d3cd6e7cfd260d13c27786148ece20e
|
||||
FBLazyVector: fa8275d5086566e22a26ddc385ab5772e7f9b1bd
|
||||
FBReactNativeSpec: 83986f2cb6a4046f24310b93812514ab1ccccb72
|
||||
FBReactNativeSpec: 6f212f070a71c07e30cb92356459dd3a148a064e
|
||||
glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62
|
||||
GoogleInterchangeUtilities: d5bc4d88d5b661ab72f9d70c58d02ca8c27ad1f7
|
||||
GoogleNetworkingUtilities: 3edd3a8161347494f2da60ea0deddc8a472d94cb
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "فشل التحقق",
|
||||
"QRLOGIN_SUCCESFULL": "QRL تم تسجيل الدخول بنجاح",
|
||||
"WALLET_BINDING_SUCCESSFULL": "تفعيل ناجحة",
|
||||
"WALLET_BINDING_FAILURE": "فشل التفعيل"
|
||||
"WALLET_BINDING_FAILURE": "فشل التفعيل",
|
||||
"VC_REMOVED":"تمت إزالته من المحفظة"
|
||||
},
|
||||
"DeviceInfoList": {
|
||||
"requestedBy": "مطلوب بواسطة",
|
||||
@@ -273,7 +274,9 @@
|
||||
"stepThreeText": "شارك بطاقاتك بأمان وبطريقة خالية من المتاعب واستفد من الخدمات المتنوعة.",
|
||||
"stepFourTitle": "مصادقة خالية من المتاعب",
|
||||
"stepFourText": "قم بمصادقة نفسك بسهولة باستخدام بيانات الاعتماد الرقمية المخزنة.",
|
||||
"stepFourButton": "البدء",
|
||||
"getStarted": "البدء",
|
||||
"goBack": "عُد",
|
||||
"back": "خلف",
|
||||
"skip": "يتخطى",
|
||||
"next": "التالي"
|
||||
},
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "verification failed",
|
||||
"QRLOGIN_SUCCESFULL": "QRLogin successful",
|
||||
"WALLET_BINDING_SUCCESSFULL": "Activation successful",
|
||||
"WALLET_BINDING_FAILURE": "Activation failed"
|
||||
"WALLET_BINDING_FAILURE": "Activation failed",
|
||||
"VC_REMOVED":"Removed from wallet"
|
||||
},
|
||||
"DeviceInfoList": {
|
||||
"requestedBy": "Requested by",
|
||||
@@ -57,7 +58,7 @@
|
||||
"enableVerification": "Activate",
|
||||
"profileAuthenticated": "Profile is authenticated!",
|
||||
"offlineAuthDisabledHeader": "Offline Authentication disabled!",
|
||||
"offlineAuthDisabledMessage": "Click 'Enable Authentication' to enable this credentials to be used for offline authentication.",
|
||||
"offlineAuthDisabledMessage": "Click on 'Activate' to enable this credentials to be used for offline authentication.",
|
||||
"verificationEnabledSuccess": "Activated for online login",
|
||||
"goback": "GO BACK",
|
||||
"BindingWarning": "If you have enabled verification for this credential on another wallet, it will get overridden. Do you want to proceed?",
|
||||
@@ -273,7 +274,9 @@
|
||||
"stepThreeText": "Share your cards securely in a hassle free way and avail various services.",
|
||||
"stepFourTitle": "Hassle free authentication",
|
||||
"stepFourText": "Authenticate yourself with ease using the stored digital credential.",
|
||||
"stepFourButton": "Get Started",
|
||||
"getStarted": "Get Started",
|
||||
"goBack": "Go Back",
|
||||
"back": "Back",
|
||||
"skip": "Skip",
|
||||
"next": "Next"
|
||||
},
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "nabigo ang pag-verify",
|
||||
"QRLOGIN_SUCCESFULL": "Matagumpay ang QRLogin",
|
||||
"WALLET_BINDING_SUCCESSFULL": "Matagumpay ang pag-activate",
|
||||
"WALLET_BINDING_FAILURE": "Nabigo ang pag-activate"
|
||||
"WALLET_BINDING_FAILURE": "Nabigo ang pag-activate",
|
||||
"VC_REMOVED":"Inalis sa wallet"
|
||||
},
|
||||
"DeviceInfoList": {
|
||||
"requestedBy": "Hiniling ni",
|
||||
@@ -273,7 +274,9 @@
|
||||
"stepThreeText": "Kapag nabuo na, ang card ay ligtas na iniimbak sa iyong mobile.",
|
||||
"stepFourTitle": "Walang problema sa pagpapatotoo",
|
||||
"stepFourText": "I-authenticate ang iyong sarili nang madali gamit ang nakaimbak na digital na kredensyal.",
|
||||
"stepFourButton": "Magsimulas",
|
||||
"getStarted": "Magsimula",
|
||||
"goBack": "bumalik ka",
|
||||
"back": "Bumalik",
|
||||
"skip": "Laktawan",
|
||||
"next": "Susunod"
|
||||
},
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "सत्यापन असफल",
|
||||
"QRLOGIN_SUCCESFULL": "क्यूआरलॉगिन सफल",
|
||||
"WALLET_BINDING_SUCCESSFULL": "सक्रियण सफल",
|
||||
"WALLET_BINDING_FAILURE": "सक्रियकरण असफल"
|
||||
"WALLET_BINDING_FAILURE": "सक्रियकरण असफल",
|
||||
"VC_REMOVED":"वॉलेट से हटाया गया"
|
||||
},
|
||||
"DeviceInfoList": {
|
||||
"requestedBy": "द्वारा अनुरोध किया गया",
|
||||
@@ -81,7 +82,7 @@
|
||||
"offlineAuthenticationDisabled!": "ऑफ़लाइन प्रमाणीकरण अक्षम!",
|
||||
"offlineAuthDisabledMessage": "इस क्रेडेंशियल को ऑफ़लाइन प्रमाणीकरण के लिए उपयोग करने के लिए यहां क्लिक करें।",
|
||||
"viewActivityLog": "गतिविधि लॉग देखें",
|
||||
"removeFromWallet": "बटुए से निकालें",
|
||||
"removeFromWallet": "वॉलेट से हटाए",
|
||||
"revokeId": "आईडी निरस्त करें",
|
||||
"revokeMessage": "इस प्रोफ़ाइल के लिए वर्चुअल आईडी निरस्त करें"
|
||||
},
|
||||
@@ -271,7 +272,9 @@
|
||||
"stepThreeText": "परेशानी मुक्त तरीके से अपने कार्ड सुरक्षित रूप से साझा करें और विभिन्न सेवाओं का लाभ उठाएं।",
|
||||
"stepFourTitle": "परेशानी मुक्त प्रमाणीकरण",
|
||||
"stepFourText": "संग्रहीत डिजिटल क्रेडेंशियल का उपयोग करके आसानी से स्वयं को प्रमाणित करें।",
|
||||
"stepFourButton": "शुरू हो जाओ",
|
||||
"getStarted": "शुरू करें",
|
||||
"goBack": "वापस जाओ",
|
||||
"back": "पीछे",
|
||||
"skip": "छोडना",
|
||||
"next": "अगला"
|
||||
},
|
||||
@@ -290,7 +293,7 @@
|
||||
"rename": "नाम बदलें",
|
||||
"delete": "मिटाना",
|
||||
"revoke": "रद्द करना",
|
||||
"revoking": "आपके वॉलेट में VID {{vid}} के साथ एक क्रेडेंशियल है। इसे रद्द करने से यह अपने आप बटुए से हट जाएगा। क्या आप सुनिश्चित रूप से आगे बढ़ना चाहते हैं?",
|
||||
"revoking": "आपके वॉलेट में VID {{vid}} के साथ एक क्रेडेंशियल है। इसे रद्द करने से यह अपने आप वॉलेट से हट जाएगा। क्या आप सुनिश्चित रूप से आगे बढ़ना चाहते हैं?",
|
||||
"requestingOtp": "ओटीपी का अनुरोध...",
|
||||
"editTag": "नाम बदलें",
|
||||
"redirecting": "पुन: निर्देशित...",
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ",
|
||||
"QRLOGIN_SUCCESFULL": "QRಲಾಗಿನ್ ಯಶಸ್ವಿಯಾಗಿದೆ",
|
||||
"WALLET_BINDING_SUCCESSFULL": "ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಯಶಸ್ವಿಯಾಗಿದೆ",
|
||||
"WALLET_BINDING_FAILURE": "ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ"
|
||||
"WALLET_BINDING_FAILURE": "ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ",
|
||||
"VC_REMOVED":"ಕೈಚೀಲದಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"
|
||||
},
|
||||
"DeviceInfoList": {
|
||||
"requestedBy": "ವಿನಂತಿಸಿದವರು",
|
||||
@@ -269,7 +270,9 @@
|
||||
"stepThreeText": "ನಿಮ್ಮ ಕಾರ್ಡ್ಗಳನ್ನು ಜಗಳ ಮುಕ್ತ ರೀತಿಯಲ್ಲಿ ಸುರಕ್ಷಿತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಿ ಮತ್ತು ವಿವಿಧ ಸೇವೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ.",
|
||||
"stepFourTitle": "ಜಗಳ ಮುಕ್ತ ದೃಢೀಕರಣ",
|
||||
"stepFourText": "ಸಂಗ್ರಹಿಸಿದ ಡಿಜಿಟಲ್ ರುಜುವಾತುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸುಲಭವಾಗಿ ನಿಮ್ಮನ್ನು ದೃಢೀಕರಿಸಿ.",
|
||||
"stepFourButton": "ಪ್ರಾರಂಭಿಸಿ",
|
||||
"getStarted": "ಪ್ರಾರಂಭಿಸಿ",
|
||||
"goBack": "ಹಿಂದೆ ಹೋಗು",
|
||||
"back": "ಹಿಂದೆ",
|
||||
"skip": "ಬಿಟ್ಟುಬಿಡಿ",
|
||||
"next": "ಮುಂದೆ"
|
||||
},
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "falló la verificación",
|
||||
"QRLOGIN_SUCCESFULL": "Inicio de sesión QR exitoso",
|
||||
"WALLET_BINDING_SUCCESSFULL": "Activación exitosa",
|
||||
"WALLET_BINDING_FAILURE": "Activación fallida"
|
||||
"WALLET_BINDING_FAILURE": "Activación fallida",
|
||||
"VC_REMOVED":"Eliminado de la billetera"
|
||||
},
|
||||
"DeviceInfoList": {
|
||||
"requestedBy": "Solicitado por",
|
||||
@@ -300,6 +301,7 @@
|
||||
}
|
||||
},
|
||||
"RequestScreen": {
|
||||
"receiveCard": "Recibir tarjeta",
|
||||
"bluetoothDenied": "Por favor, activa el Bluetooth para poder solicitar la tarjeta",
|
||||
"bluetoothStateAndroid": "Por favor, activa el Bluetooth desde la configuración rápida para admitir el intercambio local",
|
||||
"bluetoothStateIos": "Por favor, activa el Bluetooth desde el centro de control para admitir el intercambio local",
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"PRESENCE_VERIFICATION_FAILED": "சரிபார்ப்பு தோல்வியடைந்தது",
|
||||
"QRLOGIN_SUCCESFULL": "QRஉள்நுழைவு வெற்றிகரமாக உள்ளது",
|
||||
"WALLET_BINDING_SUCCESSFULL": "செயல்படுத்தல் வெற்றி",
|
||||
"WALLET_BINDING_FAILURE": "செயல்படுத்துவதில் தோல்வி"
|
||||
"WALLET_BINDING_FAILURE": "செயல்படுத்துவதில் தோல்வி",
|
||||
"VC_REMOVED": "பணப்பையிலிருந்து அகற்றப்பட்டது"
|
||||
},
|
||||
"DeviceInfoList": {
|
||||
"requestedBy": "கோரியவர்",
|
||||
@@ -269,7 +270,9 @@
|
||||
"stepThreeText": "தொந்தரவு இல்லாத வகையில் உங்கள் கார்டுகளைப் பாதுகாப்பாகப் பகிர்ந்து, பல்வேறு சேவைகளைப் பெறுங்கள்.",
|
||||
"stepFourTitle": "தொந்தரவு இல்லாத அங்கீகாரம்",
|
||||
"stepFourText": "சேமிக்கப்பட்ட டிஜிட்டல் நற்சான்றிதழைப் பயன்படுத்தி உங்களை எளிதாக அங்கீகரிக்கவும்.",
|
||||
"stepFourButton": "தொடங்குங்கள்",
|
||||
"getStarted": "தொடங்குங்கள்",
|
||||
"goBack": "திரும்பி போ",
|
||||
"back": "மீண்டும்",
|
||||
"skip": "தவிர்க்கவும்",
|
||||
"next": "அடுத்தது"
|
||||
},
|
||||
|
||||
@@ -133,7 +133,8 @@ export type ActivityLogType =
|
||||
| 'PRESENCE_VERIFICATION_FAILED'
|
||||
| 'QRLOGIN_SUCCESFULL'
|
||||
| 'WALLET_BINDING_SUCCESSFULL'
|
||||
| 'WALLET_BINDING_FAILURE';
|
||||
| 'WALLET_BINDING_FAILURE'
|
||||
| 'VC_REMOVED';
|
||||
|
||||
type State = StateFrom<typeof activityLogMachine>;
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ const model = createModel(
|
||||
info: {} as AppInfo,
|
||||
backendInfo: {} as BackendInfo,
|
||||
serviceRefs: {} as AppServices,
|
||||
isReadError: true,
|
||||
isReadError: false,
|
||||
isDecryptError: false,
|
||||
isKeyInvalidateError: false,
|
||||
},
|
||||
|
||||
@@ -47,6 +47,8 @@ const model = createModel(
|
||||
) => ({
|
||||
credentialRegistryResponse: credentialRegistryResponse,
|
||||
}),
|
||||
INJI_TOUR_GUIDE: () => ({}),
|
||||
BACK: () => ({}),
|
||||
CANCEL: () => ({}),
|
||||
ACCEPT_HARDWARE_SUPPORT_NOT_EXISTS: () => ({}),
|
||||
},
|
||||
@@ -88,6 +90,7 @@ export const settingsMachine = model.createMachine(
|
||||
},
|
||||
},
|
||||
idle: {
|
||||
entry: ['injiTourGuide'],
|
||||
on: {
|
||||
TOGGLE_BIOMETRIC_UNLOCK: {
|
||||
actions: ['toggleBiometricUnlock', 'storeContext'],
|
||||
@@ -137,6 +140,20 @@ export const settingsMachine = model.createMachine(
|
||||
},
|
||||
},
|
||||
},
|
||||
injiTourGuide: {
|
||||
on: {
|
||||
INJI_TOUR_GUIDE: {
|
||||
target: 'showInjiTourGuide',
|
||||
},
|
||||
},
|
||||
},
|
||||
showInjiTourGuide: {
|
||||
on: {
|
||||
BACK: {
|
||||
target: 'idle',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -18,12 +18,18 @@ export interface Typegen0 {
|
||||
resetInjiProps: 'done.invoke.settings.resetInjiProps:invocation[0]';
|
||||
};
|
||||
'missingImplementations': {
|
||||
actions: never;
|
||||
actions: 'injiTourGuide';
|
||||
delays: never;
|
||||
guards: never;
|
||||
services: never;
|
||||
};
|
||||
'eventsCausingActions': {
|
||||
injiTourGuide:
|
||||
| 'BACK'
|
||||
| 'CANCEL'
|
||||
| 'STORE_RESPONSE'
|
||||
| 'done.invoke.settings.resetInjiProps:invocation[0]'
|
||||
| 'error.platform.settings.resetInjiProps:invocation[0]';
|
||||
requestStoredContext: 'xstate.init';
|
||||
resetCredentialRegistry: 'CANCEL' | 'UPDATE_CREDENTIAL_REGISTRY';
|
||||
setContext: 'STORE_RESPONSE';
|
||||
@@ -52,6 +58,12 @@ export interface Typegen0 {
|
||||
'eventsCausingServices': {
|
||||
resetInjiProps: 'UPDATE_CREDENTIAL_REGISTRY';
|
||||
};
|
||||
'matchesStates': 'idle' | 'init' | 'resetInjiProps' | 'storingDefaults';
|
||||
'matchesStates':
|
||||
| 'idle'
|
||||
| 'init'
|
||||
| 'injiTourGuide'
|
||||
| 'resetInjiProps'
|
||||
| 'showInjiTourGuide'
|
||||
| 'storingDefaults';
|
||||
'tags': never;
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ export const vcItemMachine =
|
||||
entry: 'removeVcItem',
|
||||
on: {
|
||||
STORE_RESPONSE: {
|
||||
actions: ['removedVc', log('removing Vc')],
|
||||
actions: ['removedVc', 'logVCremoved'],
|
||||
target: '#vc-item',
|
||||
},
|
||||
},
|
||||
@@ -1047,16 +1047,26 @@ export const vcItemMachine =
|
||||
{ to: (context) => context.serviceRefs.store }
|
||||
),
|
||||
|
||||
loadMyVcs: send(StoreEvents.GET(MY_VCS_STORE_KEY), {
|
||||
to: (context) => context.serviceRefs.store,
|
||||
}),
|
||||
|
||||
removeVcItem: send(
|
||||
(_context, event) => {
|
||||
return StoreEvents.REMOVE(MY_VCS_STORE_KEY, _context.vcKey);
|
||||
},
|
||||
{ to: (context) => context.serviceRefs.store }
|
||||
),
|
||||
|
||||
logVCremoved: send(
|
||||
(context, _) =>
|
||||
ActivityLogEvents.LOG_ACTIVITY({
|
||||
_vcKey: VC_ITEM_STORE_KEY(context),
|
||||
type: 'VC_REMOVED',
|
||||
timestamp: Date.now(),
|
||||
deviceName: '',
|
||||
vcLabel: context.id,
|
||||
}),
|
||||
{
|
||||
to: (context) => context.serviceRefs.activityLog,
|
||||
}
|
||||
),
|
||||
},
|
||||
|
||||
services: {
|
||||
|
||||
@@ -68,11 +68,19 @@ export const IntroSlidersScreen: React.FC<RootRouteProps> = (props) => {
|
||||
flex: 1,
|
||||
alignItems: 'flex-end',
|
||||
}}>
|
||||
<Button
|
||||
type="plain"
|
||||
title={t('skip')}
|
||||
onPress={controller.NEXT}
|
||||
/>
|
||||
{controller.isPasscodeSet() ? (
|
||||
<Button
|
||||
type="plain"
|
||||
title={t('skip')}
|
||||
onPress={controller.NEXT}
|
||||
/>
|
||||
) : (
|
||||
<Button
|
||||
type="plain"
|
||||
title={t('back')}
|
||||
onPress={controller.BACK}
|
||||
/>
|
||||
)}
|
||||
</Column>
|
||||
</Row>
|
||||
<Image source={item.image} />
|
||||
@@ -122,7 +130,7 @@ export const IntroSlidersScreen: React.FC<RootRouteProps> = (props) => {
|
||||
align="center"
|
||||
color="#FFFFFF"
|
||||
margin="15 0 0 0">
|
||||
{t('stepFourButton')}
|
||||
{controller.isPasscodeSet() ? t('getStarted') : t('goBack')}
|
||||
</Text>
|
||||
</LinearGradient>
|
||||
</View>
|
||||
@@ -144,7 +152,9 @@ export const IntroSlidersScreen: React.FC<RootRouteProps> = (props) => {
|
||||
}}
|
||||
dotStyle={{ backgroundColor: Theme.Colors.dotColor, marginBottom: 90 }}
|
||||
renderItem={renderItem}
|
||||
onDone={() => controller.NEXT()}
|
||||
onDone={() =>
|
||||
controller.isPasscodeSet() ? controller.NEXT() : controller.BACK()
|
||||
}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
|
||||
@@ -50,7 +50,7 @@ export const ReceivedCards: React.FC<HomeScreenTabProps> = (props) => {
|
||||
vcKey={vcKey}
|
||||
margin="0 2 8 2"
|
||||
isSharingVc
|
||||
onPress={controller.VIEW_VC}
|
||||
onPress={() => {}}
|
||||
/>
|
||||
))}
|
||||
{controller.vcKeys.length === 0 && (
|
||||
|
||||
@@ -13,7 +13,7 @@ import { Modal } from '../../components/ui/Modal';
|
||||
import { CREDENTIAL_REGISTRY_EDIT } from 'react-native-dotenv';
|
||||
import { AboutInji } from './AboutInji';
|
||||
import { EditableListItem } from '../../components/EditableListItem';
|
||||
import { RequestRouteProps } from '../../routes';
|
||||
import { RequestRouteProps, RootRouteProps } from '../../routes';
|
||||
import { ReceivedCards } from './ReceivedCards';
|
||||
|
||||
const LanguageSetting: React.FC = () => {
|
||||
@@ -47,9 +47,9 @@ const LanguageSetting: React.FC = () => {
|
||||
);
|
||||
};
|
||||
|
||||
export const SettingScreen: React.FC<SettingProps & RequestRouteProps> = (
|
||||
props
|
||||
) => {
|
||||
export const SettingScreen: React.FC<
|
||||
SettingProps & RootRouteProps & RequestRouteProps
|
||||
> = (props) => {
|
||||
const { t } = useTranslation('SettingScreen');
|
||||
const controller = useSettingsScreen(props);
|
||||
|
||||
@@ -154,13 +154,11 @@ export const SettingScreen: React.FC<SettingProps & RequestRouteProps> = (
|
||||
progress={controller.isResetInjiProps}
|
||||
/>
|
||||
)}
|
||||
{/*
|
||||
|
||||
<ListItem
|
||||
topDivider
|
||||
bottomDivider
|
||||
onPress={() => {
|
||||
Linking.openURL(helpUrl);
|
||||
}}>
|
||||
onPress={() => controller.INJI_TOUR_GUIDE()}>
|
||||
<Icon
|
||||
type={'antdesign'}
|
||||
name={'book'}
|
||||
@@ -176,7 +174,6 @@ export const SettingScreen: React.FC<SettingProps & RequestRouteProps> = (
|
||||
</ListItem.Title>
|
||||
</ListItem.Content>
|
||||
</ListItem>
|
||||
*/}
|
||||
|
||||
<ListItem onPress={controller.LOGOUT}>
|
||||
<Icon
|
||||
|
||||
@@ -27,9 +27,9 @@ import {
|
||||
import { GlobalContext } from '../../shared/GlobalContext';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Platform } from 'react-native';
|
||||
import { RequestRouteProps } from '../../routes';
|
||||
import { RequestRouteProps, RootRouteProps } from '../../routes';
|
||||
|
||||
export function useSettingsScreen(props: RequestRouteProps) {
|
||||
export function useSettingsScreen(props: RootRouteProps & RequestRouteProps) {
|
||||
const { appService } = useContext(GlobalContext);
|
||||
const authService = appService.children.get('auth');
|
||||
const settingsService = appService.children.get('settings');
|
||||
@@ -143,6 +143,12 @@ export function useSettingsScreen(props: RequestRouteProps) {
|
||||
setIsVisible(false);
|
||||
},
|
||||
|
||||
INJI_TOUR_GUIDE: () => {
|
||||
settingsService.send(SettingsEvents.INJI_TOUR_GUIDE()),
|
||||
props.navigation.navigate('IntroSliders'),
|
||||
setIsVisible(false);
|
||||
},
|
||||
|
||||
TOGGLE_BIOMETRIC: (enable: boolean) =>
|
||||
settingsService.send(SettingsEvents.TOGGLE_BIOMETRIC_UNLOCK(enable)),
|
||||
|
||||
|
||||
@@ -7,7 +7,10 @@ import {
|
||||
selectPasscode,
|
||||
selectSettingUp,
|
||||
} from '../machines/auth';
|
||||
import { selectBiometricUnlockEnabled } from '../machines/settings';
|
||||
import {
|
||||
SettingsEvents,
|
||||
selectBiometricUnlockEnabled,
|
||||
} from '../machines/settings';
|
||||
import { RootRouteProps } from '../routes';
|
||||
import { GlobalContext } from '../shared/GlobalContext';
|
||||
|
||||
@@ -18,6 +21,15 @@ export function useWelcomeScreen(props: RootRouteProps) {
|
||||
|
||||
const isSettingUp = useSelector(authService, selectSettingUp);
|
||||
const passcode = useSelector(authService, selectPasscode);
|
||||
|
||||
const isPasscodeSet = () => {
|
||||
if (passcode) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
const biometrics = useSelector(authService, selectBiometrics);
|
||||
const isLanguagesetup = useSelector(authService, selectLanguagesetup);
|
||||
const isBiometricUnlockEnabled = useSelector(
|
||||
@@ -28,6 +40,7 @@ export function useWelcomeScreen(props: RootRouteProps) {
|
||||
return {
|
||||
isSettingUp,
|
||||
isLanguagesetup,
|
||||
isPasscodeSet,
|
||||
NEXT: () => {
|
||||
authService.send(AuthEvents.NEXT()), props.navigation.navigate('Auth');
|
||||
},
|
||||
@@ -35,6 +48,10 @@ export function useWelcomeScreen(props: RootRouteProps) {
|
||||
authService.send(AuthEvents.SELECT()),
|
||||
props.navigation.navigate('IntroSliders');
|
||||
},
|
||||
BACK: () => {
|
||||
settingsService.send(SettingsEvents.BACK()),
|
||||
props.navigation.navigate('Main');
|
||||
},
|
||||
unlockPage: () => {
|
||||
// prioritize biometrics
|
||||
if (!isSettingUp && isBiometricUnlockEnabled && biometrics !== '') {
|
||||
|
||||
Reference in New Issue
Block a user