91 lines
4.0 KiB
Vue
91 lines
4.0 KiB
Vue
<!-- This example requires Tailwind CSS v2.0+ -->
|
|
<template>
|
|
<TransitionRoot as="template" :show="open">
|
|
<Dialog as="div" static class="fixed z-[1000] inset-0 overflow-y-auto" @close="staticCloseModal" :open="open">
|
|
<div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
|
|
<TransitionChild as="template" enter="ease-out duration-300" enter-from="opacity-0" enter-to="opacity-100" leave="ease-in duration-200" leave-from="opacity-100" leave-to="opacity-0">
|
|
<DialogOverlay class="fixed inset-0 bg-indigo-200 bg-opacity-75 transition-opacity" />
|
|
</TransitionChild>
|
|
|
|
<!-- This element is to trick the browser into centering the modal contents. -->
|
|
<span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">​</span>
|
|
<TransitionChild as="template" enter="ease-out duration-300" enter-from="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" enter-to="opacity-100 translate-y-0 sm:scale-100" leave="ease-in duration-200" leave-from="opacity-100 translate-y-0 sm:scale-100" leave-to="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95">
|
|
<div class="inline-block align-bottom bg-indigo-300 rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6">
|
|
<div class="sm:flex sm:items-start">
|
|
<div class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-orange sm:mx-0 sm:h-10 sm:w-10">
|
|
<ExclamationIcon class="h-6 w-6 text-red-600" aria-hidden="true" />
|
|
</div>
|
|
<div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
|
|
<DialogTitle as="h3" class="text-lg leading-6 font-medium text-gray-light">
|
|
Удалить контент
|
|
</DialogTitle>
|
|
<div class="mt-2">
|
|
<p class="text-sm text-gray-light">
|
|
Вы уверены, что хотите удалить этот контент? Восстановить можно, но будет сложно!
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
|
|
<button type="button"
|
|
@click="remove"
|
|
class="mx-3 my-1 transition shadow-none hover:shadow-pink inline-flex items-center px-8 py-3 justify-center text-base rounded-md text-white bg-pink focus:outline-none">
|
|
Удалить
|
|
</button>
|
|
|
|
<button type="button"
|
|
@click="staticCloseModal"
|
|
class="mx-3 my-1 transition shadow-none hover:shadow-classic inline-flex items-center px-8 py-3 justify-center text-base rounded-md text-white bg-indigo-300 focus:outline-none">
|
|
Отменить
|
|
</button>
|
|
|
|
</div>
|
|
</div>
|
|
</TransitionChild>
|
|
</div>
|
|
</Dialog>
|
|
</TransitionRoot>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import { Dialog, DialogOverlay, DialogTitle, TransitionChild, TransitionRoot } from '@headlessui/vue'
|
|
import { ExclamationIcon } from '@heroicons/vue/outline'
|
|
import { Inertia } from "@inertiajs/inertia";
|
|
|
|
export default {
|
|
components: {
|
|
Dialog,
|
|
DialogOverlay,
|
|
DialogTitle,
|
|
TransitionChild,
|
|
TransitionRoot,
|
|
ExclamationIcon,
|
|
},
|
|
emits: ['closeWarningModal', 'closeModal', 'destroyFeed'],
|
|
props: {
|
|
feed_id: Number,
|
|
open: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
},
|
|
|
|
methods:{
|
|
staticCloseModal(){
|
|
this.$emit('closeWarningModal', false);
|
|
},
|
|
remove()
|
|
{
|
|
this.$emit('closeWarningModal', false);
|
|
this.$nextTick(() => {
|
|
this.$emit('closeModal', false);
|
|
})
|
|
|
|
Inertia.delete(route('feed.destroy', this.feed_id), { preserveScroll: true, preserveState: true })
|
|
}
|
|
}
|
|
|
|
}
|
|
</script>
|