-
you are already logged in
-
-
+
+
+
[chat]
+
+
+
you are already logged in
+
+
+
+
@@ -20,10 +23,12 @@
import textbtn from '@/components/textbtn';
import {matrix} from '@/main.js';
import {cookieHandler} from "@/lib/cookieHandler";
+import ThrobberOverlay from "@/components/throbberOverlay";
export default {
name: "login.vue",
components: {
+ ThrobberOverlay,
textbtn
},
methods: {
@@ -41,22 +46,38 @@ export default {
this.loginError = 'username is in wrong style';
return;
}
+ this.loading = 'logging in';
matrix.login(this.user, this.password, this.homeServer, (error) => {
this.loginError = `login failed: ${error}`;
}, token => {
- let cookie = new cookieHandler();
- cookie.setCookie({
+ this.loading = 'store token';
+ this.cookie.setCookie({
baseUrl: this.homeServer,
userId: this.user,
accessToken: token
});
- cookie.setExpire(15);
- cookie.store();
+ this.cookie.setExpire(15);
+ this.cookie.store();
+ this.loading = false;
this.$router.push('/rooms/');
});
},
- logout(){
- matrix.logout();
+ async logout(){
+ this.loading = 'logging out';
+ await matrix.logout();
+ this.loading = 'remove token';
+ this.cookie.setCookie({
+ baseUrl: undefined,
+ userId: undefined,
+ accessToken: undefined
+ });
+ this.cookie.setExpire(0);
+ this.cookie.store();
+ this.loading = false;
+ this.$forceUpdate();
+ },
+ showLogin(){
+ return matrix.client === undefined;
}
},
data(){
@@ -65,14 +86,19 @@ export default {
password: "",
homeServer: "https://adb.sh",
loginError: "",
- showLogin: (matrix.client === undefined)
+ cookie: new cookieHandler(),
+ loading: false
}
}
}