index.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { useEvent } from 'functional-mini/component';
  2. import '../_util/assert-component2';
  3. import { mountComponent } from '../_util/component';
  4. import { useComponentEvent } from '../_util/hooks/useComponentEvent';
  5. import { useMixState } from '../_util/hooks/useMixState';
  6. import { GuideTourDefaultProps } from './props';
  7. var GuideTour = function (props) {
  8. var _a = useMixState(props.defaultCurrent, {
  9. value: props.current,
  10. }), state = _a[0], _b = _a[1], isControlled = _b.isControlled, update = _b.update;
  11. var _c = useComponentEvent(props), triggerEvent = _c.triggerEvent, triggerEventOnly = _c.triggerEventOnly;
  12. useEvent('onNext', function () {
  13. var currentValue = state;
  14. var newCurrent = currentValue + 1;
  15. if (!isControlled) {
  16. update(newCurrent);
  17. }
  18. triggerEvent('change', newCurrent);
  19. });
  20. useEvent('onPrev', function () {
  21. var currentValue = state;
  22. var newCurrent = currentValue - 1;
  23. if (!isControlled) {
  24. update(newCurrent);
  25. }
  26. triggerEvent('change', newCurrent);
  27. });
  28. useEvent('onCancel', function () {
  29. triggerEventOnly('cancel');
  30. });
  31. useEvent('onSwiperChange', function (e) {
  32. var current = e.detail.current;
  33. if (!isControlled) {
  34. update(current);
  35. }
  36. triggerEvent('change', current);
  37. });
  38. return {
  39. mixin: { value: state },
  40. };
  41. };
  42. mountComponent(GuideTour, GuideTourDefaultProps);