✨ feature: Confirm modal component added
This commit is contained in:
parent
88fd6ec0d2
commit
d1138efb5a
67
src/components/modal/VConfirmModal.vue
Normal file
67
src/components/modal/VConfirmModal.vue
Normal file
|
@ -0,0 +1,67 @@
|
|||
<script setup lang="ts">
|
||||
import ConfirmDialog from 'primevue/confirmdialog';
|
||||
import type { ConfirmDialogProps } from 'primevue/confirmdialog';
|
||||
import VButtonGroup from '../button/VButtonGroup.vue';
|
||||
import styles from '@visua/typography.module.css';
|
||||
|
||||
const props = withDefaults(defineProps<ConfirmDialogProps>(), {
|
||||
group: '',
|
||||
draggable: true,
|
||||
breakpoints: undefined,
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ConfirmDialog
|
||||
:group="props.group"
|
||||
:draggable="props.draggable"
|
||||
:breakpoints="props.breakpoints"
|
||||
>
|
||||
<template #container="slotProps">
|
||||
<div class="container">
|
||||
<div
|
||||
class='header'
|
||||
:class="[styles['titles-H6-XXS']]"
|
||||
:style="('danger' in slotProps.message.acceptProps) ? {color: 'var(--text-default-error)'} : {color: 'var(--text-default-warning)'}"
|
||||
>
|
||||
<i :class="slotProps.message.icon" style="font-weight:lighter;"></i>
|
||||
<span style="width: 100%;">{{ slotProps.message.header }}</span>
|
||||
</div>
|
||||
<span>{{ slotProps.message.message }}</span>
|
||||
<VButtonGroup
|
||||
:title="slotProps.message.group"
|
||||
inline-layout-when="always"
|
||||
size="sm"
|
||||
align="right"
|
||||
:buttons="[
|
||||
{
|
||||
...slotProps.message.acceptProps,
|
||||
onclick: slotProps.acceptCallback
|
||||
},
|
||||
{
|
||||
...slotProps.message.rejectProps,
|
||||
onclick: slotProps.rejectCallback
|
||||
}
|
||||
]"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</ConfirmDialog>
|
||||
</template>
|
||||
|
||||
<style lang="css" scoped>
|
||||
.container{
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.header{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: var(--p-dialog-header-gap);
|
||||
align-items: baseline;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user