import { ref } from 'vue' import { useMessage } from 'naive-ui' export function useTask() { const busy = ref(false) const message = useMessage() async function run(task: () => Promise, success?: string) { if (busy.value) return false busy.value = true try { await task(); if (success) message.success(success); return true } catch (e) { message.error((e as Error).message, { duration: 6000 }); return false } finally { busy.value = false } } return { busy, run, message } }