Skip to content

Commit

Permalink
feat(app): add notifications based on request status ✨
Browse files Browse the repository at this point in the history
  • Loading branch information
PierreBrisorgueil committed Mar 5, 2020
1 parent 8e946cb commit 4f91b52
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 10 deletions.
1 change: 1 addition & 0 deletions scripts/generateConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ module.exports = ${
.replace(/"/g, '\'')
.replace(/\n|\r/g, ',\n')
.replace(/{,/g, '{')
.replace('[,', '[')
.replace(/,,/g, ',')};
`;
fs.writeSync(fd, envConfigFile);
Expand Down
4 changes: 4 additions & 0 deletions src/config/defaults/development.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ module.exports = {
},
theme: {
navIfLogged: false, // show nav only if user is logged (easy for one page site)
snackbar: { // kind of notifications on requests
status: true, // activate for error
methods: ['post', 'put'], // show on sucess depends of methods
},
},
vuetify: {
theme: {
Expand Down
50 changes: 40 additions & 10 deletions src/modules/_app/app.vue
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
<template>

<v-app id="app">
<waosHeader/>
<waosNav v-if="!config.theme.navIfLogged || isLoggedIn"/>
<v-snackbar
v-if="config.theme.snackbar.status"
v-model="snackbar.status"
:top="true"
:right="true"
:timeout="snackbar.timeout"
:color="snackbar.color"
>
{{ snackbar.text }}
<v-btn dark text @click="snackbar.status = false"> <v-icon>fa-times</v-icon> </v-btn>
</v-snackbar>

<waosHeader />

<waosNav v-if="!config.theme.navIfLogged || isLoggedIn" />

<v-content>
<router-view />
</v-content>

<waosFooter/>
<waosFooter />
</v-app>
</template>

Expand All @@ -26,6 +38,16 @@ import router from '@/modules/_app/app.router';
* Export default
*/
export default {
data() {
return {
snackbar: {
status: false,
color: 'error',
timeout: 4000,
text: 'toto',
},
};
},
components: {
waosHeader,
waosNav,
Expand All @@ -37,16 +59,24 @@ export default {
created() {
// auth
this.axios.interceptors.response.use(
(response) => response,
(response) => {
if (this.config.theme.snackbar.status && response.config && this.config.theme.snackbar.methods.indexOf(response.config.method) > -1) {
this.snackbar.text = `${response.data.type}: ${response.data.message}`;
this.snackbar.color = 'primary';
this.snackbar.status = true;
}
return response;
},
(err) => new Promise(() => {
if (
err.response.status === 401
&& err.config
&& !err.config.__isRetryRequest
) {
if (err.response.status === 401 && err.config && !err.config.__isRetryRequest) {
this.$store.dispatch('signout');
router.push('/signin');
}
if (this.config.theme.snackbar.status && err.response && err.response.data && err.response.data.description) {
this.snackbar.text = err.response.data.description;
this.snackbar.color = 'error';
this.snackbar.status = true;
}
throw err;
}),
);
Expand Down

0 comments on commit 4f91b52

Please sign in to comment.