import SideBar, { SideBarModuleState } from './Contents/SideBar' import Home, { HomeState } from './Contents/Home' import Notifications, { NotificationsState } from './Contents/Notifications' import Favourites, { FavouritesState } from './Contents/Favourites' import Bookmarks, { BookmarksState } from './Contents/Bookmarks' import Local, { LocalState } from './Contents/Local' import Public, { PublicState } from './Contents/Public' import Search, { SearchModuleState } from './Contents/Search' import Lists from './Contents/Lists' import Hashtag, { HashtagModuleState } from './Contents/Hashtag' import DirectMessages, { DirectMessagesState } from './Contents/DirectMessages' import FollowRequests, { FollowRequestsState } from './Contents/FollowRequests' import Mentions, { MentionsState } from './Contents/Mentions' import { Module, MutationTree, ActionTree } from 'vuex' import { RootState } from '@/store' export type ContentsState = { loading: boolean } type ContentsModule = { SideBar: SideBarModuleState Home: HomeState Notifications: NotificationsState Mentions: MentionsState DirectMessages: DirectMessagesState Favourites: FavouritesState Bookmarks: BookmarksState Local: LocalState Public: PublicState Search: SearchModuleState Hashtag: HashtagModuleState FollowRequests: FollowRequestsState } export type ContentsModuleState = ContentsModule & ContentsState const state = (): ContentsState => ({ loading: false }) export const MUTATION_TYPES = { CHANGE_LOADING: 'changeLoading' } const mutations: MutationTree = { [MUTATION_TYPES.CHANGE_LOADING]: (state, loading: boolean) => { state.loading = loading } } const actions: ActionTree = { changeLoading: ({ commit }, loading) => { commit(MUTATION_TYPES.CHANGE_LOADING, loading) } } const Contents: Module = { namespaced: true, state: state, modules: { SideBar, Home, Notifications, Favourites, Bookmarks, Local, DirectMessages, Mentions, Public, Search, Lists, Hashtag, FollowRequests }, mutations: mutations, actions: actions } export default Contents