import { ColorValue, ImageStyle, StyleProp, TextStyle, ViewStyle } from 'react-native' import { IMyOrderDetailsData, IMyOrderDetailsItem, IMyOrderDetailsTicket, } from '../../api/types' import { IBottomSheetModalStyles, IBottomSheetModalTexts, } from '../../components/bottomSheetModal/BottomSheetModalTypes' import { IButtonStyles } from '../../components/button/types' import { IError } from '../../types' import { INotificationIcons } from './components/Notification' import { ITicketActionIcons, ITicketActionsStyles, ITicketActionTexts, TicketActionType, } from './components/TicketActions/TicketActionsTypes' import { IOnPressTicketDownload } from './components/TicketListItem/TicketListItem' import { ITicketListItemStyles, ITicketListItemTexts, } from './components/TicketListItem/TicketListItemTypes' export interface IMyOrdersDetailsConfig { areActivityIndicatorsEnabled?: boolean areAlertsEnabled?: boolean } export interface IMyOrderDetailsProps { data: IMyOrderDetailsData // Used to navigate to the Resale Tickets screen onPressResaleTicket: ( ticket: IMyOrderDetailsTicket, isTicketTypeActive: boolean ) => void onRemoveTicketFromResaleSuccess: (message: string) => void onRemoveTicketFromResaleError?: (error: IError) => void config?: IMyOrdersDetailsConfig onDownloadStatusChange?: (status?: DownloadStatus) => void downloadStatusIcons?: INotificationIcons onAndroidWritePermission?: (permission?: boolean) => void onLinkCopied?: (copied?: boolean) => void moreButtonIcon?: StyleProp styles?: IMyOrderDetailsStyles texts?: IMyOrderDetailsTexts ticketActionsIcons?: ITicketActionIcons } export type DownloadStatus = 'downloading' | 'downloaded' | 'failed' export interface IMyOrderDetailsViewProps { data: IMyOrderDetailsData config?: IMyOrdersDetailsConfig isLinkCopied?: boolean onPressCopyLink: () => void onPressTicketDownload: (payload: IOnPressTicketDownload) => void // Used to navigate to the Resale Tickets screen onPressResaleTicket: (ticket: IMyOrderDetailsTicket) => void onPressRemoveTicketFromResale: (ticket: IMyOrderDetailsTicket) => void downloadStatus?: DownloadStatus isLoading: boolean downloadStatusIcons?: INotificationIcons styles?: IMyOrderDetailsStyles texts?: IMyOrderDetailsTexts moreButtonIcon?: StyleProp onTicketSelection: (ticket?: IMyOrderDetailsTicket) => void selectedTicket?: IMyOrderDetailsTicket onActionSelected: (action: TicketActionType) => void ticketActionsIcons?: ITicketActionIcons bottomSheetModalRef?: any } export interface IOrderDetailsSectionData { id: string item: IMyOrderDetailsItem } export interface IOrderDetailsSectionTickets { id: string item: IMyOrderDetailsTicket } export interface IMyOrderDetailsTexts { title?: string subTitle?: string referralLink?: string referral?: { soFar?: string tickets?: string } listItem?: { title?: string ticketType?: string price?: string quantity?: string total?: string } ticketItem?: ITicketListItemTexts downloadNotification?: { successMessage?: string errorMessage?: string } copyText?: { copy?: string copied?: string } sellTicket?: string removeTicketFromResale?: string ticketsTitle?: string bottomSheetModal?: IBottomSheetModalTexts ticketActions?: ITicketActionTexts } export interface IMyOrderDetailsStyles { rootContainer?: StyleProp header?: { container?: StyleProp title?: StyleProp subTitle?: StyleProp shareLink?: { container?: StyleProp text?: StyleProp link?: StyleProp copyContainer?: StyleProp copyText?: StyleProp copyIcon?: StyleProp copyIconTint?: ColorValue copyIconTintActive?: ColorValue message?: StyleProp referrals?: StyleProp referralValue?: StyleProp } } section0Footer?: { container?: StyleProp label?: StyleProp value?: StyleProp } sectionHeader?: StyleProp listItem?: { container?: StyleProp innerLeftContainer?: StyleProp innerRightContainer?: StyleProp rowPlaceholder?: StyleProp rowValue?: StyleProp } ticketItem?: ITicketListItemStyles downloadButton?: IButtonStyles bottomSheetModal?: IBottomSheetModalStyles ticketActions?: ITicketActionsStyles }