Whalebird-desktop-client-ma.../src/renderer/store/TimelineSpace/Modals.ts

60 lines
2.0 KiB
TypeScript

import NewToot, { NewTootModuleState } from './Modals/NewToot'
import ImageViewer, { ImageViewerState } from './Modals/ImageViewer'
import Jump, { JumpState } from './Modals/Jump'
import ListMembership, { ListMembershipState } from './Modals/ListMembership'
import AddListMember, { AddListMemberState } from './Modals/AddListMember'
import MuteConfirm, { MuteConfirmState } from './Modals/MuteConfirm'
import Shortcut, { ShortcutState } from './Modals/Shortcut'
import Report, { ReportState } from './Modals/Report'
import { Module, GetterTree } from 'vuex'
import { RootState } from '@/store/index'
export type ModalsState = {}
type ModalsModule = {
Jump: JumpState
AddListMember: AddListMemberState
ImageViewer: ImageViewerState
ListMembership: ListMembershipState
MuteConfirm: MuteConfirmState
NewToot: NewTootModuleState
Report: ReportState
Shortcut: ShortcutState
}
export type ModalsModuleState = ModalsModule & ModalsState
const state = (): ModalsState => ({})
const getters: GetterTree<ModalsState, RootState> = {
modalOpened: (_state, _getters, rootState) => {
const imageViewer = rootState.TimelineSpace.Modals.ImageViewer.modalOpen
const newToot = rootState.TimelineSpace.Modals.NewToot.modalOpen
const jump = rootState.TimelineSpace.Modals.Jump.modalOpen
const listMembership = rootState.TimelineSpace.Modals.ListMembership.modalOpen
const addListMember = rootState.TimelineSpace.Modals.AddListMember.modalOpen
const shortcut = rootState.TimelineSpace.Modals.Shortcut.modalOpen
const muteConfirm = rootState.TimelineSpace.Modals.MuteConfirm.modalOpen
const report = rootState.TimelineSpace.Modals.Report.modalOpen
return imageViewer || newToot || jump || listMembership || addListMember || shortcut || muteConfirm || report
}
}
const Modals: Module<ModalsState, RootState> = {
namespaced: true,
modules: {
ImageViewer,
NewToot,
Jump,
ListMembership,
AddListMember,
MuteConfirm,
Shortcut,
Report
},
state: state,
getters: getters
}
export default Modals