@trycourier/courier-ui-inbox
Version:
Inbox components for the Courier web UI
77 lines (76 loc) • 3.64 kB
TypeScript
import { InboxAction, InboxMessage } from '@trycourier/courier-js';
import { CourierBaseElement } from '@trycourier/courier-ui-core';
import { InboxDataSet } from '../types/inbox-data-set';
import { CourierInboxStateErrorFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxListItemFactoryProps, CourierInboxPaginationItemFactoryProps } from '../types/factories';
import { CourierInboxTheme } from '../types/courier-inbox-theme';
import { CourierInboxThemeManager } from '../types/courier-inbox-theme-manager';
import { CourierInboxListItemAction } from '../types/inbox-defaults';
export declare class CourierInboxList extends CourierBaseElement {
static get id(): string;
private _themeSubscription;
private _messages;
private _datasetId;
private _isLoading;
private _error;
private _canPaginate;
private _canClickListItems;
private _canLongPressListItems;
private _listItemActions;
private _onMessageClick;
private _onMessageActionClick;
private _onMessageLongPress;
private _onRefresh;
private _onPaginationTrigger?;
private _listItemFactory?;
private _paginationItemFactory?;
private _loadingStateFactory?;
private _emptyStateFactory?;
private _errorStateFactory?;
get messages(): InboxMessage[];
private get theme();
private _listStyles?;
private _listItemStyles?;
private _listItemMenuStyles?;
private _errorContainer?;
private _emptyContainer?;
constructor(props: {
themeManager: CourierInboxThemeManager;
listItemActions?: CourierInboxListItemAction[];
canClickListItems: boolean;
canLongPressListItems: boolean;
onRefresh: () => void;
onPaginationTrigger: (datasetId: string) => void;
onMessageClick: (message: InboxMessage, index: number) => void;
onMessageActionClick: (message: InboxMessage, action: InboxAction, index: number) => void;
onMessageLongPress: (message: InboxMessage, index: number) => void;
});
onComponentMounted(): void;
onComponentUnmounted(): void;
setCanClickListItems(canClick: boolean): void;
setCanLongPressListItems(canLongPress: boolean): void;
setListItemActions(actions: CourierInboxListItemAction[]): void;
static getStyles(theme: CourierInboxTheme): string;
setDataSet(dataSet: InboxDataSet): void;
addPage(dataSet: InboxDataSet): void;
addMessage(message: InboxMessage, index?: number): void;
removeMessage(index?: number): void;
updateMessage(message: InboxMessage, index?: number): void;
selectDataset(datasetId: string): void;
setLoading(isLoading: boolean): void;
setError(error: Error | null): void;
setErrorNoClient(): void;
private handleRetry;
private handleRefresh;
private refreshTheme;
refreshInfoStateThemes(): void;
get errorProps(): any;
get emptyProps(): any;
private render;
private openVisibleMessage;
setLoadingStateFactory(factory: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => HTMLElement): void;
setEmptyStateFactory(factory: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => HTMLElement): void;
setErrorStateFactory(factory: (props: CourierInboxStateErrorFactoryProps | undefined | null) => HTMLElement): void;
setListItemFactory(factory: (props: CourierInboxListItemFactoryProps | undefined | null) => HTMLElement): void;
setPaginationItemFactory(factory: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => HTMLElement): void;
scrollToTop(animate?: boolean): void;
}