64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
|
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
||
|
|
||
|
import ReportsTab from './tabs/reports_tab/reports_tab.vue'
|
||
|
// import StatusesTab from './tabs/statuses_tab.vue'
|
||
|
// import UsersTab from './tabs/users_tab.vue'
|
||
|
|
||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||
|
import {
|
||
|
faFlag,
|
||
|
faMessage,
|
||
|
faUsers
|
||
|
} from '@fortawesome/free-solid-svg-icons'
|
||
|
|
||
|
library.add(
|
||
|
faFlag,
|
||
|
faMessage,
|
||
|
faUsers
|
||
|
)
|
||
|
|
||
|
const ModModalContent = {
|
||
|
components: {
|
||
|
TabSwitcher,
|
||
|
|
||
|
ReportsTab
|
||
|
// StatusesTab,
|
||
|
// UsersTab
|
||
|
},
|
||
|
computed: {
|
||
|
open () {
|
||
|
return this.$store.state.interface.modModalState !== 'hidden'
|
||
|
},
|
||
|
bodyLock () {
|
||
|
return this.$store.state.interface.modModalState === 'visible'
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
onOpen () {
|
||
|
const targetTab = this.$store.state.interface.modModalTargetTab
|
||
|
// We're being told to open in specific tab
|
||
|
if (targetTab) {
|
||
|
const tabIndex = this.$refs.tabSwitcher.$slots.default().findIndex(elm => {
|
||
|
return elm.props && elm.props['data-tab-name'] === targetTab
|
||
|
})
|
||
|
if (tabIndex >= 0) {
|
||
|
this.$refs.tabSwitcher.setTab(tabIndex)
|
||
|
}
|
||
|
}
|
||
|
// Clear the state of target tab, so that next time moderation is opened
|
||
|
// it doesn't force it.
|
||
|
this.$store.dispatch('clearModModalTargetTab')
|
||
|
}
|
||
|
},
|
||
|
mounted () {
|
||
|
this.onOpen()
|
||
|
},
|
||
|
watch: {
|
||
|
open: function (value) {
|
||
|
if (value) this.onOpen()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default ModModalContent
|