import { watch } from 'vue'; import type { Ref } from 'vue'; interface UseFormDialogOptions { open: Ref; source: () => T; populate: (value: T) => void; reset: () => void; } export function useFormDialog({ open, source, populate, reset, }: UseFormDialogOptions) { watch(source, populate); watch(open, (isOpen) => { if (isOpen) { populate(source()); } else { reset(); } }); }