UNPKG

taro-hooks

Version:
59 lines (58 loc) 2.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var taro_1 = require("@tarojs/taro"); var core_1 = require("@taro-hooks/core"); var tool_1 = require("../utils/tool"); function useSelectorQuery() { var query = (0, core_1.useRef)((0, taro_1.createSelectorQuery)()); var querySelector = function querySelector(selector) { return query.current.select(selector); }; var querySelectorAll = function querySelectorAll(selector) { return query.current.selectAll(selector); }; function queryWithMethod(method, selector, all, params) { return new Promise(function (resolve, reject) { try { var withQuery = all ? querySelectorAll : querySelector; if (params) { withQuery(selector)[method](params, resolve).exec(); } else { withQuery(selector)[method](resolve).exec(); } } catch (e) { reject((0, tool_1.generateGeneralFail)("selectorQuery." + method, e.errMsg || e.message)); } }); } var getBoundingClientRect = function getBoundingClientRect(selector, all) { return queryWithMethod('boundingClientRect', selector, all); }; var getContext = function getContext(selector) { return queryWithMethod('context', selector); }; var getFields = function getFields(selector, fields) { return queryWithMethod('fields', selector, false, fields); }; var getNode = function getNode(selector) { return queryWithMethod('node', selector); }; var getScrollOffset = function getScrollOffset(selector) { return queryWithMethod('scrollOffset', selector); }; return [query.current, { querySelector: querySelector, querySelectorAll: querySelectorAll, selectViewport: query.current.selectViewport, "in": query.current["in"], exec: query.current.exec, getBoundingClientRect: getBoundingClientRect, getContext: getContext, getFields: getFields, getNode: getNode, getScrollOffset: getScrollOffset }]; } exports["default"] = useSelectorQuery;