Merge pull request #101 from tw-mosip/INJI-25

As a resident, when I go to the "Inji tour guide" section, I should be taken to the "Intro Slides"
This commit is contained in:
vijay151096
2023-08-11 17:02:20 +05:30
committed by GitHub
13 changed files with 104 additions and 32 deletions

View File

@@ -99,7 +99,7 @@
"yesConfirm": "نعم ، أؤكد",
"no": "لا"
},
"RemoveVcWarningOverlay":{
"RemoveVcWarningOverlay": {
"alert": "يرجى تأكيد",
"removeWarning": "هل تريد حقًا إزالة البطاقة",
"confirm": "يتأكد",
@@ -136,7 +136,7 @@
"language": "لغة",
"aboutInji": "حول إنجي",
"credentialRegistry": "سجل الاعتماد",
"errorMessage": "تم إدخال عنوان URL غير صحيح. الرجاء إدخال عنوان URL صالح للمتابعة." ,
"errorMessage": "تم إدخال عنوان URL غير صحيح. الرجاء إدخال عنوان URL صالح للمتابعة.",
"injiTourGuide": "مرشد إنجي السياحي",
"logout": "تسجيل خروج",
"resetInjiProps": "إعادة تعيين دعائم إنجي ..."
@@ -252,7 +252,7 @@
"title": "بيانات التطبيق غير كافية",
"message": "لا يمكنك إضافة أو استلام بطاقات لأن بيانات التطبيق ممتلئة. امسح بيانات التطبيق للمتابعة."
},
"vcIsTampered":{
"vcIsTampered": {
"title": "تم العبث ببيانات VC",
"message": "تتم إزالة VCs المتأثر من التطبيق"
}
@@ -267,7 +267,9 @@
"stepThreeText": "شارك بطاقاتك بأمان وبطريقة خالية من المتاعب واستفد من الخدمات المتنوعة.",
"stepFourTitle": "مصادقة خالية من المتاعب",
"stepFourText": "قم بمصادقة نفسك بسهولة باستخدام بيانات الاعتماد الرقمية المخزنة.",
"stepFourButton": "البدء",
"getStarted": "البدء",
"goBack": "عُد",
"back": "خلف",
"skip": "يتخطى",
"next": "التالي"
},
@@ -370,7 +372,7 @@
},
"storageLimitReached": {
"title": "بيانات التطبيق غير كافية",
"message":"لا يمكنك إضافة أو استلام بطاقات لأن بيانات التطبيق ممتلئة. امسح بيانات التطبيق للمتابعة."
"message": "لا يمكنك إضافة أو استلام بطاقات لأن بيانات التطبيق ممتلئة. امسح بيانات التطبيق للمتابعة."
}
},
"status": {
@@ -432,7 +434,7 @@
},
"storageLimitReached": {
"title": "بيانات التطبيق غير كافية",
"message":"لا يمكنك مشاركة البطاقات لأن بيانات التطبيق ممتلئة. امسح بيانات التطبيق للمتابعة."
"message": "لا يمكنك مشاركة البطاقات لأن بيانات التطبيق ممتلئة. امسح بيانات التطبيق للمتابعة."
}
},
"status": {

View File

@@ -267,7 +267,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"
},

View File

@@ -267,7 +267,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"
},

View File

@@ -265,7 +265,9 @@
"stepThreeText": "परेशानी मुक्त तरीके से अपने कार्ड सुरक्षित रूप से साझा करें और विभिन्न सेवाओं का लाभ उठाएं।",
"stepFourTitle": "परेशानी मुक्त प्रमाणीकरण",
"stepFourText": "संग्रहीत डिजिटल क्रेडेंशियल का उपयोग करके आसानी से स्वयं को प्रमाणित करें।",
"stepFourButton": "शुरू हो जाओ",
"getStarted": "शुरू करें",
"goBack": "वापस जाओ",
"back": "पीछे",
"skip": "छोडना",
"next": "अगला"
},

View File

@@ -263,7 +263,9 @@
"stepThreeText": "ನಿಮ್ಮ ಕಾರ್ಡ್‌ಗಳನ್ನು ಜಗಳ ಮುಕ್ತ ರೀತಿಯಲ್ಲಿ ಸುರಕ್ಷಿತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಿ ಮತ್ತು ವಿವಿಧ ಸೇವೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ.",
"stepFourTitle": "ಜಗಳ ಮುಕ್ತ ದೃಢೀಕರಣ",
"stepFourText": "ಸಂಗ್ರಹಿಸಿದ ಡಿಜಿಟಲ್ ರುಜುವಾತುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸುಲಭವಾಗಿ ನಿಮ್ಮನ್ನು ದೃಢೀಕರಿಸಿ.",
"stepFourButton": "ಪ್ರಾರಂಭಿಸಿ",
"getStarted": "ಪ್ರಾರಂಭಿಸಿ",
"goBack": "ಹಿಂದೆ ಹೋಗು",
"back": "ಹಿಂದೆ",
"skip": "ಬಿಟ್ಟುಬಿಡಿ",
"next": "ಮುಂದೆ"
},

View File

@@ -296,6 +296,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",

View File

@@ -263,7 +263,9 @@
"stepThreeText": "தொந்தரவு இல்லாத வகையில் உங்கள் கார்டுகளைப் பாதுகாப்பாகப் பகிர்ந்து, பல்வேறு சேவைகளைப் பெறுங்கள்.",
"stepFourTitle": "தொந்தரவு இல்லாத அங்கீகாரம்",
"stepFourText": "சேமிக்கப்பட்ட டிஜிட்டல் நற்சான்றிதழைப் பயன்படுத்தி உங்களை எளிதாக அங்கீகரிக்கவும்.",
"stepFourButton": "தொடங்குங்கள்",
"getStarted": "தொடங்குங்கள்",
"goBack": "திரும்பி போ",
"back": "மீண்டும்",
"skip": "தவிர்க்கவும்",
"next": "அடுத்தது"
},

View File

@@ -44,6 +44,8 @@ const model = createModel(
) => ({
credentialRegistryResponse: credentialRegistryResponse,
}),
INJI_TOUR_GUIDE: () => ({}),
BACK: () => ({}),
CANCEL: () => ({}),
},
}
@@ -84,6 +86,7 @@ export const settingsMachine = model.createMachine(
},
},
idle: {
entry: ['injiTourGuide'],
on: {
TOGGLE_BIOMETRIC_UNLOCK: {
actions: ['toggleBiometricUnlock', 'storeContext'],
@@ -126,6 +129,20 @@ export const settingsMachine = model.createMachine(
},
},
},
injiTourGuide: {
on: {
INJI_TOUR_GUIDE: {
target: 'showInjiTourGuide',
},
},
},
showInjiTourGuide: {
on: {
BACK: {
target: 'idle',
},
},
},
},
},
{

View File

@@ -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';
@@ -50,6 +56,12 @@ export interface Typegen0 {
'eventsCausingServices': {
resetInjiProps: 'UPDATE_CREDENTIAL_REGISTRY';
};
'matchesStates': 'idle' | 'init' | 'resetInjiProps' | 'storingDefaults';
'matchesStates':
| 'idle'
| 'init'
| 'injiTourGuide'
| 'resetInjiProps'
| 'showInjiTourGuide'
| 'storingDefaults';
'tags': never;
}

View File

@@ -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>
);

View File

@@ -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

View File

@@ -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)),

View File

@@ -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 !== '') {