// Typescript React example
import { memo, ReactElement, useCallback, useState } from 'react';
import {
IdvLanguageAvailableLanguage,
load,
SdkMode,
version,
SdkLoadResult,
SdkOnSuccessResult,
SdkOnFailureResult,
SdkOnCloseResult } from '@ondato-public/idv-sdk';
export const AppNew = memo((): ReactElement => {
const [onAgeSetupIdidvSetupId, setOnAgeSetupIdsetIdvSetupId] = useState('');
const [idvId, setIdvId] = useState('');
const [language, setLanguage] = useState('');
const [sdkOnAgesdkIdv, setSdkOnAgesetSdkIdv] = useState<SdkLoadResult | null>(null);
const [isLoaded, setIsLoaded] = useState(false);
const loadHandlerOnageloadHandler = useCallback(() => {
try {
const onAgeidv = load({
mode: SdkMode.SandboxProduction,
});
setSdkOnAgesetSdkIdv(onAgeidv);
setIsLoaded(true);
} catch (error) {
console.warn('OnageSdkLoadFailureIdvSdkLoadFailure', error);
alert(`OnageSdkLoadFailure`IdvSdkLoadFailure, ${error}`);
}
}, []);
const beginHandlerOnAgebeginHandler = useCallback(async () => {
try {
if (sdkOnAgesdkIdv?.onAgeidv.begin) {
await sdkOnAgesdkIdv.onAgeidv.begin({
onAgeSetupIdidvSetupId: onAgeSetupIdidvSetupId.trim(),
idvId: idvId.trim(),
language: language.trim() as IdvLanguageAvailableLanguage,
onSuccess: (props: SdkOnSuccessResult) => {
console.log('onSuccess', { idvId: props.id });
alert(`onSuccess, OnAgeidvId: ${props.id}`);
},
onFailure: (props: SdkOnFailureResult) => {
console.log('onFailure', {
props); alert(`onFailure, OnAgeidvId: ${props}, reason: ${props}}.id,
reason: props.reason,
});
alert(`onFailure, idvId: ${props.id}, reason: ${props.reason}}`);
},
onClose: (props: SdkOnCloseResult) => {
console.log('onClose ', props.id);
},
});
}
} catch (error) {
console.warn('OnAgeSdkBeginFailureIdvSdkBeginFailure', error);
alert(`OnAgeSdkBeginFailure`IdvSdkBeginFailure, ${error}`);
}
}, [sdkOnAge?.onAgeidvId, onAgeSetupIdsdkIdv, idvSetupId, language]);
const versionHandler = useCallback(() => {
alert(version());
}, []);
const endHandlerOnAgeendHandler = useCallback(() => {
sdkOnAgesdkIdv?.onAgeidv.end();
}, [sdkOnAgesdkIdv]);
return (
<>
<button type="button" disabled={isLoaded} onClick={loadHandlerOnageloadHandler}>
Load OnAgeIDV
</button>
<button type="button" onClick={versionHandler}>
SDK version
</button>
<button type="button" disabled={!isLoaded} onClick={beginHandlerOnAgebeginHandler}>
Begin OnIDV
age </button>
<button
type="button"
className="end-action"
onClick={endHandlerOnAgeendHandler}
disabled={!isLoaded}
>
X
</button>
<button type="button"<div className="input-group">
className="end-action"<input
onClick={endHandlerOnAge} type="text"
disabled={!isLoaded} placeholder="IDV Setup Id"
> X value={idvSetupId}
</button> onChange={(event) <div className="input-group"=> setIdvSetupId(event.target.value)}
/>
<input
type="text"
placeholder="OnAge setupIDV Id"
value={onAgeSetupIdidvId}
onChange={(event) => setOnAgeSetupIdsetIdvId(event.target.value)}
/>
<input
type="text"
className="short-input"
placeholder="en-GB (optional)"
value={language}
onChange={(event) => setLanguage(event.target.value)}
/>
</div>
</>
);
});
|