UNPKG

taro-hooks

Version:
51 lines 2.03 kB
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); } import { openLocation, chooseLocation, choosePoi, startLocationUpdate, startLocationUpdateBackground, stopLocationUpdate } from '@tarojs/taro'; import { useEffect, useState } from '@taro-hooks/core'; import usePromise from '../usePromise'; import { getLocation, onLocationChange, offLocationChange, onLocationChangeError, offLocationChangeError } from './utils/index'; function useLocation(options) { var _useState = useState(), location = _useState[0], setLocation = _useState[1]; var getAsync = usePromise(getLocation); var get = function get(getOption) { return getAsync(_extends({}, options != null ? options : {}, getOption != null ? getOption : {})).then(function (res) { setLocation(res); return res; }); }; var choose = usePromise(chooseLocation); var choosePOI = usePromise(choosePoi); var open = usePromise(openLocation); var startUpdateAsync = usePromise(startLocationUpdate); var startBackgroundAsync = usePromise(startLocationUpdateBackground); var stopUpdateAsync = usePromise(stopLocationUpdate); var toggleUpdate = function toggleUpdate(onOff, background) { return onOff ? background ? startBackgroundAsync() : startUpdateAsync() : stopUpdateAsync(); }; var on = function on(callback, error) { if (error) { onLocationChangeError(callback); } onLocationChange(callback); }; var off = function off(callback, error) { if (error) { offLocationChangeError(callback); } offLocationChange(callback); }; useEffect(function () { get(); }, []); return [location, { get: get, choose: choose, choosePOI: choosePOI, open: open, toggleUpdate: toggleUpdate, on: on, off: off }]; } export default useLocation;