import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray"; import _extends from "@babel/runtime/helpers/esm/extends"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import * as React from 'react'; import Notice from './Notice'; export default function useNotification(notificationInstance) { var createdRef = React.useRef({}); var _React$useState = React.useState([]), _React$useState2 = _slicedToArray(_React$useState, 2), elements = _React$useState2[0], setElements = _React$useState2[1]; function notify(noticeProps) { var firstMount = true; notificationInstance.add(noticeProps, function (div, props) { var key = props.key; if (div && (!createdRef.current[key] || firstMount)) { var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, { holder: div })); createdRef.current[key] = noticeEle; setElements(function (originElements) { var index = originElements.findIndex(function (ele) { return ele.key === props.key; }); if (index === -1) { return [].concat(_toConsumableArray(originElements), [noticeEle]); } var cloneList = _toConsumableArray(originElements); cloneList[index] = noticeEle; return cloneList; }); } firstMount = false; }); } return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)]; }