mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-30 21:52:04 +00:00
Hide skins & account login if in iframe (#2126)
## Description: CrazyGames doesn't allow purchase (must be integrated into their sdk), so disable it on iframe for now. ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: evan
This commit is contained in:
@@ -4,7 +4,7 @@ import { UserMeResponse } from "../core/ApiSchemas";
|
||||
import "./components/Difficulties";
|
||||
import "./components/PatternButton";
|
||||
import { discordLogin, getApiBase, getUserMe, logOut } from "./jwt";
|
||||
import { translateText } from "./Utils";
|
||||
import { isInIframe, translateText } from "./Utils";
|
||||
|
||||
@customElement("account-modal")
|
||||
export class AccountModal extends LitElement {
|
||||
@@ -268,6 +268,10 @@ export class AccountButton extends LitElement {
|
||||
}
|
||||
|
||||
render() {
|
||||
if (isInIframe()) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
if (!this.isVisible) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ import { UsernameInput } from "./UsernameInput";
|
||||
import {
|
||||
generateCryptoRandomUUID,
|
||||
incrementGamesPlayed,
|
||||
isInIframe,
|
||||
translateText,
|
||||
} from "./Utils";
|
||||
import "./components/NewsButton";
|
||||
@@ -207,6 +208,10 @@ class Client {
|
||||
const patternButton = document.getElementById(
|
||||
"territory-patterns-input-preview-button",
|
||||
);
|
||||
if (isInIframe() && patternButton) {
|
||||
patternButton.style.display = "none";
|
||||
}
|
||||
|
||||
this.patternsModal instanceof TerritoryPatternsModal;
|
||||
if (patternButton === null)
|
||||
throw new Error("territory-patterns-input-preview-button");
|
||||
|
||||
@@ -189,3 +189,13 @@ export function incrementGamesPlayed(): void {
|
||||
console.warn("Failed to increment games played in localStorage:", error);
|
||||
}
|
||||
}
|
||||
|
||||
export function isInIframe(): boolean {
|
||||
try {
|
||||
return window.self !== window.top;
|
||||
} catch (e) {
|
||||
// If we can't access window.top due to cross-origin restrictions,
|
||||
// we're definitely in an iframe
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { LitElement, TemplateResult, html } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import { translateText } from "../../../client/Utils";
|
||||
import { isInIframe, translateText } from "../../../client/Utils";
|
||||
import { ColorPalette, Pattern } from "../../../core/CosmeticSchemas";
|
||||
import { EventBus } from "../../../core/EventBus";
|
||||
import { GameUpdateType } from "../../../core/game/GameUpdates";
|
||||
@@ -95,7 +95,7 @@ export class WinModal extends LitElement implements Layer {
|
||||
}
|
||||
|
||||
innerHtml() {
|
||||
if (this.rand < 0.25) {
|
||||
if (isInIframe() || this.rand < 0.25) {
|
||||
return this.steamWishlist();
|
||||
}
|
||||
return this.renderPatternButton();
|
||||
|
||||
Reference in New Issue
Block a user