mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-06 16:10:09 +00:00
49 lines
1.1 KiB
Vue
49 lines
1.1 KiB
Vue
<!-- The main global dialog to show various things -->
|
|
<template>
|
|
<Dialog
|
|
v-model:visible="dialogStore.isVisible"
|
|
modal
|
|
closable
|
|
closeOnEscape
|
|
dismissableMask
|
|
:maximizable="maximizable"
|
|
:maximized="maximized"
|
|
@hide="dialogStore.closeDialog"
|
|
@maximize="onMaximize"
|
|
@unmaximize="onUnmaximize"
|
|
>
|
|
<template #header>
|
|
<component
|
|
v-if="dialogStore.headerComponent"
|
|
:is="dialogStore.headerComponent"
|
|
/>
|
|
<h3 v-else>{{ dialogStore.title || ' ' }}</h3>
|
|
</template>
|
|
|
|
<component :is="dialogStore.component" v-bind="contentProps" />
|
|
</Dialog>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { computed, ref } from 'vue'
|
|
import { useDialogStore } from '@/stores/dialogStore'
|
|
import Dialog from 'primevue/dialog'
|
|
|
|
const dialogStore = useDialogStore()
|
|
const maximizable = computed(() => dialogStore.props.maximizable ?? false)
|
|
const maximized = ref(false)
|
|
|
|
const onMaximize = () => {
|
|
maximized.value = true
|
|
}
|
|
|
|
const onUnmaximize = () => {
|
|
maximized.value = false
|
|
}
|
|
|
|
const contentProps = computed(() => ({
|
|
...dialogStore.props,
|
|
maximized: maximized.value
|
|
}))
|
|
</script>
|