UNPKG

petals-ui

Version:
36 lines (35 loc) 1.43 kB
import { isNumber, isFunction, isPlainObject, noop, mixin } from '@ntks/toolbox'; function generateShortcutMethod(callback) { return (content, optsOrHandlerOrDuration, optsOrHandler, options) => { let resolvedDuration = 3; let resolvedCloseHandler = noop; let resolvedOptions; if (options) { resolvedOptions = isPlainObject(options) ? options : {}; } if (optsOrHandler) { if (!resolvedOptions && isPlainObject(optsOrHandler)) { resolvedOptions = optsOrHandler; } else if (isFunction(optsOrHandler)) { resolvedCloseHandler = optsOrHandler; } } if (optsOrHandlerOrDuration !== undefined) { if (!resolvedOptions && isPlainObject(optsOrHandlerOrDuration)) { resolvedOptions = optsOrHandlerOrDuration; } else if (isFunction(optsOrHandlerOrDuration)) { resolvedCloseHandler = optsOrHandlerOrDuration; } else if (isNumber(optsOrHandlerOrDuration)) { resolvedDuration = optsOrHandlerOrDuration; } } if (!resolvedOptions) { resolvedOptions = {}; } callback(mixin(true, { type: 'info', content, duration: resolvedDuration, onClose: resolvedCloseHandler }, resolvedOptions)); }; } export { generateShortcutMethod };