@bmc-soft/keycloak-auth 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_lib/escapeForInjectedJS.d.ts +2 -0
- package/dist/_lib/escapeForInjectedJS.d.ts.map +1 -0
- package/dist/_lib/escapeForInjectedJS.js +8 -0
- package/dist/_lib/escapeForInjectedJS.js.map +1 -0
- package/dist/_lib/getInjectedJSForDetect.d.ts +2 -0
- package/dist/_lib/getInjectedJSForDetect.d.ts.map +1 -0
- package/dist/_lib/getInjectedJSForDetect.js +27 -0
- package/dist/_lib/getInjectedJSForDetect.js.map +1 -0
- package/dist/_lib/getInjectedJSForLogin.d.ts +2 -0
- package/dist/_lib/getInjectedJSForLogin.d.ts.map +1 -0
- package/dist/_lib/getInjectedJSForLogin.js +168 -0
- package/dist/_lib/getInjectedJSForLogin.js.map +1 -0
- package/dist/_lib/getInjectedJSForLogout.d.ts +2 -0
- package/dist/_lib/getInjectedJSForLogout.d.ts.map +1 -0
- package/dist/_lib/getInjectedJSForLogout.js +63 -0
- package/dist/_lib/getInjectedJSForLogout.js.map +1 -0
- package/dist/_lib/index.d.ts +7 -0
- package/dist/_lib/index.d.ts.map +1 -0
- package/dist/_lib/index.js +7 -0
- package/dist/_lib/index.js.map +1 -0
- package/dist/_lib/types/authStage.d.ts +7 -0
- package/dist/_lib/types/authStage.d.ts.map +1 -0
- package/dist/_lib/types/authStage.js +6 -0
- package/dist/_lib/types/authStage.js.map +1 -0
- package/dist/_lib/types/confirmAuthPhase.d.ts +7 -0
- package/dist/_lib/types/confirmAuthPhase.d.ts.map +1 -0
- package/dist/_lib/types/confirmAuthPhase.js +6 -0
- package/dist/_lib/types/confirmAuthPhase.js.map +1 -0
- package/dist/_lib/types/index.d.ts +4 -0
- package/dist/_lib/types/index.d.ts.map +1 -0
- package/dist/_lib/types/index.js +4 -0
- package/dist/_lib/types/index.js.map +1 -0
- package/dist/_lib/types/pinSetupStage.d.ts +7 -0
- package/dist/_lib/types/pinSetupStage.d.ts.map +1 -0
- package/dist/_lib/types/pinSetupStage.js +6 -0
- package/dist/_lib/types/pinSetupStage.js.map +1 -0
- package/dist/axios/adapters/KeycloakTokenProvider.d.ts +10 -0
- package/dist/axios/adapters/KeycloakTokenProvider.d.ts.map +1 -0
- package/dist/axios/adapters/KeycloakTokenProvider.js +56 -0
- package/dist/axios/adapters/KeycloakTokenProvider.js.map +1 -0
- package/dist/axios/index.d.ts +5 -0
- package/dist/axios/index.d.ts.map +1 -0
- package/dist/axios/index.js +3 -0
- package/dist/axios/index.js.map +1 -0
- package/dist/axios/interceptors.d.ts +5 -0
- package/dist/axios/interceptors.d.ts.map +1 -0
- package/dist/axios/interceptors.js +136 -0
- package/dist/axios/interceptors.js.map +1 -0
- package/dist/axios/tokenProvider.d.ts +7 -0
- package/dist/axios/tokenProvider.d.ts.map +1 -0
- package/dist/axios/tokenProvider.js +2 -0
- package/dist/axios/tokenProvider.js.map +1 -0
- package/dist/axios/types.d.ts +17 -0
- package/dist/axios/types.d.ts.map +1 -0
- package/dist/axios/types.js +2 -0
- package/dist/axios/types.js.map +1 -0
- package/dist/context/KeycloakConfigContext.d.ts +10 -0
- package/dist/context/KeycloakConfigContext.d.ts.map +1 -0
- package/dist/context/KeycloakConfigContext.js +50 -0
- package/dist/context/KeycloakConfigContext.js.map +1 -0
- package/dist/context/KeycloakInstanceContext.d.ts +20 -0
- package/dist/context/KeycloakInstanceContext.d.ts.map +1 -0
- package/dist/context/KeycloakInstanceContext.js +113 -0
- package/dist/context/KeycloakInstanceContext.js.map +1 -0
- package/dist/context/KeycloakProvider.d.ts +15 -0
- package/dist/context/KeycloakProvider.d.ts.map +1 -0
- package/dist/context/KeycloakProvider.js +19 -0
- package/dist/context/KeycloakProvider.js.map +1 -0
- package/dist/context/KeycloakThemeContext.d.ts +66 -0
- package/dist/context/KeycloakThemeContext.d.ts.map +1 -0
- package/dist/context/KeycloakThemeContext.js +59 -0
- package/dist/context/KeycloakThemeContext.js.map +1 -0
- package/dist/context/ReauthContext.d.ts +13 -0
- package/dist/context/ReauthContext.d.ts.map +1 -0
- package/dist/context/ReauthContext.js +26 -0
- package/dist/context/ReauthContext.js.map +1 -0
- package/dist/context/TokenContext.d.ts +18 -0
- package/dist/context/TokenContext.d.ts.map +1 -0
- package/dist/context/TokenContext.js +117 -0
- package/dist/context/TokenContext.js.map +1 -0
- package/dist/context/index.d.ts +14 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +7 -0
- package/dist/context/index.js.map +1 -0
- package/dist/core/adapter.d.ts +23 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/adapter.js +75 -0
- package/dist/core/adapter.js.map +1 -0
- package/dist/core/client.d.ts +7 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +12 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/storage.d.ts +10 -0
- package/dist/core/storage.d.ts.map +1 -0
- package/dist/core/storage.js +37 -0
- package/dist/core/storage.js.map +1 -0
- package/dist/core/types.d.ts +31 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils.d.ts +2 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +10 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/hooks/index.d.ts +9 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useKeycloakAuth.d.ts +23 -0
- package/dist/hooks/useKeycloakAuth.d.ts.map +1 -0
- package/dist/hooks/useKeycloakAuth.js +67 -0
- package/dist/hooks/useKeycloakAuth.js.map +1 -0
- package/dist/hooks/useKeycloakAuthScreen.d.ts +11 -0
- package/dist/hooks/useKeycloakAuthScreen.d.ts.map +1 -0
- package/dist/hooks/useKeycloakAuthScreen.js +59 -0
- package/dist/hooks/useKeycloakAuthScreen.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/screens/AuthPage/AuthPage.d.ts +17 -0
- package/dist/screens/AuthPage/AuthPage.d.ts.map +1 -0
- package/dist/screens/AuthPage/AuthPage.js +115 -0
- package/dist/screens/AuthPage/AuthPage.js.map +1 -0
- package/dist/screens/AuthPage/index.d.ts +2 -0
- package/dist/screens/AuthPage/index.d.ts.map +1 -0
- package/dist/screens/AuthPage/index.js +2 -0
- package/dist/screens/AuthPage/index.js.map +1 -0
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.d.ts +21 -0
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.d.ts.map +1 -0
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.js +215 -0
- package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.js.map +1 -0
- package/dist/screens/ConfirmAuthPage/index.d.ts +2 -0
- package/dist/screens/ConfirmAuthPage/index.d.ts.map +1 -0
- package/dist/screens/ConfirmAuthPage/index.js +2 -0
- package/dist/screens/ConfirmAuthPage/index.js.map +1 -0
- package/dist/screens/index.d.ts +3 -0
- package/dist/screens/index.d.ts.map +1 -0
- package/dist/screens/index.js +3 -0
- package/dist/screens/index.js.map +1 -0
- package/dist/storage/credentialStorage.d.ts +26 -0
- package/dist/storage/credentialStorage.d.ts.map +1 -0
- package/dist/storage/credentialStorage.js +188 -0
- package/dist/storage/credentialStorage.js.map +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/tokenStorage.d.ts +28 -0
- package/dist/storage/tokenStorage.d.ts.map +1 -0
- package/dist/storage/tokenStorage.js +145 -0
- package/dist/storage/tokenStorage.js.map +1 -0
- package/dist/ui/DefaultButton/DefaultButton.d.ts +10 -0
- package/dist/ui/DefaultButton/DefaultButton.d.ts.map +1 -0
- package/dist/ui/DefaultButton/DefaultButton.js +41 -0
- package/dist/ui/DefaultButton/DefaultButton.js.map +1 -0
- package/dist/ui/DefaultButton/DefaultIconButton.d.ts +4 -0
- package/dist/ui/DefaultButton/DefaultIconButton.d.ts.map +1 -0
- package/dist/ui/DefaultButton/DefaultIconButton.js +11 -0
- package/dist/ui/DefaultButton/DefaultIconButton.js.map +1 -0
- package/dist/ui/DefaultButton/index.d.ts +4 -0
- package/dist/ui/DefaultButton/index.d.ts.map +1 -0
- package/dist/ui/DefaultButton/index.js +3 -0
- package/dist/ui/DefaultButton/index.js.map +1 -0
- package/dist/ui/DefaultLoader/DefaultLoader.d.ts +3 -0
- package/dist/ui/DefaultLoader/DefaultLoader.d.ts.map +1 -0
- package/dist/ui/DefaultLoader/DefaultLoader.js +16 -0
- package/dist/ui/DefaultLoader/DefaultLoader.js.map +1 -0
- package/dist/ui/DefaultLoader/index.d.ts +2 -0
- package/dist/ui/DefaultLoader/index.d.ts.map +1 -0
- package/dist/ui/DefaultLoader/index.js +2 -0
- package/dist/ui/DefaultLoader/index.js.map +1 -0
- package/dist/ui/LogoutButton/LogoutButtonIcon.d.ts +4 -0
- package/dist/ui/LogoutButton/LogoutButtonIcon.d.ts.map +1 -0
- package/dist/ui/LogoutButton/LogoutButtonIcon.js +12 -0
- package/dist/ui/LogoutButton/LogoutButtonIcon.js.map +1 -0
- package/dist/ui/LogoutButton/LogoutButtonText.d.ts +4 -0
- package/dist/ui/LogoutButton/LogoutButtonText.d.ts.map +1 -0
- package/dist/ui/LogoutButton/LogoutButtonText.js +18 -0
- package/dist/ui/LogoutButton/LogoutButtonText.js.map +1 -0
- package/dist/ui/LogoutButton/index.d.ts +4 -0
- package/dist/ui/LogoutButton/index.d.ts.map +1 -0
- package/dist/ui/LogoutButton/index.js +3 -0
- package/dist/ui/LogoutButton/index.js.map +1 -0
- package/dist/ui/LogoutButton/types.d.ts +14 -0
- package/dist/ui/LogoutButton/types.d.ts.map +1 -0
- package/dist/ui/LogoutButton/types.js +2 -0
- package/dist/ui/LogoutButton/types.js.map +1 -0
- package/dist/ui/LogoutButton/useLogoutButton.d.ts +13 -0
- package/dist/ui/LogoutButton/useLogoutButton.d.ts.map +1 -0
- package/dist/ui/LogoutButton/useLogoutButton.js +46 -0
- package/dist/ui/LogoutButton/useLogoutButton.js.map +1 -0
- package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.d.ts +15 -0
- package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.d.ts.map +1 -0
- package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.js +68 -0
- package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.js.map +1 -0
- package/dist/ui/LogoutConfirmSheet/index.d.ts +2 -0
- package/dist/ui/LogoutConfirmSheet/index.d.ts.map +1 -0
- package/dist/ui/LogoutConfirmSheet/index.js +2 -0
- package/dist/ui/LogoutConfirmSheet/index.js.map +1 -0
- package/dist/ui/NumberPad/NumberPad.d.ts +15 -0
- package/dist/ui/NumberPad/NumberPad.d.ts.map +1 -0
- package/dist/ui/NumberPad/NumberPad.js +142 -0
- package/dist/ui/NumberPad/NumberPad.js.map +1 -0
- package/dist/ui/NumberPad/index.d.ts +2 -0
- package/dist/ui/NumberPad/index.d.ts.map +1 -0
- package/dist/ui/NumberPad/index.js +2 -0
- package/dist/ui/NumberPad/index.js.map +1 -0
- package/dist/ui/PINConfirm/PINConfirm.d.ts +18 -0
- package/dist/ui/PINConfirm/PINConfirm.d.ts.map +1 -0
- package/dist/ui/PINConfirm/PINConfirm.js +148 -0
- package/dist/ui/PINConfirm/PINConfirm.js.map +1 -0
- package/dist/ui/PINConfirm/index.d.ts +2 -0
- package/dist/ui/PINConfirm/index.d.ts.map +1 -0
- package/dist/ui/PINConfirm/index.js +2 -0
- package/dist/ui/PINConfirm/index.js.map +1 -0
- package/dist/ui/PINIndicator/PINIndicator.d.ts +13 -0
- package/dist/ui/PINIndicator/PINIndicator.d.ts.map +1 -0
- package/dist/ui/PINIndicator/PINIndicator.js +52 -0
- package/dist/ui/PINIndicator/PINIndicator.js.map +1 -0
- package/dist/ui/PINIndicator/index.d.ts +2 -0
- package/dist/ui/PINIndicator/index.d.ts.map +1 -0
- package/dist/ui/PINIndicator/index.js +2 -0
- package/dist/ui/PINIndicator/index.js.map +1 -0
- package/dist/ui/PINSetup/PINSetup.d.ts +17 -0
- package/dist/ui/PINSetup/PINSetup.d.ts.map +1 -0
- package/dist/ui/PINSetup/PINSetup.js +117 -0
- package/dist/ui/PINSetup/PINSetup.js.map +1 -0
- package/dist/ui/PINSetup/index.d.ts +2 -0
- package/dist/ui/PINSetup/index.d.ts.map +1 -0
- package/dist/ui/PINSetup/index.js +2 -0
- package/dist/ui/PINSetup/index.js.map +1 -0
- package/dist/ui/PINSetup/stages/BiometryStage.d.ts +12 -0
- package/dist/ui/PINSetup/stages/BiometryStage.d.ts.map +1 -0
- package/dist/ui/PINSetup/stages/BiometryStage.js +76 -0
- package/dist/ui/PINSetup/stages/BiometryStage.js.map +1 -0
- package/dist/ui/PINSetup/stages/ConfirmStage.d.ts +13 -0
- package/dist/ui/PINSetup/stages/ConfirmStage.d.ts.map +1 -0
- package/dist/ui/PINSetup/stages/ConfirmStage.js +20 -0
- package/dist/ui/PINSetup/stages/ConfirmStage.js.map +1 -0
- package/dist/ui/PINSetup/stages/EnterStage.d.ts +13 -0
- package/dist/ui/PINSetup/stages/EnterStage.d.ts.map +1 -0
- package/dist/ui/PINSetup/stages/EnterStage.js +19 -0
- package/dist/ui/PINSetup/stages/EnterStage.js.map +1 -0
- package/dist/ui/PINSetup/stages/index.d.ts +4 -0
- package/dist/ui/PINSetup/stages/index.d.ts.map +1 -0
- package/dist/ui/PINSetup/stages/index.js +4 -0
- package/dist/ui/PINSetup/stages/index.js.map +1 -0
- package/dist/ui/PINSetup/styles.d.ts +39 -0
- package/dist/ui/PINSetup/styles.d.ts.map +1 -0
- package/dist/ui/PINSetup/styles.js +40 -0
- package/dist/ui/PINSetup/styles.js.map +1 -0
- package/dist/ui/WebViewLogin/WebViewLogin.d.ts +14 -0
- package/dist/ui/WebViewLogin/WebViewLogin.d.ts.map +1 -0
- package/dist/ui/WebViewLogin/WebViewLogin.js +125 -0
- package/dist/ui/WebViewLogin/WebViewLogin.js.map +1 -0
- package/dist/ui/WebViewLogin/index.d.ts +2 -0
- package/dist/ui/WebViewLogin/index.d.ts.map +1 -0
- package/dist/ui/WebViewLogin/index.js +2 -0
- package/dist/ui/WebViewLogin/index.js.map +1 -0
- package/dist/ui/WebViewLogout/WebViewLogout.d.ts +11 -0
- package/dist/ui/WebViewLogout/WebViewLogout.d.ts.map +1 -0
- package/dist/ui/WebViewLogout/WebViewLogout.js +96 -0
- package/dist/ui/WebViewLogout/WebViewLogout.js.map +1 -0
- package/dist/ui/WebViewLogout/index.d.ts +2 -0
- package/dist/ui/WebViewLogout/index.d.ts.map +1 -0
- package/dist/ui/WebViewLogout/index.js +2 -0
- package/dist/ui/WebViewLogout/index.js.map +1 -0
- package/dist/ui/icons/FaceIdIcon.d.ts +4 -0
- package/dist/ui/icons/FaceIdIcon.d.ts.map +1 -0
- package/dist/ui/icons/FaceIdIcon.js +7 -0
- package/dist/ui/icons/FaceIdIcon.js.map +1 -0
- package/dist/ui/icons/FingerprintIcon.d.ts +4 -0
- package/dist/ui/icons/FingerprintIcon.d.ts.map +1 -0
- package/dist/ui/icons/FingerprintIcon.js +10 -0
- package/dist/ui/icons/FingerprintIcon.js.map +1 -0
- package/dist/ui/icons/index.d.ts +3 -0
- package/dist/ui/icons/index.d.ts.map +1 -0
- package/dist/ui/icons/index.js +3 -0
- package/dist/ui/icons/index.js.map +1 -0
- package/dist/ui/index.d.ts +11 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +11 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.d.ts +17 -0
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.d.ts.map +1 -0
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.js +48 -0
- package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.js.map +1 -0
- package/dist/widgets/ReauthBottomSheet/index.d.ts +2 -0
- package/dist/widgets/ReauthBottomSheet/index.d.ts.map +1 -0
- package/dist/widgets/ReauthBottomSheet/index.js +2 -0
- package/dist/widgets/ReauthBottomSheet/index.js.map +1 -0
- package/dist/widgets/index.d.ts +2 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/widgets/index.js +2 -0
- package/dist/widgets/index.js.map +1 -0
- package/package.json +24 -2
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { useKeycloakTheme } from '../../context';
|
|
4
|
+
const ERROR_PLACEHOLDER_MIN_HEIGHT = 22;
|
|
5
|
+
export const PINIndicator = ({ value, codeLength, error = null, dotSize = 28, dotSpacing = 8, style, }) => {
|
|
6
|
+
const { colors: { primary: filledColor, pinIndicatorEmpty: emptyColor, error: errorColor }, } = useKeycloakTheme();
|
|
7
|
+
const hasError = Boolean(error);
|
|
8
|
+
const dotFilledColor = hasError ? errorColor : filledColor;
|
|
9
|
+
const dotEmptyColor = hasError ? `${errorColor}30` : emptyColor;
|
|
10
|
+
const dots = Array.from({ length: codeLength }, (_, index) => {
|
|
11
|
+
const isFilled = index < value.length;
|
|
12
|
+
return (<View key={index} style={[
|
|
13
|
+
styles.dot,
|
|
14
|
+
{
|
|
15
|
+
width: dotSize,
|
|
16
|
+
height: dotSize,
|
|
17
|
+
borderRadius: dotSize / 2,
|
|
18
|
+
backgroundColor: isFilled ? dotFilledColor : dotEmptyColor,
|
|
19
|
+
marginHorizontal: dotSpacing / 2,
|
|
20
|
+
},
|
|
21
|
+
]}/>);
|
|
22
|
+
});
|
|
23
|
+
return (<View style={[styles.container, style]}>
|
|
24
|
+
<View style={styles.dotsRow}>{dots}</View>
|
|
25
|
+
<View style={styles.errorSlot}>
|
|
26
|
+
{error ? <Text style={[styles.errorText, { color: errorColor }]}>{error}</Text> : null}
|
|
27
|
+
</View>
|
|
28
|
+
</View>);
|
|
29
|
+
};
|
|
30
|
+
const styles = StyleSheet.create({
|
|
31
|
+
container: {
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
justifyContent: 'center',
|
|
34
|
+
},
|
|
35
|
+
dotsRow: {
|
|
36
|
+
flexDirection: 'row',
|
|
37
|
+
alignItems: 'center',
|
|
38
|
+
justifyContent: 'center',
|
|
39
|
+
},
|
|
40
|
+
dot: {},
|
|
41
|
+
errorSlot: {
|
|
42
|
+
minHeight: ERROR_PLACEHOLDER_MIN_HEIGHT,
|
|
43
|
+
marginTop: 8,
|
|
44
|
+
justifyContent: 'center',
|
|
45
|
+
alignItems: 'center',
|
|
46
|
+
},
|
|
47
|
+
errorText: {
|
|
48
|
+
fontSize: 14,
|
|
49
|
+
textAlign: 'center',
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=PINIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PINIndicator.js","sourceRoot":"","sources":["../../../src/ui/PINIndicator/PINIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAY,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AA2C/C,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,UAAU,EACV,KAAK,GAAG,IAAI,EACZ,OAAO,GAAG,EAAE,EACZ,UAAU,GAAG,CAAC,EACd,KAAK,GACN,EAAE,EAAE;IACH,MAAM,EACJ,MAAM,EAAE,EAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC,GACjF,GAAG,gBAAgB,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3D,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IAEhE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACzD,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QACtC,OAAO,CACL,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,KAAK,CAAC,CACX,KAAK,CAAC,CAAC;gBACL,MAAM,CAAC,GAAG;gBACV;oBACE,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE,OAAO,GAAG,CAAC;oBACzB,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa;oBAC1D,gBAAgB,EAAE,UAAU,GAAG,CAAC;iBACjC;aACF,CAAC,EACF,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACrC;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CACzC;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;QAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACtF;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,GAAG,EAAE,EAEJ;IACD,SAAS,EAAE;QACT,SAAS,EAAE,4BAA4B;QACvC,SAAS,EAAE,CAAC;QACZ,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/PINIndicator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/PINIndicator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ViewStyle } from 'react-native';
|
|
3
|
+
interface PINSetupProps {
|
|
4
|
+
pinLength?: number;
|
|
5
|
+
onSuccess?: (pin: string) => void;
|
|
6
|
+
onError?: (error: Error) => void;
|
|
7
|
+
showBiometryPrompt?: boolean;
|
|
8
|
+
enterTitle?: string;
|
|
9
|
+
confirmTitle?: string;
|
|
10
|
+
biometryTitle?: string;
|
|
11
|
+
enterDescription?: string;
|
|
12
|
+
confirmDescription?: string;
|
|
13
|
+
style?: ViewStyle;
|
|
14
|
+
}
|
|
15
|
+
export declare const PINSetup: React.MemoExoticComponent<({ pinLength, onSuccess, onError, showBiometryPrompt, enterTitle, confirmTitle, biometryTitle, enterDescription, confirmDescription, style, }: PINSetupProps) => React.JSX.Element>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=PINSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PINSetup.d.ts","sourceRoot":"","sources":["../../../src/ui/PINSetup/PINSetup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAO,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ7C,UAAU,aAAa;IAKrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAKlC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAMjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAK7B,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAmBD,eAAO,MAAM,QAAQ,2KAYhB,aAAa,uBAsJjB,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import React, { memo, useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { SETUP_STAGE } from '../../_lib';
|
|
4
|
+
import { useKeycloakTheme } from '../../context/KeycloakThemeContext';
|
|
5
|
+
import { getSupportedBiometryType, saveBiometryEnabled } from '../../storage';
|
|
6
|
+
import { BiometryStage, ConfirmStage, EnterStage } from './stages';
|
|
7
|
+
import { pinSetupStyles } from './styles';
|
|
8
|
+
export const PINSetup = memo(({ pinLength = 4, onSuccess, onError, showBiometryPrompt = true, enterTitle = 'Придумайте PIN-код', confirmTitle = 'Подтвердите PIN-код', biometryTitle = 'Использовать биометрию?', enterDescription = 'Этот код будет использоваться для входа в приложение', confirmDescription = 'Введите PIN-код еще раз', style, }) => {
|
|
9
|
+
const { colors, LoaderComponent } = useKeycloakTheme();
|
|
10
|
+
const [stage, setStage] = useState(SETUP_STAGE.ENTER);
|
|
11
|
+
const [pin, setPin] = useState([]);
|
|
12
|
+
const [confirmPin, setConfirmPin] = useState([]);
|
|
13
|
+
const [error, setError] = useState(null);
|
|
14
|
+
const [biometryType, setBiometryType] = useState(null);
|
|
15
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
16
|
+
const { background, text, button } = colors;
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
getSupportedBiometryType()
|
|
19
|
+
.then(type => setBiometryType(type))
|
|
20
|
+
.catch(() => setBiometryType(null));
|
|
21
|
+
}, []);
|
|
22
|
+
const handleConfirmComplete = useCallback(async () => {
|
|
23
|
+
if (pin.join('') !== confirmPin.join('')) {
|
|
24
|
+
setError('PIN-коды не совпадают');
|
|
25
|
+
setConfirmPin([]);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
setIsLoading(true);
|
|
30
|
+
const pinStr = pin.join('');
|
|
31
|
+
if (showBiometryPrompt && biometryType) {
|
|
32
|
+
setStage(SETUP_STAGE.BIOMETRY);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
onSuccess?.(pinStr);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
const saveError = err instanceof Error ? err : new Error('Ошибка сохранения PIN');
|
|
40
|
+
setError(saveError.message);
|
|
41
|
+
onError?.(saveError);
|
|
42
|
+
setPin([]);
|
|
43
|
+
setConfirmPin([]);
|
|
44
|
+
setStage(SETUP_STAGE.ENTER);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
setIsLoading(false);
|
|
48
|
+
}
|
|
49
|
+
}, [pin, confirmPin, showBiometryPrompt, biometryType, onSuccess, onError]);
|
|
50
|
+
const handleBiometryAccept = useCallback(async () => {
|
|
51
|
+
try {
|
|
52
|
+
setIsLoading(true);
|
|
53
|
+
await saveBiometryEnabled(true);
|
|
54
|
+
onSuccess?.(pin.join(''));
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
const biometryError = err instanceof Error ? err : new Error('Ошибка настройки биометрии');
|
|
58
|
+
onError?.(biometryError);
|
|
59
|
+
onSuccess?.(pin.join(''));
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
setIsLoading(false);
|
|
63
|
+
}
|
|
64
|
+
}, [pin, onSuccess, onError]);
|
|
65
|
+
const handleBiometrySkip = useCallback(() => {
|
|
66
|
+
onSuccess?.(pin.join(''));
|
|
67
|
+
}, [pin, onSuccess]);
|
|
68
|
+
const prevPinLengthRef = useRef(0);
|
|
69
|
+
const prevConfirmPinLengthRef = useRef(0);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
const pinLen = pin.length;
|
|
72
|
+
const confirmLen = confirmPin.length;
|
|
73
|
+
if (error &&
|
|
74
|
+
(pinLen > prevPinLengthRef.current || confirmLen > prevConfirmPinLengthRef.current)) {
|
|
75
|
+
setError(null);
|
|
76
|
+
}
|
|
77
|
+
prevPinLengthRef.current = pinLen;
|
|
78
|
+
prevConfirmPinLengthRef.current = confirmLen;
|
|
79
|
+
}, [pin, confirmPin, error]);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (stage === SETUP_STAGE.ENTER && pin.length >= pinLength) {
|
|
82
|
+
const timer = setTimeout(() => {
|
|
83
|
+
setStage(SETUP_STAGE.CONFIRM);
|
|
84
|
+
}, 200);
|
|
85
|
+
return () => clearTimeout(timer);
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}, [pin, pinLength, stage]);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (stage === SETUP_STAGE.CONFIRM && confirmPin.length >= pinLength) {
|
|
91
|
+
const timer = setTimeout(() => {
|
|
92
|
+
handleConfirmComplete();
|
|
93
|
+
}, 200);
|
|
94
|
+
return () => clearTimeout(timer);
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}, [confirmPin, pinLength, stage, handleConfirmComplete]);
|
|
98
|
+
const renderStageContent = () => {
|
|
99
|
+
switch (stage) {
|
|
100
|
+
case SETUP_STAGE.ENTER:
|
|
101
|
+
return (<EnterStage title={enterTitle} description={enterDescription} pin={pin} pinLength={pinLength} error={error} textColor={text} onPinChange={setPin}/>);
|
|
102
|
+
case SETUP_STAGE.CONFIRM:
|
|
103
|
+
return (<ConfirmStage title={confirmTitle} description={confirmDescription} confirmPin={confirmPin} pinLength={pinLength} error={error} textColor={text} onConfirmPinChange={setConfirmPin}/>);
|
|
104
|
+
case SETUP_STAGE.BIOMETRY:
|
|
105
|
+
return (<BiometryStage title={biometryTitle} biometryType={biometryType} textColor={text} buttonColor={button} onAccept={handleBiometryAccept} onSkip={handleBiometrySkip}/>);
|
|
106
|
+
default:
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
if (isLoading) {
|
|
111
|
+
return <LoaderComponent />;
|
|
112
|
+
}
|
|
113
|
+
return (<View style={[pinSetupStyles.container, { backgroundColor: background }, style]}>
|
|
114
|
+
{renderStageContent()}
|
|
115
|
+
</View>);
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=PINSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PINSetup.js","sourceRoot":"","sources":["../../../src/ui/PINSetup/PINSetup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/PINSetup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/PINSetup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface BiometryStageProps {
|
|
3
|
+
readonly title: string;
|
|
4
|
+
readonly biometryType: string | null;
|
|
5
|
+
readonly textColor: string;
|
|
6
|
+
readonly buttonColor: string;
|
|
7
|
+
readonly onAccept: () => void;
|
|
8
|
+
readonly onSkip: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const BiometryStage: React.NamedExoticComponent<BiometryStageProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=BiometryStage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BiometryStage.d.ts","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/BiometryStage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAS3C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAsDD,eAAO,MAAM,aAAa,gDAqCxB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import LottieView from 'lottie-react-native';
|
|
2
|
+
import React, { memo, useMemo } from 'react';
|
|
3
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { useKeycloakTheme } from '../../../context';
|
|
5
|
+
import { pinSetupStyles } from '../styles';
|
|
6
|
+
const faceIdAnimation = require('../../../../assets/lottie/faceId_animation.json');
|
|
7
|
+
const fingerprintAnimation = require('../../../../assets/lottie/fingerprint_animation.json');
|
|
8
|
+
const isFaceId = (type) => type === 'FaceID' || type === 'Face' || type === 'Face ID';
|
|
9
|
+
const styles = StyleSheet.create({
|
|
10
|
+
description: {
|
|
11
|
+
marginTop: 8,
|
|
12
|
+
},
|
|
13
|
+
animationContainer: {
|
|
14
|
+
flex: 1,
|
|
15
|
+
justifyContent: 'center',
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
minHeight: 200,
|
|
18
|
+
},
|
|
19
|
+
animation: {
|
|
20
|
+
width: '100%',
|
|
21
|
+
height: '100%',
|
|
22
|
+
maxWidth: 280,
|
|
23
|
+
maxHeight: 280,
|
|
24
|
+
},
|
|
25
|
+
buttonsBlock: {
|
|
26
|
+
marginTop: 24,
|
|
27
|
+
gap: 16,
|
|
28
|
+
},
|
|
29
|
+
primaryButton: {
|
|
30
|
+
fontSize: 18,
|
|
31
|
+
textAlign: 'center',
|
|
32
|
+
paddingVertical: 16,
|
|
33
|
+
fontWeight: '600',
|
|
34
|
+
},
|
|
35
|
+
secondaryButton: {
|
|
36
|
+
fontSize: 18,
|
|
37
|
+
textAlign: 'center',
|
|
38
|
+
paddingVertical: 16,
|
|
39
|
+
fontWeight: '500',
|
|
40
|
+
opacity: 0.9,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const TEXTS = {
|
|
44
|
+
faceId: {
|
|
45
|
+
description: 'Вместо ввода пароля можно будет использовать Face ID – это одновременно удобно и безопасно.',
|
|
46
|
+
acceptLabel: 'Использовать Face ID',
|
|
47
|
+
},
|
|
48
|
+
fingerprint: {
|
|
49
|
+
description: 'Вместо ввода пароля можно будет использовать отпечаток – это одновременно удобно и безопасно.',
|
|
50
|
+
acceptLabel: 'Использовать отпечаток',
|
|
51
|
+
},
|
|
52
|
+
skipLabel: 'Входить по PIN',
|
|
53
|
+
};
|
|
54
|
+
export const BiometryStage = memo(function BiometryStage({ title, biometryType, textColor, onAccept, onSkip, }) {
|
|
55
|
+
const { ContainedButtonComponent, OutlinedButtonComponent } = useKeycloakTheme();
|
|
56
|
+
const isFace = isFaceId(biometryType);
|
|
57
|
+
const animationSource = isFace ? faceIdAnimation : fingerprintAnimation;
|
|
58
|
+
const animationSpeed = isFace ? 0.5 : 0.25;
|
|
59
|
+
const texts = useMemo(() => (isFace ? TEXTS.faceId : TEXTS.fingerprint), [isFace]);
|
|
60
|
+
return (<View style={[pinSetupStyles.stageContainer, pinSetupStyles.biometryContainer]}>
|
|
61
|
+
<Text style={[pinSetupStyles.title, { color: textColor }]}>{title}</Text>
|
|
62
|
+
<Text style={[pinSetupStyles.description, { color: textColor }, styles.description]}>
|
|
63
|
+
{texts.description}
|
|
64
|
+
</Text>
|
|
65
|
+
|
|
66
|
+
<View style={styles.animationContainer}>
|
|
67
|
+
<LottieView source={animationSource} style={styles.animation} speed={animationSpeed} autoPlay loop/>
|
|
68
|
+
</View>
|
|
69
|
+
|
|
70
|
+
<View style={styles.buttonsBlock}>
|
|
71
|
+
<ContainedButtonComponent onPress={onAccept}>{texts.acceptLabel}</ContainedButtonComponent>
|
|
72
|
+
<OutlinedButtonComponent onPress={onSkip}>{TEXTS.skipLabel}</OutlinedButtonComponent>
|
|
73
|
+
</View>
|
|
74
|
+
</View>);
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=BiometryStage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BiometryStage.js","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/BiometryStage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ConfirmStageProps {
|
|
3
|
+
readonly title: string;
|
|
4
|
+
readonly description: string;
|
|
5
|
+
readonly confirmPin: number[];
|
|
6
|
+
readonly pinLength: number;
|
|
7
|
+
readonly error: string | null;
|
|
8
|
+
readonly textColor: string;
|
|
9
|
+
readonly onConfirmPinChange: (value: number[]) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const ConfirmStage: React.NamedExoticComponent<ConfirmStageProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ConfirmStage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmStage.d.ts","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/ConfirmStage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAOlC,UAAU,iBAAiB;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACxD;AAED,eAAO,MAAM,YAAY,+CAiBxB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
|
+
import { NumberPad } from '../../NumberPad';
|
|
4
|
+
import { PINIndicator } from '../../PINIndicator';
|
|
5
|
+
import { pinSetupStyles } from '../styles';
|
|
6
|
+
export const ConfirmStage = memo(({ title, description, confirmPin, pinLength, error, textColor, onConfirmPinChange }) => {
|
|
7
|
+
return (<View style={pinSetupStyles.stageContainer}>
|
|
8
|
+
<View style={{ rowGap: 8 }}>
|
|
9
|
+
<Text style={[pinSetupStyles.title, { color: textColor }]}>{title}</Text>
|
|
10
|
+
<Text style={[pinSetupStyles.description, { color: textColor }]}>{description}</Text>
|
|
11
|
+
</View>
|
|
12
|
+
|
|
13
|
+
<View style={pinSetupStyles.indicatorContainer}>
|
|
14
|
+
<PINIndicator value={confirmPin} codeLength={pinLength} error={error}/>
|
|
15
|
+
</View>
|
|
16
|
+
|
|
17
|
+
<NumberPad value={confirmPin} onChangeValue={onConfirmPinChange} codeLength={pinLength}/>
|
|
18
|
+
</View>);
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=ConfirmStage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmStage.js","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/ConfirmStage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,IAAI,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAExC,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAYzC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAC9B,CAAC,EAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAC,EAAE,EAAE;IACpF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CACzC;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,CACvB;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CACtE;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CACpF;QAAA,EAAE,IAAI,CAEN;;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAC7C;UAAA,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EACvE;QAAA,EAAE,IAAI,CAEN;;QAAA,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EACzF;MAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface EnterStageProps {
|
|
3
|
+
readonly title: string;
|
|
4
|
+
readonly description: string;
|
|
5
|
+
readonly pin: number[];
|
|
6
|
+
readonly pinLength: number;
|
|
7
|
+
readonly error: string | null;
|
|
8
|
+
readonly textColor: string;
|
|
9
|
+
readonly onPinChange: (value: number[]) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const EnterStage: React.NamedExoticComponent<EnterStageProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=EnterStage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnterStage.d.ts","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/EnterStage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAOlC,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,UAAU,6CAsBrB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
|
+
import { NumberPad } from '../../NumberPad';
|
|
4
|
+
import { PINIndicator } from '../../PINIndicator';
|
|
5
|
+
import { pinSetupStyles } from '../styles';
|
|
6
|
+
export const EnterStage = memo(function EnterStage({ title, description, pin, pinLength, error, textColor, onPinChange, }) {
|
|
7
|
+
return (<View style={pinSetupStyles.stageContainer}>
|
|
8
|
+
<View style={{ rowGap: 8 }}>
|
|
9
|
+
<Text style={[pinSetupStyles.title, { color: textColor }]}>{title}</Text>
|
|
10
|
+
<Text style={[pinSetupStyles.description, { color: textColor }]}>{description}</Text>
|
|
11
|
+
</View>
|
|
12
|
+
|
|
13
|
+
<View style={pinSetupStyles.indicatorContainer}>
|
|
14
|
+
<PINIndicator value={pin} codeLength={pinLength} error={error}/>
|
|
15
|
+
</View>
|
|
16
|
+
<NumberPad value={pin} onChangeValue={onPinChange} codeLength={pinLength}/>
|
|
17
|
+
</View>);
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=EnterStage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnterStage.js","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/EnterStage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,IAAI,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAExC,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAYzC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAkB,SAAS,UAAU,CAAC,EAClE,KAAK,EACL,WAAW,EACX,GAAG,EACH,SAAS,EACT,KAAK,EACL,SAAS,EACT,WAAW,GACZ;IACC,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CACzC;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,CACvB;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CACtE;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CACpF;MAAA,EAAE,IAAI,CAEN;;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAC7C;QAAA,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAChE;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAC3E;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/PINSetup/stages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare const pinSetupStyles: {
|
|
2
|
+
container: {
|
|
3
|
+
flex: number;
|
|
4
|
+
paddingHorizontal: number;
|
|
5
|
+
};
|
|
6
|
+
stageContainer: {
|
|
7
|
+
flex: number;
|
|
8
|
+
justifyContent: "space-between";
|
|
9
|
+
paddingVertical: number;
|
|
10
|
+
};
|
|
11
|
+
title: {
|
|
12
|
+
fontSize: number;
|
|
13
|
+
fontWeight: "600";
|
|
14
|
+
textAlign: "center";
|
|
15
|
+
};
|
|
16
|
+
description: {
|
|
17
|
+
fontSize: number;
|
|
18
|
+
textAlign: "center";
|
|
19
|
+
opacity: number;
|
|
20
|
+
};
|
|
21
|
+
indicatorContainer: {
|
|
22
|
+
alignItems: "center";
|
|
23
|
+
marginVertical: number;
|
|
24
|
+
};
|
|
25
|
+
biometryContainer: {
|
|
26
|
+
justifyContent: "center";
|
|
27
|
+
};
|
|
28
|
+
biometryButtons: {
|
|
29
|
+
marginTop: number;
|
|
30
|
+
gap: number;
|
|
31
|
+
};
|
|
32
|
+
biometryButton: {
|
|
33
|
+
fontSize: number;
|
|
34
|
+
textAlign: "center";
|
|
35
|
+
paddingVertical: number;
|
|
36
|
+
fontWeight: "500";
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/PINSetup/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCzB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
export const pinSetupStyles = StyleSheet.create({
|
|
3
|
+
container: {
|
|
4
|
+
flex: 1,
|
|
5
|
+
paddingHorizontal: 16,
|
|
6
|
+
},
|
|
7
|
+
stageContainer: {
|
|
8
|
+
flex: 1,
|
|
9
|
+
justifyContent: 'space-between',
|
|
10
|
+
paddingVertical: 24,
|
|
11
|
+
},
|
|
12
|
+
title: {
|
|
13
|
+
fontSize: 22,
|
|
14
|
+
fontWeight: '600',
|
|
15
|
+
textAlign: 'center',
|
|
16
|
+
},
|
|
17
|
+
description: {
|
|
18
|
+
fontSize: 12,
|
|
19
|
+
textAlign: 'center',
|
|
20
|
+
opacity: 0.7,
|
|
21
|
+
},
|
|
22
|
+
indicatorContainer: {
|
|
23
|
+
alignItems: 'center',
|
|
24
|
+
marginVertical: 40,
|
|
25
|
+
},
|
|
26
|
+
biometryContainer: {
|
|
27
|
+
justifyContent: 'center',
|
|
28
|
+
},
|
|
29
|
+
biometryButtons: {
|
|
30
|
+
marginTop: 40,
|
|
31
|
+
gap: 16,
|
|
32
|
+
},
|
|
33
|
+
biometryButton: {
|
|
34
|
+
fontSize: 18,
|
|
35
|
+
textAlign: 'center',
|
|
36
|
+
paddingVertical: 16,
|
|
37
|
+
fontWeight: '500',
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ui/PINSetup/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;QACP,iBAAiB,EAAE,EAAE;KACtB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,CAAC;QACP,cAAc,EAAE,eAAe;QAC/B,eAAe,EAAE,EAAE;KACpB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,GAAG;KACb;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,EAAE;KACnB;IACD,iBAAiB,EAAE;QACjB,cAAc,EAAE,QAAQ;KACzB;IACD,eAAe,EAAE;QACf,SAAS,EAAE,EAAE;QACb,GAAG,EAAE,EAAE;KACR;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,QAAQ;QACnB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface WebViewLoginProps {
|
|
3
|
+
onLoginSuccess?: (data: {
|
|
4
|
+
username: string;
|
|
5
|
+
password: string;
|
|
6
|
+
url: string;
|
|
7
|
+
}) => void;
|
|
8
|
+
style?: any;
|
|
9
|
+
paddingTop?: number;
|
|
10
|
+
paddingBottom?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare const WebViewLogin: React.FC<WebViewLoginProps>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=WebViewLogin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebViewLogin.d.ts","sourceRoot":"","sources":["../../../src/ui/WebViewLogin/WebViewLogin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAOtE,UAAU,iBAAiB;IAKzB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IAKnF,KAAK,CAAC,EAAE,GAAG,CAAC;IAKZ,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsJpD,CAAC"}
|