UNPKG

taro-hooks

Version:
81 lines (80 loc) 2.54 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"); var INIT = { tempFilePaths: [], tempFiles: [] }; function useImage(options) { var _ref = (0, core_1.useState)(INIT), fileInfo = _ref[0], setFileInfo = _ref[1]; var chooseAsync = (0, usePromise_1["default"])(taro_1.chooseImage); var chooseMessageAsync = (0, usePromise_1["default"])(taro_1.chooseMessageFile); var choose = function choose(chooseOption, messageFile) { if (chooseOption === void 0) { chooseOption = {}; } if (messageFile) { return chooseMessageAsync(_extends({ count: 1 }, chooseOption)); } return chooseAsync(_extends({}, options != null ? options : {}, chooseOption)).then(function (res) { var tempFilePaths = res.tempFilePaths, tempFiles = res.tempFiles; setFileInfo({ tempFilePaths: tempFilePaths, tempFiles: tempFiles }); return res; }); }; var compressAsync = (0, usePromise_1["default"])(index_1.compressImage); var compress = function compress(src, quality) { if (quality === void 0) { quality = 80; } return compressAsync({ src: src, quality: quality }); }; var getAsync = (0, usePromise_1["default"])(taro_1.getImageInfo); var get = function get(src) { return getAsync({ src: src }); }; var saveAsync = (0, usePromise_1["default"])(index_1.saveImageToPhotosAlbum); var save = function save(filePath) { return saveAsync({ filePath: filePath }); }; var preview = (0, usePromise_1["default"])(taro_1.previewImage); var previewMedia = (0, usePromise_1["default"])(taro_1.previewMedia); var editAsync = (0, usePromise_1["default"])(taro_1.editImage); var edit = function edit(src) { return editAsync({ src: src }); }; return [fileInfo, { choose: choose, compress: compress, get: get, preview: preview, previewMedia: previewMedia, save: save, edit: edit }]; } exports["default"] = useImage;