taro-hooks
Version:
为 Taro 而设计的 Hooks Library
50 lines (49 loc) • 1.47 kB
JavaScript
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 shared_1 = require("@taro-hooks/shared");
var usePromise_1 = tslib_1.__importDefault(require("../usePromise"));
function useClipboardData() {
var _ref = (0, core_1.useState)(),
clipboardData = _ref[0],
changeClipborardData = _ref[1];
var getAsync = (0, usePromise_1["default"])(taro_1.getClipboardData);
var setAsync = (0, usePromise_1["default"])(taro_1.setClipboardData);
var set = function set(data) {
var clipboard = data;
if ((0, shared_1.strictOf)(data, 'Object') || (0, shared_1.isUndef)(data) || (0, shared_1.strictOf)(data, 'Null')) {
clipboard = JSON.stringify(data);
} else if (!(0, shared_1.isString)(data)) {
clipboard = data.toString();
}
changeClipborardData(clipboard);
return setAsync({
data: clipboard
});
};
var get = function get() {
return getAsync().then(function (_ref2) {
var data = _ref2.data;
var clipboard = data;
try {
clipboard = JSON.parse(data);
} catch (e) {
(0, shared_1.logError)(e);
}
changeClipborardData(clipboard);
return clipboard;
});
};
(0, core_1.useEffect)(function () {
get();
}, []);
return [clipboardData, {
set: set,
get: get
}];
}
exports["default"] = useClipboardData;
;