UNPKG

@antmjs/vantui

Version:

一套适用于Taro3及React的vantui组件库

53 lines (51 loc) 2.17 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.createExtraNode = createExtraNode; var _taro = _interopRequireDefault(require("@tarojs/taro")); var _react = require("@tarojs/react"); var _runtime = require("@tarojs/runtime"); function createExtraNode() { var view = []; // 支持单个内容的更新,如toast插入后,新元素覆盖,旧元素延时移除 var renderNode = function renderNode(node) { if (view[0]) { setTimeout(function () { removeNode(); }, 10 * 16.66); } var currentPages = _taro.default.getCurrentPages(); var currentPage = currentPages.length ? currentPages[currentPages.length - 1] : null; if (currentPage) { var currentView = _runtime.document.createElement('view'); var path = currentPage['$taroPath']; var pageElement = _runtime.document.getElementById(path); (0, _react.render)(node, currentView); view.push(currentView); pageElement === null || pageElement === void 0 ? void 0 : pageElement.appendChild(currentView); } }; var removeNode = function removeNode() { var currentPages = _taro.default.getCurrentPages(); var currentPage = currentPages.length ? currentPages[currentPages.length - 1] : null; var rView = view[0]; if (currentPage && rView) { var _rView = view[0]; view.splice(0, 1); var path = currentPage['$taroPath']; var pageElement = _runtime.document.getElementById(path); try { var _pageElement$removeCh; pageElement === null || pageElement === void 0 ? void 0 : (_pageElement$removeCh = pageElement.removeChild) === null || _pageElement$removeCh === void 0 ? void 0 : _pageElement$removeCh.call(pageElement, _rView); } catch (err) { console.info("@antmjs/vantui: \n Does not support the execution of a purely imperative component cleanup method when the component is destroyed"); } (0, _react.unmountComponentAtNode)(_rView); } }; return { renderNode: renderNode, removeNode: removeNode }; }