mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
82 lines
1.8 KiB
Vue
82 lines
1.8 KiB
Vue
<template>
|
|
<div class="modal-wrapper">
|
|
<!-- Todo: Put all modals with 2 buttons and equal properties in one customiced 'danger-action-modal' -->
|
|
<disable-modal
|
|
v-if="open === 'disable'"
|
|
:id="data.resource.id"
|
|
:type="data.type"
|
|
:name="name"
|
|
:callbacks="data.callbacks"
|
|
@close="close"
|
|
/>
|
|
<release-modal
|
|
v-if="open === 'release'"
|
|
:id="data.resource.id"
|
|
:type="data.type"
|
|
:name="name"
|
|
@close="close"
|
|
/>
|
|
<report-modal
|
|
v-if="open === 'report'"
|
|
:id="data.resource.id"
|
|
:type="data.type"
|
|
:name="name"
|
|
:callbacks="data.callbacks"
|
|
@close="close"
|
|
/>
|
|
<delete-modal
|
|
v-if="open === 'delete'"
|
|
:id="data.resource.id"
|
|
:type="data.type"
|
|
:name="name"
|
|
:callbacks="data.callbacks"
|
|
@close="close"
|
|
/>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import DeleteModal from '~/components/Modal/DeleteModal'
|
|
import DisableModal from '~/components/Modal/DisableModal'
|
|
import ReleaseModal from '~/components/ReleaseModal/ReleaseModal.vue'
|
|
import ReportModal from '~/components/Modal/ReportModal'
|
|
import { mapGetters } from 'vuex'
|
|
|
|
export default {
|
|
name: 'Modal',
|
|
components: {
|
|
DisableModal,
|
|
ReleaseModal,
|
|
ReportModal,
|
|
DeleteModal,
|
|
},
|
|
computed: {
|
|
...mapGetters({
|
|
data: 'modal/data',
|
|
open: 'modal/open',
|
|
}),
|
|
name() {
|
|
if (!this.data || !this.data.resource) return ''
|
|
const {
|
|
resource: { name, title, author },
|
|
} = this.data
|
|
switch (this.data.type) {
|
|
case 'user':
|
|
return name
|
|
case 'contribution':
|
|
return title
|
|
case 'comment':
|
|
return author && author.name
|
|
default:
|
|
return null
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
close() {
|
|
this.$store.commit('modal/SET_OPEN', {})
|
|
},
|
|
},
|
|
}
|
|
</script>
|