use-pause.ts 527 B

12345678910111213141516171819202122232425
  1. import { ref } from "vue"
  2. export type PausePack<T extends object> = T & {
  3. pause: () => void,
  4. resume: () => void,
  5. isPause: boolean
  6. }
  7. export const usePause = <T extends object>(api?: T): PausePack<T> => {
  8. const isPause = ref(false)
  9. const result = (api || {}) as PausePack<T>
  10. Object.defineProperty(result, 'isPause', {
  11. get() {
  12. return isPause.value
  13. },
  14. set() {
  15. return true
  16. }
  17. })
  18. result.pause = () => isPause.value = true
  19. result.resume = () => isPause.value = false
  20. return result
  21. }