index.js 947 B

123456789101112131415161718192021222324252627282930
  1. import { mountComponent } from '../_util/component';
  2. import { useMergedState, hasValue } from '../_util/hooks/useMergedState';
  3. import { useEvent } from 'functional-mini/component';
  4. import { useComponentEvent } from '../_util/hooks/useComponentEvent';
  5. var Switch = function (props) {
  6. var _a = useMergedState(props.defaultChecked, {
  7. value: props.checked,
  8. }), value = _a[0], updateValue = _a[1];
  9. var triggerEvent = useComponentEvent(props).triggerEvent;
  10. useEvent('onChange', function (e) {
  11. var newValue = !value;
  12. if (!hasValue(props.checked)) {
  13. updateValue(newValue);
  14. }
  15. triggerEvent('change', newValue, e);
  16. }, [props, value]);
  17. return {
  18. mixin: { value: value },
  19. };
  20. };
  21. mountComponent(Switch, {
  22. checked: null,
  23. loading: false,
  24. color: '',
  25. checkedText: '',
  26. uncheckedText: '',
  27. size: 'medium',
  28. disabled: false,
  29. defaultChecked: false,
  30. });