@ua/react-native-airship
Version:
Airship plugin for React Native apps.
104 lines (92 loc) • 2.94 kB
text/typescript
import { InboxMessage } from './types';
/**
* Airship Message Center
*/
export class AirshipMessageCenter {
constructor(private readonly module: any) {}
/**
* Gets the unread count.
* @returns A promise with the result.
*/
public getUnreadCount(): Promise<number> {
return this.module.messageCenterGetUnreadCount();
}
/**
* Gets the inbox messages.
* @returns A promise with the result.
*/
public getMessages(): Promise<InboxMessage[]> {
return this.module.messageCenterGetMessages();
}
/**
* Marks a message as read.
* @param messageId The message Id.
* @returns A promise. Will reject if the message is not
* found or if takeOff is not called.
*/
public markMessageRead(messageId: string): Promise<void> {
return this.module.messageCenterMarkMessageRead(messageId);
}
/**
* Deletes a message.
* @param messageId The message Id.
* @returns A promise. Will reject if the message is not
* found or if takeOff is not called.
*/
public deleteMessage(messageId: string): Promise<void> {
return this.module.messageCenterDeleteMessage(messageId);
}
/**
* Dismisses the OOTB message center if displayed.
* @returns A promise.
*/
public dismiss(): Promise<void> {
return this.module.messageCenterDismiss();
}
/**
* Requests to display the Message Center.
*
* Will either emit an event to display the
* Message Center if auto launch message center
* is disabled, or display the OOTB message center.
* @param messageId Optional message Id.
* @returns A promise.
*/
public display(messageId?: string): Promise<void> {
return this.module.messageCenterDisplay(messageId);
}
/**
* Overlays the Message Center regardless if auto launch Message Center is enabled or not.
*
* @param messageId Optional message Id.
* @returns A promise.
*/
public showMessageCenter(messageId?: string): Promise<void> {
return this.module.messageCenterShowMessageCenter(messageId);
}
/**
* Overlays the message view regardless if auto launch Message Center is enabled or not.
*
* @param messageId The message Id.
* @returns A promise.
*/
public showMessageView(messageId: string): Promise<void> {
return this.module.messageCenterShowMessageView(messageId);
}
/**
* Refreshes the messages.
* @returns A promise. Will reject if the list fails to refresh or if
* takeOff is not called yet.
*/
public refreshMessages(): Promise<void> {
return this.module.messageCenterRefresh();
}
/**
* Enables or disables showing the OOTB UI when requested to display by either
* `display` or by a notification with a Message Center action.
* @param autoLaunch true to show OOTB UI, false to emit events.
*/
public setAutoLaunchDefaultMessageCenter(autoLaunch: boolean) {
this.module.messageCenterSetAutoLaunchDefaultMessageCenter(autoLaunch);
}
}