primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 4.38 kB
JavaScript
import*as e from"react";import{TransitionGroup as r}from"react-transition-group";import{CSSTransition as t}from"primereact/csstransition";import{classNames as n,IconUtils as a,ObjectUtils as o}from"primereact/utils";import{localeOption as i}from"primereact/api";import{useTimeout as l}from"primereact/hooks";import{Ripple as s}from"primereact/ripple";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},c.apply(this,arguments)}function u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function m(e){if(Array.isArray(e))return u(e)}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function p(e,r){if(e){if("string"==typeof e)return u(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,r):void 0}}function y(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(e){return m(e)||f(e)||p(e)||y()}function v(e){if(Array.isArray(e))return e}function g(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o=[],i=!0,l=!1;try{for(t=t.call(e);!(i=(n=t.next()).done)&&(o.push(n.value),!r||o.length!==r);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==t.return||t.return()}finally{if(l)throw a}}return o}}function b(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,r){return v(e)||g(e,r)||p(e,r)||b()}var E=e.memo(e.forwardRef((function(r,t){var o=r.message,c=o.severity,u=o.content,m=o.summary,f=o.detail,p=o.closable,y=o.icon,d=h(l((function(){v(null)}),o.life||3e3,!o.sticky),1)[0],v=function(e){d(),r.onClose&&r.onClose(r.message),e&&(e.preventDefault(),e.stopPropagation())},g=n("p-message p-component p-message-"+c),b=function(){if(!1!==p){var r=i("close");return e.createElement("button",{type:"button",className:"p-message-close p-link","aria-label":r,onClick:v},e.createElement("i",{className:"p-message-close-icon pi pi-times","aria-hidden":"true"}),e.createElement(s,null))}return null}(),E=function(){if(r.message){var t=y;t||(t=n("pi",{"pi-info-circle":"info"===c,"pi-exclamation-triangle":"warn"===c,"pi-times-circle":"error"===c,"pi-check":"success"===c}));var o=a.getJSXIcon(t,{className:"p-message-icon"},{props:r});return u||e.createElement(e.Fragment,null,o,e.createElement("span",{className:"p-message-summary"},m),e.createElement("span",{className:"p-message-detail"},f))}return null}();return e.createElement("div",{ref:t,className:g,onClick:function(){r.onClick&&r.onClick(r.message)}},e.createElement("div",{className:"p-message-wrapper"},E,b))})));E.displayName="UIMessage";var A=0,N=e.memo(e.forwardRef((function(n,a){var i=h(e.useState([]),2),l=i[0],s=i[1],u=e.useRef(null),m=function(e){if(e){var r=f(e,!0);if(Array.isArray(e))for(var t=0;t<e.length;t++)e[t].id=A++,r=[].concat(d(l),d(e));else e.id=A++,r=l?[].concat(d(l),[e]):[e];s(r)}},f=function(e,r){var t;if(Array.isArray(e))for(var n=0;n<e.length;n++)e[n].id=A++,t=r?[].concat(d(l),d(e)):e;else e.id=A++,t=r&&l?[].concat(d(l),[e]):[e];return t},p=function(){s([])},y=function(e){var r=f(e,!1);s(r)},v=function(e){s(l.filter((function(r){return r.id!==e.id}))),n.onRemove&&n.onRemove(e)};e.useImperativeHandle(a,(function(){return{props:n,show:m,replace:y,clear:p,getElement:function(){return u.current}}}));var g=o.findDiffKeys(n,N.defaultProps);return e.createElement("div",c({id:n.id,ref:u,className:n.className,style:n.style},g),e.createElement(r,null,l.map((function(r){var a=e.createRef();return e.createElement(t,{nodeRef:a,key:r.id,classNames:"p-message",unmountOnExit:!0,timeout:{enter:300,exit:300},options:n.transitionOptions},e.createElement(E,{ref:a,message:r,onClick:n.onClick,onClose:v}))}))))})));N.displayName="Messages",N.defaultProps={__TYPE:"Messages",id:null,className:null,style:null,transitionOptions:null,onRemove:null,onClick:null};export{N as Messages};