mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-09 13:38:01 -05:00
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import {useState} from 'react';
|
|
import {ActorRefFrom} from 'xstate';
|
|
import {VC} from '../../machines/VerifiableCredential/VCMetaMachine/vc';
|
|
import {VCMetadata} from '../../shared/VCMetadata';
|
|
import {VCItemMachine} from '../../machines/VerifiableCredential/VCItemMachine/VCItemMachine';
|
|
|
|
export function useSelectVcOverlay(props: SelectVcOverlayProps) {
|
|
const [selectedIndex, setSelectedIndex] = useState<number>(null);
|
|
const [selectedVcRef, setSelectedVcRef] =
|
|
useState<ActorRefFrom<typeof VCItemMachine>>(null);
|
|
|
|
return {
|
|
selectVcItem,
|
|
selectedIndex,
|
|
|
|
onSelect: () => {
|
|
const {serviceRefs, ...vc} = selectedVcRef.getSnapshot().context;
|
|
props.onSelect(vc);
|
|
},
|
|
|
|
onVerifyAndSelect: () => {
|
|
const {serviceRefs, ...vc} = selectedVcRef.getSnapshot().context;
|
|
props.onVerifyAndSelect(vc);
|
|
},
|
|
};
|
|
|
|
function selectVcItem(index: number) {
|
|
return (vcRef: ActorRefFrom<typeof VCItemMachine>) => {
|
|
setSelectedIndex(index);
|
|
setSelectedVcRef(vcRef);
|
|
};
|
|
}
|
|
}
|
|
|
|
export interface SelectVcOverlayProps {
|
|
isVisible: boolean;
|
|
receiverName: string;
|
|
vcMetadatas: VCMetadata[];
|
|
onSelect: (vc: VC) => void;
|
|
onVerifyAndSelect: (vc: VC) => void;
|
|
onCancel: () => void;
|
|
}
|