UNPKG

@bothub-chat/ui

Version:

Bothub UI Components

2 lines (1 loc) 2.18 kB
import{jsxs as t,jsx as o}from"react/jsx-runtime";import{useState as i,useCallback as r,useEffect as e}from"react";import{useSpring as n,useTransition as s}from"@react-spring/web";import{NotificationStyled as a,NotifyProgressBar as c,NotificationContent as l,NotificationLeft as m,NotificationIcon as d,NotificationInfo as f,NotificationTitle as p,NotificationText as u,NotificationRight as x,NotificationCloseButton as h}from"./styled.js";import{ErrorBigIcon as b}from"../../icons/error-big/index.js";import{InfoBigIcon as y}from"../../icons/info-big/index.js";import{SuccessBigIcon as g}from"../../icons/success-big/index.js";import{WarningBigIcon as j}from"../../icons/warning-big/index.js";import{Loader as w}from"../loader/index.js";import"./list/styled.js";import{useNotifications as k}from"./list/context.js";export{NotificationsContext,NotificationsProvider}from"./list/context.js";import"tslib";import"react-dom";import"../portal/styled.js";const v=({className:v,variant:N="info",autoClose:C=5e3,notificationId:$="unknown",title:L,children:X,onClose:D,closeAriaLabel:I})=>{const[M,A]=i(!0),{isInNotificationList:E}=k(),P=!!X&&!!L;let R;switch(N){case"info":R=y;break;case"warn":R=j;break;case"error":R=b;break;case"success":R=g;break;case"loading":R=w}const q=r(()=>{M||null==D||D($)},[M,D,$]),[{width:z},B]=n(()=>({width:"0%"}));e(()=>{M&&C&&B.start({from:{width:"0%"},to:{width:"100%"},config:{duration:C},onRest:t=>{t.finished&&A(!1)}})},[M,C,B]);const F=r(()=>{C&&B.pause()},[B,C]),G=r(()=>{C&&B.resume()},[B,C]);return s(M,E?{from:{opacity:0,transform:"translateX(412px)"},enter:{opacity:1,transform:"translateX(0px)"},leave:{opacity:0,transform:"translateX(412px)"},config:{duration:250},onDestroyed:q}:{onDestroyed:q})((i,r)=>r&&t(a,{style:i,$variant:N,className:v,onMouseEnter:F,onMouseLeave:G,children:[C&&o(c,{$variant:N,style:{width:z}}),t(l,{$text:P,children:[t(m,{$text:P,children:[o(d,{as:R}),t(f,{children:[o(p,{children:null!=L?L:X}),P&&"string"==typeof X?o(u,{children:X}):null,P&&"string"!=typeof X?X:null]})]}),o(x,{children:o(h,{"aria-label":I,onClick:A.bind(null,!1)})})]})]}))};export{v as Notification,u as NotificationText,k as useNotifications};