summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/App.vue2
-rw-r--r--src/components/News.vue4
-rw-r--r--src/components/ServerStatus.vue2
-rw-r--r--src/reCAPTCHA.ts11
-rw-r--r--src/router/redirects.ts2
-rw-r--r--src/views/AccountRecovery.vue16
-rw-r--r--src/views/Registration.vue14
7 files changed, 27 insertions, 24 deletions
diff --git a/src/App.vue b/src/App.vue
index 01632d9..9e4d7b3 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -107,7 +107,7 @@ export default class AppV extends Vue {
globalStatus = process.env.VUE_APP_STATUS?.trim() ?? "";
- mounted () {
+ mounted (): void {
self.addEventListener("initial-load", () => {
this.loaded = true;
});
diff --git a/src/components/News.vue b/src/components/News.vue
index 3515aa4..ae92d58 100644
--- a/src/components/News.vue
+++ b/src/components/News.vue
@@ -136,7 +136,7 @@ export default class News extends Vue {
private entries: NewsEntry[] = (newsEntries as NewsEntry[]).slice(this.from, this.count);
private fullyLoaded = false;
- beautify () {
+ beautify (): void {
this.entries.forEach(entry => {
// FIXME: weird Vue bug
entry.html = entry.html.replace(/<br\/>/g,"<br></br>");
@@ -151,7 +151,7 @@ export default class News extends Vue {
});
}
- mounted () {
+ mounted (): void {
if (!process.env.VUE_APP_NEWS_JSON || !process.env.VUE_APP_NEWS_JSON.startsWith("https")) {
this.beautify();
// no extra news to load so end here
diff --git a/src/components/ServerStatus.vue b/src/components/ServerStatus.vue
index dd4eaa7..c5f6d3c 100644
--- a/src/components/ServerStatus.vue
+++ b/src/components/ServerStatus.vue
@@ -69,7 +69,7 @@ export default class ServerStatus extends Vue {
setTimeout(this.getStatus, 8000);
}
- mounted () {
+ mounted (): void {
// use the last cached value to populate prior to first fetch:
if (Reflect.has(self, "localStorage")) {
this.Players = +(localStorage.getItem("onlinePlayers") || 99);
diff --git a/src/reCAPTCHA.ts b/src/reCAPTCHA.ts
index 51a6350..471cc9b 100644
--- a/src/reCAPTCHA.ts
+++ b/src/reCAPTCHA.ts
@@ -3,13 +3,16 @@
const loadHandler = "onRecaptchaLoad";
const script = `https://www.google.com/recaptcha/api.js?onload=${loadHandler}`;
+// @ts-ignore
+type gRecaptchaInstance = any;
+
export default class ReCaptchaLoader {
/**
* asynchronously injects reCAPTCHA and resolves once fully loaded
*
- * @return {Promise<Object>} the grecaptcha inferface
+ * @return {Promise<gRecaptchaInstance>} the grecaptcha inferface
*/
- static load () {
+ static load (): Promise<gRecaptchaInstance> {
return new Promise((resolve, reject) => {
if (Reflect.has(self, "grecaptcha")) {
// we already have it loaded: reset it
@@ -48,11 +51,11 @@ export default class ReCaptchaLoader {
/**
* checks whether reCAPTCHA is ready to use
*/
- static get isReady () {
+ static get isReady (): boolean {
return Reflect.has(self, "grecaptcha");
}
- static get instance () {
+ static get instance (): gRecaptchaInstance {
return this.isReady ? Reflect.get(self, "grecaptcha"): null;
}
}
diff --git a/src/router/redirects.ts b/src/router/redirects.ts
index 949a531..241abe6 100644
--- a/src/router/redirects.ts
+++ b/src/router/redirects.ts
@@ -19,7 +19,7 @@ const redirects = [
},
{
path: "/downloads.php",
- redirect: () => {
+ redirect: (): void => {
self.location.href = "https://manaplus.themanaworld.org/";
}
},
diff --git a/src/views/AccountRecovery.vue b/src/views/AccountRecovery.vue
index 2eaf0d3..d0ca097 100644
--- a/src/views/AccountRecovery.vue
+++ b/src/views/AccountRecovery.vue
@@ -179,7 +179,7 @@ export default class Recovery extends Vue {
emailToken = "";
recaptcha_key = process.env.VUE_APP_RECAPTCHA;
- async mounted () {
+ async mounted (): Promise<void> {
let token: string = document.location.hash.slice(1) as string;
if (Reflect.has(this.$route.params, "emailToken")) {
@@ -221,7 +221,7 @@ export default class Recovery extends Vue {
}
}
- async start () {
+ async start (): Promise<void> {
this.step = -4;
try {
@@ -239,16 +239,16 @@ export default class Recovery extends Vue {
}
}
- async checkEmail () {
+ async checkEmail (): Promise<void> {
this.step = reCAPTCHA.isReady ? 2 : -1;
// XXX: any actual checks needed here?
}
- private sleep (milliseconds: number) {
+ private sleep (milliseconds: number): Promise<number> {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
- async confirm () {
+ async confirm (): Promise<void> {
reCAPTCHA.instance.execute();
let token = "";
@@ -323,7 +323,7 @@ export default class Recovery extends Vue {
}
}
- async checkUser () {
+ async checkUser (): Promise<void> {
// TODO: check if the token is valid for this username
this.step = reCAPTCHA.isReady ? 5 : -1;
await this.$nextTick();
@@ -347,7 +347,7 @@ export default class Recovery extends Vue {
return hexCodes.join("");
}
- async checkPassword () {
+ async checkPassword (): Promise<void> {
const fullHash = await this.sha1(this.user.pwd);
const hashPrefix = fullHash.substring(0, 5);
const hashSuffix = fullHash.substring(5);
@@ -382,7 +382,7 @@ export default class Recovery extends Vue {
}
}
- async confirm2 () {
+ async confirm2 (): Promise<void> {
reCAPTCHA.instance.execute();
let token = "";
diff --git a/src/views/Registration.vue b/src/views/Registration.vue
index 782b072..e170f47 100644
--- a/src/views/Registration.vue
+++ b/src/views/Registration.vue
@@ -162,7 +162,7 @@ export default class Registration extends Vue {
specialEvent = process.env.VUE_APP_EVENT?.trim() ?? ""; // special in-game events
- async mounted () {
+ async mounted (): Promise<void> {
// already loaded (user returned to this page)
if (reCAPTCHA.isReady) {
await this.$nextTick();
@@ -174,7 +174,7 @@ export default class Registration extends Vue {
}
}
- async start () {
+ async start (): Promise<void> {
this.step = -3;
try {
@@ -187,13 +187,13 @@ export default class Registration extends Vue {
}
}
- async checkEmail () {
+ async checkEmail (): Promise<void> {
this.step = 2;
await this.$nextTick();
(this.$refs._user as HTMLInputElement).focus();
}
- async checkUser () {
+ async checkUser (): Promise<void> {
// TODO: check here whether the username is taken
this.step = 3;
await this.$nextTick();
@@ -217,7 +217,7 @@ export default class Registration extends Vue {
return hexCodes.join("");
}
- async checkPassword () {
+ async checkPassword (): Promise<void> {
const fullHash = await this.sha1(this.user.pwd);
const hashPrefix = fullHash.substring(0, 5);
const hashSuffix = fullHash.substring(5);
@@ -252,11 +252,11 @@ export default class Registration extends Vue {
}
}
- sleep (milliseconds: number) {
+ sleep (milliseconds: number): Promise<number> {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
- async create () {
+ async create (): Promise<void> {
reCAPTCHA.instance.execute();
let token = "";