diff --git a/src/client/Api.ts b/src/client/Api.ts index 09bfa3d85..a02ebe5c9 100644 --- a/src/client/Api.ts +++ b/src/client/Api.ts @@ -131,3 +131,14 @@ export function getAudience() { const domainname = hostname.split(".").slice(-2).join("."); return domainname; } + +// Check if the user's account is linked to a Discord or email account. +export function hasLinkedAccount( + userMeResponse: UserMeResponse | false, +): boolean { + return ( + userMeResponse !== false && + (userMeResponse.user?.discord !== undefined || + userMeResponse.user?.email !== undefined) + ); +} diff --git a/src/client/TerritoryPatternsModal.ts b/src/client/TerritoryPatternsModal.ts index f9e27e238..39a28ff03 100644 --- a/src/client/TerritoryPatternsModal.ts +++ b/src/client/TerritoryPatternsModal.ts @@ -5,6 +5,7 @@ import { UserMeResponse } from "../core/ApiSchemas"; import { ColorPalette, Cosmetics, Pattern } from "../core/CosmeticSchemas"; import { UserSettings } from "../core/game/UserSettings"; import { PlayerPattern } from "../core/Schemas"; +import { hasLinkedAccount } from "./Api"; import "./components/Difficulties"; import "./components/PatternButton"; import { renderPatternPreview } from "./components/PatternButton"; @@ -55,7 +56,7 @@ export class TerritoryPatternsModal extends LitElement { } async onUserMe(userMeResponse: UserMeResponse | false) { - if (userMeResponse === false) { + if (!hasLinkedAccount(userMeResponse)) { this.userSettings.setSelectedPatternName(undefined); this.selectedPattern = null; this.selectedColor = null; @@ -134,7 +135,7 @@ export class TerritoryPatternsModal extends LitElement { return html`
- ${this.isLoggedIn() + ${hasLinkedAccount(this.userMeResponse) ? this.renderMySkinsButton() : this.renderNotLoggedInWarning()}
@@ -290,14 +291,4 @@ export class TerritoryPatternsModal extends LitElement { render(preview, this.previewButton); this.requestUpdate(); } - - private isLoggedIn(): boolean { - if (this.userMeResponse === false) { - return false; - } - return ( - this.userMeResponse.user.discord !== undefined || - this.userMeResponse.user.email !== undefined - ); - } }