useComponentEvent.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { __spreadArray } from "tslib";
  2. import { useComponent } from 'functional-mini/component';
  3. import fmtEvent from '../fmtEvent';
  4. import { useEvent } from './useEvent';
  5. export function useComponentEvent(props) {
  6. var component = useComponent();
  7. var triggerEvent = useEvent(function (eventName, value, e) {
  8. // 首字母大写,然后加上 on
  9. var alipayCallbackName = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  10. if (props[alipayCallbackName]) {
  11. props[alipayCallbackName](value, fmtEvent(props, e));
  12. }
  13. });
  14. var triggerEventValues = useEvent(function (eventName, values, e) {
  15. // 首字母大写,然后加上 on
  16. var alipayCallbackName = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  17. if (props[alipayCallbackName]) {
  18. props[alipayCallbackName].apply(props, __spreadArray(__spreadArray([], values, false), [fmtEvent(props, e)], false));
  19. }
  20. });
  21. var triggerEventOnly = useEvent(function (eventName, e) {
  22. // 首字母大写,然后加上 on
  23. var alipayCallbackName = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  24. if (props[alipayCallbackName]) {
  25. props[alipayCallbackName](fmtEvent(props, e));
  26. }
  27. });
  28. var alipayForwardCatchEvent = useEvent(function (eventName, e) {
  29. // 首字母大写,然后加上 catch
  30. var alipayCallbackName = 'catch' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  31. if (props[alipayCallbackName]) {
  32. props[alipayCallbackName](fmtEvent(props, e));
  33. }
  34. });
  35. var alipayForwardEvent = useEvent(function (eventName, e) {
  36. // 首字母大写,然后加上 on
  37. var alipayCallbackName = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
  38. if (props[alipayCallbackName]) {
  39. props[alipayCallbackName](fmtEvent(props, e));
  40. }
  41. });
  42. return {
  43. triggerEvent: triggerEvent,
  44. triggerEventValues: triggerEventValues,
  45. triggerEventOnly: triggerEventOnly,
  46. // 转发 catch 事件
  47. alipayForwardCatchEvent: alipayForwardCatchEvent,
  48. // 转发事件
  49. alipayForwardEvent: alipayForwardEvent,
  50. };
  51. }