Files
inji-wallet/screens/Issuers/IssuerScreenController.tsx
KiruthikaJeyashankar 55c666b121 feat: download credentials from Esignet using openId4VCI (#851)
* feat(INJI-245): dowload and view card via issuers

Co-authored-by: Harsh Vardhan <harsh59v@gmail.com>

* fix(INJI-245): remove vc from wallet

Co-authored-by: Harsh Vardhan <harsh59v@gmail.com>

* feat(INJI-245): pin card downloaded via eSignet

* refactor(INJI-245): remove debug logs

* refactor(INJI-245): rename vcItem related component to ExistingVcItem

* refactor(INJI-245): add lock file modifications

* refactor(INJI-245): add styles in purple theme for issuer related components

* refactor(INJI-245): update VID for wallet binding usecase and issuer logo display in vc

* refactor(INJI-245): remove duplicate loader component

* refactor(INJI-245): remove unused props in vc details container

---------

Co-authored-by: Harsh Vardhan <harsh59v@gmail.com>
Co-authored-by: Vijay <94220135+vijay151096@users.noreply.github.com>
2023-09-22 17:22:59 +05:30

46 lines
1.5 KiB
TypeScript

import {useSelector} from '@xstate/react';
import {
IssuerScreenTabEvents,
IssuersMachine,
selectErrorMessage,
selectIsDone,
selectIsDownloadCredentials,
selectIsIdle,
selectIssuers,
selectLoadingReason,
selectStoring,
} from '../../machines/issuersMachine';
import {ActorRefFrom} from 'xstate';
import {BOTTOM_TAB_ROUTES} from '../../routes/routesConstants';
export function useIssuerScreenController({route, navigation}) {
const service = route.params.service;
return {
issuers: useSelector(service, selectIssuers),
errorMessage: useSelector(service, selectErrorMessage),
isDownloadingCredentials: useSelector(service, selectIsDownloadCredentials),
isDone: useSelector(service, selectIsDone),
isIdle: useSelector(service, selectIsIdle),
loadingReason: useSelector(service, selectLoadingReason),
isStoring: useSelector(service, selectStoring),
CANCEL: () => service.send(IssuerScreenTabEvents.CANCEL()),
SELECTED_ISSUER: id =>
service.send(IssuerScreenTabEvents.SELECTED_ISSUER(id)),
DISMISS: () => service.send(IssuerScreenTabEvents.DISMISS()),
TRY_AGAIN: () => service.send(IssuerScreenTabEvents.TRY_AGAIN()),
RESET_ERROR: () => service.send(IssuerScreenTabEvents.RESET_ERROR()),
DOWNLOAD_ID: () => {
service.send(IssuerScreenTabEvents.DOWNLOAD_ID());
navigation.navigate(BOTTOM_TAB_ROUTES.home, {screen: 'HomeScreen'});
},
};
}
export interface IssuerModalProps {
service?: ActorRefFrom<typeof IssuersMachine>;
onPress?: () => void;
isVisible?: boolean;
}