From 8b4b24f0b14d3628990a2ec013d95da208af26e0 Mon Sep 17 00:00:00 2001 From: Miodec Date: Thu, 15 Aug 2024 12:55:28 +0200 Subject: [PATCH] refactor: move all account button related code to one file --- frontend/src/ts/controllers/account-controller.ts | 8 ++------ .../src/ts/controllers/user-flag-controller.ts | 2 +- frontend/src/ts/elements/account-button.ts | 14 ++++++++++++++ frontend/src/ts/modals/google-sign-up.ts | 1 - frontend/src/ts/modals/simple-modals.ts | 2 +- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/frontend/src/ts/controllers/account-controller.ts b/frontend/src/ts/controllers/account-controller.ts index ca2e85d53..0a85aa713 100644 --- a/frontend/src/ts/controllers/account-controller.ts +++ b/frontend/src/ts/controllers/account-controller.ts @@ -44,7 +44,6 @@ import { } from "../test/test-config"; import * as ConnectionState from "../states/connection"; import { navigate } from "./route-controller"; -import { getHtmlByUserFlags } from "./user-flag-controller"; import { FirebaseError } from "firebase/app"; import * as PSA from "../elements/psa"; import defaultResultFilters from "../constants/default-result-filters"; @@ -124,10 +123,8 @@ async function getDataAndInit(): Promise { } LoadingPage.updateText("Applying settings..."); const snapshot = DB.getSnapshot() as MonkeyTypes.Snapshot; - $("nav .textButton.account > .text").text(snapshot.name); - $("nav .textButton.account > .text").append( - getHtmlByUserFlags(snapshot, { iconsOnly: true }) - ); + AccountButton.updateName(snapshot.name); + AccountButton.updateFlags(snapshot); showFavoriteQuoteLength(); ResultFilters.loadTags(snapshot.tags); @@ -589,7 +586,6 @@ async function signUp(): Promise { await updateProfile(createdAuthUser.user, { displayName: nname }); await sendVerificationEmail(); - $("nav .textButton.account .text").text(nname); LoginPage.hidePreloader(); await loadUser(createdAuthUser.user); if (TestLogic.notSignedInLastResult !== null) { diff --git a/frontend/src/ts/controllers/user-flag-controller.ts b/frontend/src/ts/controllers/user-flag-controller.ts index 1c0446526..73c5fcb18 100644 --- a/frontend/src/ts/controllers/user-flag-controller.ts +++ b/frontend/src/ts/controllers/user-flag-controller.ts @@ -21,7 +21,7 @@ const flags: UserFlag[] = [ }, ]; -type SupportsFlags = { +export type SupportsFlags = { isPremium?: boolean; banned?: boolean; lbOptOut?: boolean; diff --git a/frontend/src/ts/elements/account-button.ts b/frontend/src/ts/elements/account-button.ts index 3174c843a..c1a1cb2e8 100644 --- a/frontend/src/ts/elements/account-button.ts +++ b/frontend/src/ts/elements/account-button.ts @@ -4,6 +4,10 @@ import * as Misc from "../utils/misc"; import * as Levels from "../utils/levels"; import { getAll } from "./theme-colors"; import * as SlowTimer from "../states/slow-timer"; +import { + getHtmlByUserFlags, + SupportsFlags, +} from "../controllers/user-flag-controller"; let usingAvatar = false; @@ -96,6 +100,16 @@ export function loading(state: boolean): void { } } +export function updateName(name: string): void { + $("header nav .account > .text").text(name); +} + +export function updateFlags(flags: SupportsFlags): void { + $("nav .textButton.account > .text").append( + getHtmlByUserFlags(flags, { iconsOnly: true }) + ); +} + export async function update( xp?: number, discordId?: string, diff --git a/frontend/src/ts/modals/google-sign-up.ts b/frontend/src/ts/modals/google-sign-up.ts index cf610d287..40e249acb 100644 --- a/frontend/src/ts/modals/google-sign-up.ts +++ b/frontend/src/ts/modals/google-sign-up.ts @@ -88,7 +88,6 @@ async function apply(): Promise { await updateProfile(signedInUser.user, { displayName: name }); await sendEmailVerification(signedInUser.user); Notifications.add("Account created", 1); - $("nav .textButton.account .text").text(name); LoginPage.enableInputs(); LoginPage.hidePreloader(); await AccountController.loadUser(signedInUser.user); diff --git a/frontend/src/ts/modals/simple-modals.ts b/frontend/src/ts/modals/simple-modals.ts index 7096a7ec6..362cf35f8 100644 --- a/frontend/src/ts/modals/simple-modals.ts +++ b/frontend/src/ts/modals/simple-modals.ts @@ -904,7 +904,7 @@ list.updateName = new SimpleModal({ reloadAfter(2); } } - $("nav .textButton.account .text").text(newName); + AccountButton.updateName(newName); return { status: 1,