UNPKG

@antmjs/vantui

Version:

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

49 lines (48 loc) 1.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useForceResize = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = require("react"); var _hooks = require("../hooks"); var _element = require("../utils/element"); var useForceResize = function useForceResize(query, onResize) { var sizeRef = (0, _react.useRef)({ width: 0, height: 0 }); var forceResize = (0, _hooks.usePersistFn)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { var _yield$queryElementSi, width, height, newSize; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0, _element.queryElementSize)(query); case 2: _yield$queryElementSi = _context.sent; width = _yield$queryElementSi.width; height = _yield$queryElementSi.height; if (!(width === sizeRef.current.width && height === sizeRef.current.height)) { _context.next = 7; break; } return _context.abrupt("return"); case 7: newSize = { width: width, height: height }; sizeRef.current = newSize; onResize(newSize); case 10: case "end": return _context.stop(); } }, _callee); }))); return forceResize; }; exports.useForceResize = useForceResize;