Files
inji-wallet/screens/Issuers/IssuerScreenController.tsx
balachandarg-tw 56867d12dd [INJIMOB-3188]: Compass changes (#1893)
* [INJIMOB-3188]: Auto Activation changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Intro slider customization and button/icon theme changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Splash screen and logo changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: App icon updates

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Icon backdrop and intro slider log fixes.

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Introslider logo changes and ios app icon changes

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

* [INJIMOB-3188]: Update individual ID.

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>

---------

Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com>
2025-04-17 09:30:42 +05:30

93 lines
3.1 KiB
TypeScript

import {useSelector} from '@xstate/react';
import {
selectSupportedCredentialTypes,
selectErrorMessageType,
selectIsBiometricCancelled,
selectIsDone,
selectIsDownloadCredentials,
selectIsIdle,
selectIssuers,
selectIsError,
selectLoadingReason,
selectSelectedIssuer,
selectSelectingCredentialType,
selectStoring,
selectVerificationErrorMessage,
selectIsNonGenericError,
selectAutoWalletBindingFailure,
} from '../../machines/Issuers/IssuersSelectors';
import {ActorRefFrom} from 'xstate';
import {BOTTOM_TAB_ROUTES} from '../../routes/routesConstants';
import {logState} from '../../shared/commonUtil';
import {isAndroid} from '../../shared/constants';
import {
IssuerScreenTabEvents,
IssuersMachine,
} from '../../machines/Issuers/IssuersMachine';
import {CredentialTypes} from '../../machines/VerifiableCredential/VCMetaMachine/vc';
export function useIssuerScreenController({route, navigation}) {
const service = route.params.service;
service.subscribe(logState);
return {
issuers: useSelector(service, selectIssuers),
selectedIssuer: useSelector(service, selectSelectedIssuer),
errorMessageType: useSelector(service, selectErrorMessageType),
isDownloadingCredentials: useSelector(service, selectIsDownloadCredentials),
isBiometricsCancelled: useSelector(service, selectIsBiometricCancelled),
isDone: useSelector(service, selectIsDone),
isIdle: useSelector(service, selectIsIdle),
isNonGenericError: useSelector(service, selectIsNonGenericError),
loadingReason: useSelector(service, selectLoadingReason),
isStoring: useSelector(service, selectStoring),
isSelectingCredentialType: useSelector(
service,
selectSelectingCredentialType,
),
supportedCredentialTypes: useSelector(
service,
selectSupportedCredentialTypes,
),
verificationErrorMessage: useSelector(
service,
selectVerificationErrorMessage,
),
isAutoWalletBindingFailed: useSelector(
service,
selectAutoWalletBindingFailure,
),
isError: useSelector(service, selectIsError),
CANCEL: () => service.send(IssuerScreenTabEvents.CANCEL()),
SELECTED_ISSUER: id =>
service.send(IssuerScreenTabEvents.SELECTED_ISSUER(id)),
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'});
},
SELECTED_CREDENTIAL_TYPE: (credType: CredentialTypes) =>
service.send(IssuerScreenTabEvents.SELECTED_CREDENTIAL_TYPE(credType)),
RESET_ERROR_SCREEN: () => {
service.send(IssuerScreenTabEvents.RESET_ERROR_SCREEN());
if (isAndroid()) {
navigation.navigate(BOTTOM_TAB_ROUTES.home, {screen: 'HomeScreen'});
} else {
setTimeout(
() =>
navigation.navigate(BOTTOM_TAB_ROUTES.home, {screen: 'HomeScreen'}),
0,
);
}
},
};
}
export interface IssuerModalProps {
service?: ActorRefFrom<typeof IssuersMachine>;
onPress?: () => void;
isVisible?: boolean;
}