logmower-frontend/src/stores/index.js

48 lines
1.2 KiB
JavaScript

import { createStore } from "vuex"
const store = createStore({
state: {
filterOptions: {},
filterQuery: {},
},
getters: {
streaming (state) {
return state.filterQuery['streaming'] ?? false
},
filterQuery (state) {
return state.filterQuery
}
},
actions: {
setFilterOptions(context, payload) {
context.commit("SET_FILTER_OPTIONS", payload);
},
setFilterQuery(context, payload) {
context.commit("SET_FILTER_QUERY", payload);
},
toggleFilterQueryStreaming(context) {
context.commit("TOGGLE_FILTER_QUERY_STREAMING");
},
},
mutations: {
SET_FILTER_OPTIONS(state, payload) {
state.filterOptions = payload
},
SET_FILTER_QUERY(state, payload) {
let query = payload
if (Object.keys(state.filterOptions).length) {
query['initial'] = false
}
state.filterQuery = query
},
TOGGLE_FILTER_QUERY_STREAMING(state) {
let query = state.filterQuery
query['streaming'] = (query['streaming'] === undefined) ? false : query['streaming']
query['streaming'] = !(query['streaming'])
query['initial'] = false
state.filterQuery = query
},
},
});
export default store