UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

29 lines (28 loc) 972 B
export function mergeProps(...propsList) { const eventMap = new Map(); return propsList.reduce((acc, props) => { Object.entries(props).forEach(([key, value]) => { if (key.startsWith('on') && key.charCodeAt(2) >= /* A */ 65 && key.charCodeAt(2) <= /* Z */ 90) { if (!eventMap.has(key)) { eventMap.set(key, []); } if (typeof value === 'function') { eventMap.get(key)?.push(value); acc[key] = (...args) => { return eventMap .get(key) ?.map((fn) => fn(...args)) .find((v) => v !== undefined); }; } } else { acc[key] = value; } }); return acc; }, {}); } //# sourceMappingURL=mergeProps.js.map