@trycourier/courier-ui-inbox
Version:
Inbox components for the Courier web UI
54 lines (53 loc) • 2.7 kB
TypeScript
import { InboxAction, InboxMessage } from '../../@trycourier/courier-js/src';
import { InboxDataSet } from '../types/inbox-data-set';
import { CourierInboxFeedType } from '../types/feed-type';
import { CourierInboxStateErrorFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxListItemFactoryProps, CourierInboxPaginationItemFactoryProps } from '../types/factories';
import { CourierInboxThemeManager } from '../types/courier-inbox-theme-manager';
export declare class CourierInboxList extends HTMLElement {
private _themeSubscription;
private _messages;
private _feedType;
private _isLoading;
private _error;
private _canPaginate;
private _onMessageClick;
private _onMessageActionClick;
private _onMessageLongPress;
private _onRefresh;
private _onPaginationTrigger?;
private _listItemFactory?;
private _paginationItemFactory?;
private _loadingStateFactory?;
private _emptyStateFactory?;
private _errorStateFactory?;
get messages(): InboxMessage[];
constructor(props: {
themeManager: CourierInboxThemeManager;
onRefresh: () => void;
onPaginationTrigger: (feedType: CourierInboxFeedType) => void;
onMessageClick: (message: InboxMessage, index: number) => void;
onMessageActionClick: (message: InboxMessage, action: InboxAction, index: number) => void;
onMessageLongPress: (message: InboxMessage, index: number) => void;
});
private getStyles;
private reset;
setDataSet(dataSet: InboxDataSet): void;
addPage(dataSet: InboxDataSet): void;
addMessage(message: InboxMessage, index?: number): void;
removeMessage(index?: number): void;
updateMessage(message: InboxMessage, index?: number): void;
setFeedType(feedType: CourierInboxFeedType): void;
setLoading(isLoading: boolean): void;
setError(error: Error | null): void;
setErrorNoClient(): void;
private handleRetry;
private handleRefresh;
private render;
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;
refreshTheme(): void;
disconnectedCallback(): void;
}