init
This commit is contained in:
@@ -0,0 +1,85 @@
|
|||||||
|
window.app.component('lnbits-dialog', {
|
||||||
|
template: '#lnbits-dialog',
|
||||||
|
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
position: {
|
||||||
|
type: String,
|
||||||
|
default: 'top'
|
||||||
|
},
|
||||||
|
persistent: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
showCancel: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
cancelLabel: {
|
||||||
|
type: String,
|
||||||
|
default: 'Close'
|
||||||
|
},
|
||||||
|
cancelColor: {
|
||||||
|
type: String,
|
||||||
|
default: 'grey'
|
||||||
|
},
|
||||||
|
showConfirm: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
confirmLabel: {
|
||||||
|
type: String,
|
||||||
|
default: 'Confirm'
|
||||||
|
},
|
||||||
|
confirmColor: {
|
||||||
|
type: String,
|
||||||
|
default: 'primary'
|
||||||
|
},
|
||||||
|
confirmOutline: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
confirmFlat: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
confirmLoading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
confirmDisable: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
emits: ['update:show', 'hide', 'cancel', 'confirm'],
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
hasActionsSlot() {
|
||||||
|
return !!this.$slots.actions
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
handleHide() {
|
||||||
|
this.$emit('update:show', false)
|
||||||
|
this.$emit('hide')
|
||||||
|
},
|
||||||
|
|
||||||
|
handleCancel() {
|
||||||
|
this.$emit('cancel')
|
||||||
|
},
|
||||||
|
|
||||||
|
handleConfirm() {
|
||||||
|
this.$emit('confirm')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
<template id="lnbits-dialog">
|
||||||
|
<q-dialog
|
||||||
|
:model-value="show"
|
||||||
|
:position="position"
|
||||||
|
:persistent="persistent"
|
||||||
|
@update:model-value="$emit('update:show', $event)"
|
||||||
|
@hide="handleHide"
|
||||||
|
>
|
||||||
|
<q-card class="q-pa-lg q-pt-xl lnbits__dialog-card">
|
||||||
|
<!-- Header with optional title -->
|
||||||
|
<div v-if="title" class="text-h6 q-mb-md" v-text="title"></div>
|
||||||
|
|
||||||
|
<!-- Main content slot -->
|
||||||
|
<slot></slot>
|
||||||
|
|
||||||
|
<!-- Footer actions -->
|
||||||
|
<div class="row q-mt-lg">
|
||||||
|
<!-- Left-aligned action buttons -->
|
||||||
|
<div v-if="hasActionsSlot" class="col">
|
||||||
|
<slot name="actions"></slot>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Right-aligned buttons -->
|
||||||
|
<div class="col-auto q-ml-auto">
|
||||||
|
<q-btn
|
||||||
|
v-if="showCancel"
|
||||||
|
v-close-popup
|
||||||
|
flat
|
||||||
|
:color="cancelColor"
|
||||||
|
:label="cancelLabel"
|
||||||
|
@click="handleCancel"
|
||||||
|
/>
|
||||||
|
<q-btn
|
||||||
|
v-if="showConfirm"
|
||||||
|
:outline="confirmOutline"
|
||||||
|
:flat="confirmFlat"
|
||||||
|
:color="confirmColor"
|
||||||
|
:label="confirmLabel"
|
||||||
|
:loading="confirmLoading"
|
||||||
|
:disable="confirmDisable"
|
||||||
|
class="q-ml-sm"
|
||||||
|
@click="handleConfirm"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
|
</template>
|
||||||
Reference in New Issue
Block a user