diff --git a/frontend/src/ts/pages/tribe.ts b/frontend/src/ts/pages/tribe.ts
index 57dffd394..f9d52f4f8 100644
--- a/frontend/src/ts/pages/tribe.ts
+++ b/frontend/src/ts/pages/tribe.ts
@@ -4,6 +4,8 @@ import * as TribeState from "../tribe/tribe-state";
import * as TribeChat from "../tribe/tribe-chat";
import { qsr } from "../utils/dom";
import { CLIENT_STATE } from "../tribe/types";
+import tribeSocket from "../tribe/tribe-socket";
+import * as TribePagePreloader from "../tribe/pages/tribe-page-preloader";
export const page = new Page({
id: "tribe",
@@ -15,6 +17,8 @@ export const page = new Page({
afterHide: async () => {
// TODO: Fill it up later
TribeChat.reset("lobby");
+ tribeSocket.disconnect();
+ TribePagePreloader.reset();
},
beforeShow: async () => {
if (TribeState.isInARoom()) {
diff --git a/frontend/src/ts/tribe/pages/tribe-page-preloader.ts b/frontend/src/ts/tribe/pages/tribe-page-preloader.ts
index 84d03699e..e1b6f5f43 100644
--- a/frontend/src/ts/tribe/pages/tribe-page-preloader.ts
+++ b/frontend/src/ts/tribe/pages/tribe-page-preloader.ts
@@ -1,6 +1,6 @@
export function updateIcon(iconName: string, spinning = false): void {
$(".pageTribe .tribePage.preloader .icon").html(
- ``
+ ``,
);
}
@@ -27,3 +27,10 @@ export function showReconnectButton(): void {
export function hideReconnectButton(): void {
$(".pageTribe .tribePage.preloader .reconnectButton").addClass(`hidden`);
}
+
+export function reset(): void {
+ updateIcon("circle-notch", true);
+ updateText("Connecting to Tribe");
+ updateSubtext("Please wait...");
+ hideReconnectButton();
+}