UNPKG

taro-hooks

Version:
57 lines (56 loc) 2.2 kB
"use strict"; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var taro_1 = require("@tarojs/taro"); var core_1 = require("@taro-hooks/core"); var usePromise_1 = tslib_1.__importDefault(require("../usePromise")); var index_1 = require("./utils/index"); function useLocation(options) { var _ref = (0, core_1.useState)(), location = _ref[0], setLocation = _ref[1]; var getAsync = (0, usePromise_1["default"])(index_1.getLocation); var get = function get(getOption) { return getAsync(_extends({}, options != null ? options : {}, getOption != null ? getOption : {})).then(function (res) { setLocation(res); return res; }); }; var choose = (0, usePromise_1["default"])(taro_1.chooseLocation); var choosePOI = (0, usePromise_1["default"])(taro_1.choosePoi); var open = (0, usePromise_1["default"])(taro_1.openLocation); var startUpdateAsync = (0, usePromise_1["default"])(taro_1.startLocationUpdate); var startBackgroundAsync = (0, usePromise_1["default"])(taro_1.startLocationUpdateBackground); var stopUpdateAsync = (0, usePromise_1["default"])(taro_1.stopLocationUpdate); var toggleUpdate = function toggleUpdate(onOff, background) { return onOff ? background ? startBackgroundAsync() : startUpdateAsync() : stopUpdateAsync(); }; var on = function on(callback, error) { if (error) { (0, index_1.onLocationChangeError)(callback); } (0, index_1.onLocationChange)(callback); }; var off = function off(callback, error) { if (error) { (0, index_1.offLocationChangeError)(callback); } (0, index_1.offLocationChange)(callback); }; (0, core_1.useEffect)(function () { get(); }, []); return [location, { get: get, choose: choose, choosePOI: choosePOI, open: open, toggleUpdate: toggleUpdate, on: on, off: off }]; } exports["default"] = useLocation;