pzl-react-reusable-components
Version:
39 lines • 1.43 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import React, { useState } from 'react';
import { UserMessage } from './UserMessage';
/**
* Show a temporarily message
*
* @param {number} defaultDuration Default duration
* @param {IUserMessageProps} defaultProps Default props
*/
export function useMessage(defaultDuration, defaultProps) {
if (defaultDuration === void 0) { defaultDuration = 5000; }
if (defaultProps === void 0) { defaultProps = {}; }
var _a = useState(null), state = _a[0], setState = _a[1];
var props = __assign(__assign({}, defaultProps), state);
var element = state ? React.createElement(UserMessage, __assign({}, props)) : null;
/**
* Set message
*
* @param {IUserMessageProps} message Message
* @param {number} duration Duration in ms
*/
function set(message, duration) {
if (duration === void 0) { duration = defaultDuration; }
setState(message);
window.setTimeout(function () { return setState(null); }, duration);
}
return [element, set];
}
//# sourceMappingURL=useMessage.js.map