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 @@
+
+
+
+ {{ message }}
+
+
+
+
+
+
\ 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 @@
- Requests
+
+
+
+
+ You haven't received any messages
+
+
+
+
+
+
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);
+ }
+};