useDynamicDialog.js 584 B

123456789101112131415161718192021222324252627
  1. import { defu } from "defu"
  2. export default function useDynamicDialog() {
  3. const nuxtApp = useNuxtApp()
  4. return nuxtApp.runWithContext(() => {
  5. const dialog = useDialog()
  6. const defaultOptions = {
  7. props: {
  8. modal: true,
  9. dismissableMask: true,
  10. showHeader: false,
  11. pt: {
  12. root: "z-90 w-11/12 max-w-128",
  13. content: "p-0"
  14. },
  15. ptOptions: { mergeProps: ptViewMerge }
  16. }
  17. }
  18. return {
  19. open: (component, options = {}) =>
  20. dialog.open(component, defu(options, defaultOptions))
  21. }
  22. })
  23. }