
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
@etsoo/notificationbase
Advanced tools
TypeScript notification component for extending with all features described and partially implemented
TypeScript notification component for extending with all features described and partially implemented.
Using npm:
$ npm install @etsoo/notificationbase
Using yarn:
$ yarn add @etsoo/notificationbase
Notification object to display. INotification is the interface. INotificationBase is for data definition.
Properties:
| Name | Description |
|---|---|
| align | Readonly, display align |
| content | Content to display |
| id | Unique id |
| inputProps | Input or additional control properties |
| modal | Display as modal window or not |
| onDismiss | Dismiss callback |
| onReturn | Return value callback |
| open | Is open or not |
| ref | Render result reference |
| renderSetup | Setup callback before render |
| showIcon | Show icon or not |
| timespan | Seconds to auto dismiss |
| title | Title |
| type | Notification type |
Methods:
/**
* Constructor
* @param type Type
* @param content Content
* @param title Title
* @param align Align
*/
constructor(
type: NotificationType,
content: NotificationContent<UI>,
title?: NotificationContent<UI>,
align?: NotificationAlign
)
/**
* Dismiss it
* @param delaySeconds Delay seconds
* @returns Is delayed or not
*/
dismiss(delaySeconds: number = 0): boolean
/**
* Dispose it
*/
dispose()
/**
* Render method
* @param props Props
* @param className Style class name
* @param options Other options
*/
render(
props: NotificationRenderProps,
className?: string,
options?: any
): UI | undefined;
/**
* Return value
* Dismiss first, then run callback
* @param value
* @returns
*/
returnValue(value: any): Promise<void>;
NotificationContainer is to hold all notifications. INotificationContainer is the interface.
Properties:
| Name | Description |
|---|---|
| notifications | Readonly. Notification collection to display |
| isLoading | Is loading bar showing |
| isModeling | Is model window showing |
Methods:
/**
* Add notification
* @param notification Notification
* @param top Is insert top
*/
add(notification: INotification<UI, C>, top?: boolean): void;
/**
* Report error or message
* @param errorOrTitle Error message or title
* @param callback Callback
* @param type Type, default is Error
* @param props Props
*/
alert(
error: NotificationContent<UI> | [NotificationContent<UI>, NotificationContent<UI>],
callback?: NotificationReturn<void>,
type?: NotificationMessageType,
props?: C
): INotification<UI, C>;
/**
* Align all notification count
* @param align Align
*/
alignCount(align: NotificationAlign): number;
/**
* Align open notification count
* @param align Align
*/
alignOpenCount(align: NotificationAlign): number;
/**
* Remove all closed notification
*/
clear(): void;
/**
* Confirm action
* @param message Message
* @param title Title
* @param callback Callback
* @param props Props
*/
confirm(
message: NotificationContent<UI>,
title?: NotificationContent<UI>,
callback?: NotificationReturn<boolean>,
props?: C
): INotification<UI, C>;
/**
* Dispose all notifications
*/
dispose(): void;
/**
* Get notification with align and id
* @param align Align
* @param id Notification id
*/
get(align: NotificationAlign, id: string): INotification<UI, C> | undefined;
/**
* Get notification with id
* @param id Notification id
*/
getById(id: string): INotification<UI, C> | undefined;
/**
* Hide loading
* @param force Force to hide, otherwise, only the last one
*/
hideLoading(force?: boolean): void;
/**
* Show a message
* @param type Message type
* @param message Message
* @param title Title
* @param parameters Parameters
* @param props Props
*/
message(
type: NotificationMessageType,
message: NotificationContent<UI>,
title?: NotificationContent<UI>,
parameters?: NotificationParameters,
props?: C
): INotification<UI, C>;
/**
* Popup component as modal
* @param component Component to popup
* @param anchor Position anchor
* @returns Result
*/
popup(
component: NotificationContent<UI>,
anchor?: HTMLElement | string | { left: number; top: number }
): INotification<UI, C>;
/**
* Prompt action
* @param message Message
* @param callback Callback
* @param title Title
* @param props More properties
*/
prompt<T = string>(
message: NotificationContent<UI>,
callback: NotificationReturn<T>,
title?: NotificationContent<UI>,
props?: C
): INotification<UI, C>;
/**
* Show loading
* @param title Title
*/
showLoading(title?: NotificationContent<UI>): void;
/**
* Show a success message
* @param message Message
* @param title Title
* @param callback Callback
* @param timespan Timespan to close
* @param props Props
*/
succeed(
message: NotificationContent<UI>,
title?: NotificationContent<UI>,
callback?: NotificationReturn<void>,
timespan?: number,
props?: C
): INotification<UI, C>;
FAQs
TypeScript notification component for extending with all features described and partially implemented
We found that @etsoo/notificationbase demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.