useWave.js 730 B

1234567891011121314151617181920
  1. import { onBeforeUnmount, getCurrentInstance } from 'vue';
  2. import { findDOMNode } from '../props-util';
  3. import showWaveEffect from './WaveEffect';
  4. export default function useWave(className, wave) {
  5. const instance = getCurrentInstance();
  6. let stopWave;
  7. function showWave() {
  8. var _a;
  9. const node = findDOMNode(instance);
  10. stopWave === null || stopWave === void 0 ? void 0 : stopWave();
  11. if (((_a = wave === null || wave === void 0 ? void 0 : wave.value) === null || _a === void 0 ? void 0 : _a.disabled) || !node) {
  12. return;
  13. }
  14. stopWave = showWaveEffect(node, className.value);
  15. }
  16. onBeforeUnmount(() => {
  17. stopWave === null || stopWave === void 0 ? void 0 : stopWave();
  18. });
  19. return showWave;
  20. }