UNPKG

taro-hooks

Version:
44 lines 1.26 kB
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;