taro-hooks
Version:
为 Taro 而设计的 Hooks Library
44 lines • 1.26 kB
JavaScript
import { getClipboardData, setClipboardData } from '@tarojs/taro';
import { useEffect, useState } from '@taro-hooks/core';
import { strictOf, isString, isUndef, logError } from '@taro-hooks/shared';
import usePromise from '../usePromise';
function useClipboardData() {
var _useState = useState(),
clipboardData = _useState[0],
changeClipborardData = _useState[1];
var getAsync = usePromise(getClipboardData);
var setAsync = usePromise(setClipboardData);
var set = function set(data) {
var clipboard = data;
if (strictOf(data, 'Object') || isUndef(data) || strictOf(data, 'Null')) {
clipboard = JSON.stringify(data);
} else if (!isString(data)) {
clipboard = data.toString();
}
changeClipborardData(clipboard);
return setAsync({
data: clipboard
});
};
var get = function get() {
return getAsync().then(function (_ref) {
var data = _ref.data;
var clipboard = data;
try {
clipboard = JSON.parse(data);
} catch (e) {
logError(e);
}
changeClipborardData(clipboard);
return clipboard;
});
};
useEffect(function () {
get();
}, []);
return [clipboardData, {
set: set,
get: get
}];
}
export default useClipboardData;