Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { ActionTree, GetterTree, Module, MutationTree } from 'vuex';
  2. import { State as RootState } from '@/store/state';
  3. import { getField, updateField } from 'vuex-map-fields';
  4. import { Request } from '@/client/requests-types';
  5. import { getRequests } from '@/client/requests';
  6. import {
  7.   RequestState,
  8.   RequestsContext,
  9. } from '@/store/client/modules/requests/requests-types';
  10.  
  11. export const STATE: RequestState = {
  12.   requests: [],
  13. };
  14.  
  15. export const actions: ActionTree<RequestState, RootState> = {
  16.   fetchRequests({ commit }: RequestsContext): void {
  17.     // getRequests will be changed to async function that gets requests from server
  18.     const requests: Request[] = getRequests();
  19.  
  20.     commit('setRequests', requests);
  21.   },
  22. };
  23.  
  24. export const mutations: MutationTree<RequestState> = {
  25.   updateField,
  26.  
  27.   setRequests(state: RequestState, requests: Request[]): void {
  28.     state.requests = requests;
  29.   },
  30. };
  31.  
  32. export const getters: GetterTree<RequestState, RootState> = {
  33.   getField,
  34. };
  35.  
  36. export const requestModule: Module<RequestState, RootState> = {
  37.   namespaced: true,
  38.  
  39.   state: { ...STATE },
  40.   getters,
  41.   mutations,
  42.   actions,
  43. };
  44.  
  45. export default requestModule;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement