Files
inji-wallet/screens/Scan/SendVcScreenController.ts
Tilak Puli ec9fd9f6d9 Inji-344: Refactoring VC Key (#798)
* feat(inji-344): Use VC Key class instead of separate functions for managing vc key

* feat(inji-344): Use properties from VcKey Class instead of reading from vckey string

* feat(inji-344): Rename vcKey to vcMetadata

* feat(inji-344): Use vc's unique id or vckey instead of joined string of vc metadata

* feat(inji-344): Use vc key instead of unique id to avoid confusion. Fix issues reg parsing vc metadata

* feat(inji-344):fix redownloading issue

Co-authored-by: Tilak <tilakpuli15@gmail.com>

* feat(inji-344): Remove vc getting stored on update of pin status

* feat(inji-344): update other vc's pin status to false when any vc is pinned

* feat(inji-344): remove hash ID for UIN

* feat(inji-344): revert google services json

* feat(inji-344): remove mmkv logs added for debugging

* feat(inji-344): fix received vcs not getting displayed on reopen of app

* feat(inji-344): fix id not shown in revoke component

---------

Co-authored-by: Sri Kanth Kola <srikanthsri7447@gmail.com>
2023-09-20 16:51:59 +05:30

66 lines
2.6 KiB
TypeScript

import { useSelector } from '@xstate/react';
import { useContext, useState } from 'react';
import { ActorRefFrom } from 'xstate';
import { selectShareableVcsMetadata } from '../../machines/vc';
import { vcItemMachine } from '../../machines/vcItem';
import { GlobalContext } from '../../shared/GlobalContext';
import {
selectIsSelectingVc,
selectReason,
selectReceiverInfo,
selectSelectedVc,
selectVcName,
} from '../../machines/bleShare/scan/selectors';
import {
selectIsCancelling,
selectIsInvalidIdentity,
selectIsVerifyingIdentity,
} from '../../machines/bleShare/commonSelectors';
import { ScanEvents } from '../../machines/bleShare/scan/scanMachine';
export function useSendVcScreen() {
const { appService } = useContext(GlobalContext);
const scanService = appService.children.get('scan');
const vcService = appService.children.get('vc');
const CANCEL = () => scanService.send(ScanEvents.CANCEL());
const [selectedIndex, setSelectedIndex] = useState<number>(null);
return {
selectedIndex,
TOGGLE_USER_CONSENT: () =>
scanService.send(ScanEvents.TOGGLE_USER_CONSENT()),
SELECT_VC_ITEM:
(index: number) => (vcRef: ActorRefFrom<typeof vcItemMachine>) => {
setSelectedIndex(index);
const { serviceRefs, ...vcData } = vcRef.getSnapshot().context;
scanService.send(ScanEvents.SELECT_VC(vcData));
},
receiverInfo: useSelector(scanService, selectReceiverInfo),
reason: useSelector(scanService, selectReason),
vcName: useSelector(scanService, selectVcName),
shareableVcsMetadata: useSelector(vcService, selectShareableVcsMetadata),
selectedVc: useSelector(scanService, selectSelectedVc),
isSelectingVc: useSelector(scanService, selectIsSelectingVc),
isVerifyingIdentity: useSelector(scanService, selectIsVerifyingIdentity),
isInvalidIdentity: useSelector(scanService, selectIsInvalidIdentity),
isCancelling: useSelector(scanService, selectIsCancelling),
CANCEL,
ACCEPT_REQUEST: () => scanService.send(ScanEvents.ACCEPT_REQUEST()),
VERIFY_AND_ACCEPT_REQUEST: () =>
scanService.send(ScanEvents.VERIFY_AND_ACCEPT_REQUEST()),
DISMISS: () => scanService.send(ScanEvents.DISMISS()),
UPDATE_REASON: (reason: string) =>
scanService.send(ScanEvents.UPDATE_REASON(reason)),
UPDATE_VC_NAME: (vcName: string) =>
scanService.send(ScanEvents.UPDATE_VC_NAME(vcName)),
FACE_VALID: () => scanService.send(ScanEvents.FACE_VALID()),
FACE_INVALID: () => scanService.send(ScanEvents.FACE_INVALID()),
RETRY_VERIFICATION: () => scanService.send(ScanEvents.RETRY_VERIFICATION()),
};
}