diff --git a/src/components/requests/RequestItem.vue b/src/components/requests/RequestItem.vue new file mode 100644 index 0000000..8469fc9 --- /dev/null +++ b/src/components/requests/RequestItem.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/src/pages/requests/ContactCoach.vue b/src/pages/requests/ContactCoach.vue index 2b21bb5..a705b8c 100644 --- a/src/pages/requests/ContactCoach.vue +++ b/src/pages/requests/ContactCoach.vue @@ -38,6 +38,12 @@ export default { this.formIsValid = false; return; } + this.$store.dispatch('requests/contactCoach', { + email: this.email, + message: this.message, + coachId: this.$route.id + }); + this.$router.replace('/coaches'); } } }; diff --git a/src/pages/requests/RequestsRecieved.vue b/src/pages/requests/RequestsRecieved.vue index 76cc0b3..0e09f4b 100644 --- a/src/pages/requests/RequestsRecieved.vue +++ b/src/pages/requests/RequestsRecieved.vue @@ -1,3 +1,49 @@ + + + + diff --git a/src/store/index.js b/src/store/index.js index 4cbc3fd..946816e 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,10 +1,12 @@ import { createStore } from 'vuex'; import coachesModule from './modules/coaches/index'; +import requestsModule from './modules/requests/index'; const store = createStore({ modules: { - coaches: coachesModule + coaches: coachesModule, + requests: requestsModule }, state() { return { diff --git a/src/store/modules/requests/actions.js b/src/store/modules/requests/actions.js new file mode 100644 index 0000000..9daaa31 --- /dev/null +++ b/src/store/modules/requests/actions.js @@ -0,0 +1,11 @@ +export default { + contactCoach(context, payload) { + const request = { + id: new Date().toISOString(), + coachId: payload.coachId, + userEmail: payload.email, + message: payload.message + }; + context.commit('addRequest', request); + } +}; diff --git a/src/store/modules/requests/getters.js b/src/store/modules/requests/getters.js new file mode 100644 index 0000000..e28959d --- /dev/null +++ b/src/store/modules/requests/getters.js @@ -0,0 +1,8 @@ +export default { + requests(state) { + return state.requests; + }, + hasRequests(state) { + return state.requests && state.requests.length > 0; + } +}; diff --git a/src/store/modules/requests/index.js b/src/store/modules/requests/index.js new file mode 100644 index 0000000..3cf0e31 --- /dev/null +++ b/src/store/modules/requests/index.js @@ -0,0 +1,15 @@ +import mutations from './mutations.js'; +import actions from './actions.js'; +import getters from './getters'; + +export default { + namespaced: true, + state() { + return { + requests: [] + }; + }, + mutations, + actions, + getters +}; diff --git a/src/store/modules/requests/mutations.js b/src/store/modules/requests/mutations.js new file mode 100644 index 0000000..4f9653a --- /dev/null +++ b/src/store/modules/requests/mutations.js @@ -0,0 +1,5 @@ +export default { + addRequest(state, payload) { + state.requests.push(payload); + } +};