0
0
Fork 0

Add an error bar to the site

This commit is contained in:
Oliver-Akins 2021-01-01 12:54:33 -07:00
parent 67849abfeb
commit 87d83c33cf

View file

@ -1,9 +1,26 @@
<template> <template>
<div id="app" class="maximize"> <div id="app" class="maximize">
<div v-if="!isMobile" class="maximize"> <div v-if="!isMobile" class="maximize">
<CreateJoin v-if="gameState == `login`" /> <transition name="top-slide">
<GameLobby v-else-if="gameState == `lobby`" /> <div
<InGame v-else-if="gameState == `in-game`" /> v-if="error"
class="error-bar"
>
{{ error }}
</div>
</transition>
<CreateJoin
v-if="gameState == `login`"
@error="handleError($event)"
/>
<GameLobby
v-else-if="gameState == `lobby`"
@error="handleError($event)"
/>
<InGame
v-else-if="gameState == `in-game`"
@error="handleError($event)"
/>
<Attributions /> <Attributions />
</div> </div>
<div <div
@ -36,6 +53,9 @@ export default {
"GameLobby": GameLobby, "GameLobby": GameLobby,
"InGame": InGame, "InGame": InGame,
}, },
data() {return {
error: null
}},
computed: { computed: {
gameState() { gameState() {
return this.$store.state.view; return this.$store.state.view;
@ -50,16 +70,13 @@ export default {
return this.userAgent.match(/Navigator|iPhone|iPod|Android/) != null; return this.userAgent.match(/Navigator|iPhone|iPod|Android/) != null;
}, },
}, },
methods: {}, methods: {
sockets: { handleError(data) {
Error(data) { this.error = `${data.status}${data.source ? ` @ ${data.source}` : ''} : ${data.message}`;
console.error(`${this.error}${data.extra ? ` ${data.extra}` : ''}`);
// Ensure that it was actually an error setTimeout(() => { this.error = null; }, 3000);
if (200 <= data.status && data.status < 300) { return; }; },
},
console.error(data)
}
}
} }
</script> </script>
@ -78,6 +95,19 @@ html, body {
margin: 0; margin: 0;
} }
.error-bar {
background-color: #bb0000;
justify-content: center;
align-items: center;
color: #FFFFFF;
position: fixed;
display: flex;
height: 35px;
width: 100vw;
left: 0;
top: 0;
}
.error { .error {
border: solid 2px red; border: solid 2px red;
margin: 50% auto; margin: 50% auto;