-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstore.js
77 lines (74 loc) · 2.43 KB
/
store.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import Vue from 'vue'
import Vuex from 'vuex'
import Data from './src/assets/Data'
Vue.use(Vuex)
export const store = new Vuex.Store({
state: {
Products: Data.Products,
Weapons: Data.Weapons,
selectedProduct: null,
Cart: [],
Filters: {
Weapon: '',
Skin: '',
Condition: '',
MinPrice: 0,
MaxPrice: 99999
},
skinsForWeapon: [],
Inventory: []
},
getters: {
Products: state => state.Products,
selectedProduct: state => state.selectedProduct,
Cart: state => state.Cart,
Filters: state => state.Filters,
skinsForWeapon: state => state.skinsForWeapon,
Weapons: state => state.Weapons,
Inventory: state => state.Inventory
},
mutations: {
setSelected (state, payload) {
state.selectedProduct = payload
},
addToCart (state, payload) {
let check = state.Cart.some(item => item.ID === payload.ID)
if (!check) {
state.Cart.push(payload)
Vue.notify({
group: 'foo',
title: `ADDED ${payload.GUN} | ${payload.SKIN} (${payload.CONDITION}) TO THE CART!`,
type: 'success'
})
}
else {
Vue.notify({
group: 'foo',
title: `ITEM IS ALREADY ADDED TO THE CART!`,
type: 'error'
})
}
},
removeItem (state, payload) {
state.Cart.splice(state.Cart.indexOf(payload), 1)
},
setFilter (state, payload) {
if (payload.type === 'WEAPONS') {
let result = []
state.Filters.Weapon = payload.value
let findSkinsForWeapon = state.Products.filter(p => p.GUN.includes(state.Filters.Weapon))
findSkinsForWeapon.map(item => {
let check = result.some(x => x.SKIN === item.SKIN)
if (!check) result.push(item)
})
state.skinsForWeapon = result
}
if (payload.type === 'SKINS') state.Filters.Skin = payload.value
if (payload.type === 'CONDITION') state.Filters.Condition = payload.value
},
resetCart (state) {
state.Cart = []
},
removeItemsFromInventory (state) {state.Inventory = [] }
}
})