react-native-unit-components
Version:
Unit React Native components
38 lines (35 loc) • 2.43 kB
text/typescript
import type { UNAccount, UNCard } from '../../types/shared';
import type { ActivityFiltersChangedEvent } from '../../messages/webMessages/activityMessage';
import type { MultiFactorAuthenticationFinishedEvent, RequestRefreshEvent } from '../../messages/webMessages/unitComponentsMessages';
import type { BottomSheetNativeMessage } from '../../messages/nativeMessages/bottomSheetMessage';
import type { CardCreatedEvent, CardMessage } from '../../messages/webMessages/cardMessage';
import type { AccountMessage } from '../../messages/webMessages/accountMessage';
import type { ActivityMessage } from '../../messages/webMessages/activityMessage';
import type { UnitComponentsMessage } from '../../messages/webMessages/unitComponentsMessages';
import type { MultipleCardsFiltersChangedEvent, MultipleCardsMessage } from '../../messages/webMessages/multipleCardsMessage';
import { BottomSheetRenderingMessage } from '../../messages/nativeMessages/bottomSheetMessage';
import { PageMessage } from '../../messages/webMessages/pageMessage';
import { OpenPlaidEvent, PlaidMessage } from '../../messages/webMessages/plaidMessages';
import { PayeeManagementMessage } from '../../messages/webMessages/payeeManagementMessage';
import { UNCounterparty } from '../../types/shared/counterparty.types';
// Map of event keys to their data types
export type EventMap = {
[CardMessage.CARD_STATUS_CHANGED]: UNCard;
[CardMessage.CARD_ACTIVATED]: UNCard;
[CardMessage.CARD_CREATED]: CardCreatedEvent;
[AccountMessage.UNIT_ACCOUNT_CHANGED]: UNAccount;
[ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED]: ActivityFiltersChangedEvent;
[MultipleCardsMessage.UNIT_MULTIPLE_CARDS_CARD_CLICKED]: UNCard;
[MultipleCardsMessage.UNIT_MULTIPLE_CARDS_FILTERS_CHANGED]: MultipleCardsFiltersChangedEvent;
[UnitComponentsMessage.UNIT_REQUEST_CLOSE_FLOW]: Record<PropertyKey, never>;
[BottomSheetNativeMessage.REQUEST_RENDERING]: BottomSheetRenderingMessage;
[UnitComponentsMessage.UNIT_REQUEST_REFRESH]: RequestRefreshEvent;
[UnitComponentsMessage.UNIT_MULTI_FACTOR_AUTH_FINISHED]: MultiFactorAuthenticationFinishedEvent;
[PageMessage.PAGE_HEIGHT]: number;
[PlaidMessage.UNIT_OPEN_PLAID]: OpenPlaidEvent;
[PayeeManagementMessage.UNIT_COUNTERPARTY_DELETED]: UNCounterparty;
};
// Generate SharedEvent as a union of { key, data } objects
export type SharedEvent = {
[K in keyof EventMap]: { key: K; data: EventMap[K] };
}[keyof EventMap];