Skip to content

FormDialog

Modal dialog with header, form content, and footer buttons.

Import

ts
import { FormDialog } from '@four-bytes/four-tailwind-ui'

Basic Usage

vue
<script setup>
import { ref } from 'vue'
import { FormDialog, InputField, Button } from '@four-bytes/four-tailwind-ui'

const isOpen = ref(false)
const saving = ref(false)
const name = ref('')

const save = async () => {
  saving.value = true
  // ... save logic
  saving.value = false
  isOpen.value = false
}
</script>

<template>
  <Button @click="isOpen = true">Bearbeiten</Button>
  
  <FormDialog
    v-if="isOpen"
    title="Benutzer bearbeiten"
    confirmText="Speichern"
    :loading="saving"
    @close="isOpen = false"
    @confirm="save"
  >
    <InputField v-model="name" label="Name" />
  </FormDialog>
</template>

Danger Variant

vue
<FormDialog
  title="Benutzer loeschen"
  confirmText="Loeschen"
  variant="danger"
  @close="close"
  @confirm="deleteUser"
>
  <p>Sind Sie sicher, dass Sie diesen Benutzer loeschen moechten?</p>
</FormDialog>

Props

PropTypeDefaultDescription
titlestring-Dialog title
subtitlestring-Optional subtitle
confirmTextstring'Bestaetigen'Confirm button text
cancelTextstring'Abbrechen'Cancel button text
loadingTextstring-Text when loading
loadingbooleanfalseLoading state
confirmDisabledbooleanfalseDisable confirm button
variant'primary' | 'danger''primary'Button variant
size'sm' | 'md' | 'lg''md'Dialog size

Events

EventPayloadDescription
close-Emitted when dialog should close
confirm-Emitted when confirm button clicked

Released under the MIT License.