taro-hooks
Version:
为 Taro 而设计的 Hooks Library
81 lines (80 loc) • 2.54 kB
JavaScript
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;
;