mirror of
https://github.com/selfxyz/self.git
synced 2026-01-10 15:18:18 -05:00
introduce usePrepareDocumentProof in mobile SDK (#1176)
* introduce usePrepareDocumentProof in mobile SDK * revert haptic feedback + lint
This commit is contained in:
committed by
GitHub
parent
1856c9b325
commit
3b14f09c30
@@ -8,7 +8,10 @@ import { ActivityIndicator, View } from 'react-native';
|
||||
import type { StaticScreenProps } from '@react-navigation/native';
|
||||
import { usePreventRemove } from '@react-navigation/native';
|
||||
|
||||
import { loadSelectedDocument, useSelfClient } from '@selfxyz/mobile-sdk-alpha';
|
||||
import {
|
||||
usePrepareDocumentProof,
|
||||
useSelfClient,
|
||||
} from '@selfxyz/mobile-sdk-alpha';
|
||||
import {
|
||||
PassportEvents,
|
||||
ProofEvents,
|
||||
@@ -34,35 +37,17 @@ type ConfirmBelongingScreenProps = StaticScreenProps<Record<string, never>>;
|
||||
|
||||
const ConfirmBelongingScreen: React.FC<ConfirmBelongingScreenProps> = () => {
|
||||
const selfClient = useSelfClient();
|
||||
const { useProvingStore, trackEvent } = selfClient;
|
||||
const { trackEvent } = selfClient;
|
||||
const navigate = useHapticNavigation('Loading', {
|
||||
params: {},
|
||||
});
|
||||
const [_requestingPermission, setRequestingPermission] = useState(false);
|
||||
const currentState = useProvingStore(state => state.currentState);
|
||||
const init = useProvingStore(state => state.init);
|
||||
const setUserConfirmed = useProvingStore(state => state.setUserConfirmed);
|
||||
const { setUserConfirmed, isReadyToProve } = usePrepareDocumentProof();
|
||||
const setFcmToken = useSettingStore(state => state.setFcmToken);
|
||||
const isReadyToProve = currentState === 'ready_to_prove';
|
||||
|
||||
useEffect(() => {
|
||||
notificationSuccess();
|
||||
|
||||
const initializeProving = async () => {
|
||||
try {
|
||||
const selectedDocument = await loadSelectedDocument(selfClient);
|
||||
if (selectedDocument?.data?.documentCategory === 'aadhaar') {
|
||||
init(selfClient, 'register');
|
||||
} else {
|
||||
init(selfClient, 'dsc');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error loading selected document:', error);
|
||||
init(selfClient, 'dsc');
|
||||
}
|
||||
};
|
||||
|
||||
initializeProving();
|
||||
}, [init, selfClient]);
|
||||
}, []);
|
||||
|
||||
const onOkPress = async () => {
|
||||
try {
|
||||
|
||||
@@ -39,7 +39,7 @@ export { SCANNER_ERROR_CODES, notImplemented, sdkError } from './errors';
|
||||
|
||||
export { SdkEvents } from './types/events';
|
||||
|
||||
export { SelfClientContext, SelfClientProvider, useSelfClient } from './context';
|
||||
export { SelfClientContext, SelfClientProvider, usePrepareDocumentProof, useSelfClient } from './context';
|
||||
|
||||
export {
|
||||
clearPassportData,
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
// SPDX-License-Identifier: BUSL-1.1
|
||||
// NOTE: Converts to Apache-2.0 on 2029-06-11 per LICENSE.
|
||||
|
||||
import { createContext, type PropsWithChildren, useContext, useMemo } from 'react';
|
||||
import { createContext, type PropsWithChildren, useContext, useEffect, useMemo } from 'react';
|
||||
|
||||
import { createSelfClient } from './client';
|
||||
import { loadSelectedDocument } from './documents/utils';
|
||||
import { SdkEvents } from './types/events';
|
||||
import type { Adapters, Config, SelfClient } from './types/public';
|
||||
|
||||
@@ -56,6 +57,35 @@ export function SelfClientProvider({
|
||||
return <SelfClientContext.Provider value={client}>{children}</SelfClientContext.Provider>;
|
||||
}
|
||||
|
||||
export function usePrepareDocumentProof() {
|
||||
const selfClient = useSelfClient();
|
||||
const { useProvingStore } = selfClient;
|
||||
const currentState = useProvingStore(state => state.currentState);
|
||||
const init = useProvingStore(state => state.init);
|
||||
const setUserConfirmed = useProvingStore(state => state.setUserConfirmed);
|
||||
const isReadyToProve = currentState === 'ready_to_prove';
|
||||
|
||||
useEffect(() => {
|
||||
const initializeProving = async () => {
|
||||
try {
|
||||
const selectedDocument = await loadSelectedDocument(selfClient);
|
||||
if (selectedDocument?.data?.documentCategory === 'aadhaar') {
|
||||
init(selfClient, 'register');
|
||||
} else {
|
||||
init(selfClient, 'dsc');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error loading selected document:', error);
|
||||
init(selfClient, 'dsc');
|
||||
}
|
||||
};
|
||||
|
||||
initializeProving();
|
||||
}, [init, selfClient]);
|
||||
|
||||
return { setUserConfirmed, isReadyToProve };
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the current {@link SelfClient} from context.
|
||||
*
|
||||
|
||||
@@ -68,7 +68,7 @@ export { QRCodeScreen } from './components/screens/QRCodeScreen';
|
||||
export { SdkEvents } from './types/events';
|
||||
|
||||
// Components
|
||||
export { SelfClientContext, SelfClientProvider, useSelfClient } from './context';
|
||||
export { SelfClientContext, SelfClientProvider, usePrepareDocumentProof, useSelfClient } from './context';
|
||||
|
||||
// Documents utils
|
||||
export { SelfMobileSdk } from './entry';
|
||||
|
||||
Reference in New Issue
Block a user