From e4ad8dc6338ec0682b469aa934ffa97f3cbf37f7 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Fri, 21 Aug 2026 18:28:16 +0200 Subject: [PATCH] isProductionHost() --- src/common/util.ts | 4 ++++ src/ide/settings.ts | 6 +++++- src/ide/ui.ts | 6 +++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/common/util.ts b/src/common/util.ts index 1169cb4a..1a9d1d4b 100644 --- a/src/common/util.ts +++ b/src/common/util.ts @@ -703,6 +703,10 @@ export function replaceAll(s:string, search:string, replace:string) : string { return s.split(search).join(replace); } +export function isProductionHost() : boolean { + return typeof window != 'undefined' && window.location.host.endsWith('8bitworkshop.com'); +} + export function getCookie(name: string) : string { var nameEQ = name + "="; var ca = document.cookie.split(';'); diff --git a/src/ide/settings.ts b/src/ide/settings.ts index c9e7353d..154e7bdd 100644 --- a/src/ide/settings.ts +++ b/src/ide/settings.ts @@ -2,6 +2,7 @@ import { closeBrackets, deleteBracketPair } from "@codemirror/autocomplete"; import { indentUnit } from "@codemirror/language"; import { Compartment, EditorState, Extension } from "@codemirror/state"; import { EditorView, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, keymap } from "@codemirror/view"; +import { isProductionHost } from "../common/util"; import { debugHighlightTagsTooltip } from "./views/debug"; import { insertTabKeymap, smartIndentKeymap } from "./views/tabs"; @@ -86,6 +87,7 @@ export function applySettingsToAll(settings: EditorSettings) { export function openSettings() { var settings = loadSettings(); + var showInternal = !isProductionHost(); bootbox.dialog({ onEscape: true, title: "Settings", @@ -97,9 +99,11 @@ export function openSettings() {
+ ${showInternal ? `
8bitworkshop IDE internal settings
+ ` : ''} `, buttons: { cancel: { @@ -116,7 +120,7 @@ export function openSettings() { settings.highlightWhitespace = $('#setting_highlightWhitespace').is(':checked'); settings.highlightTrailingWhitespace = $('#setting_highlightTrailingWhitespace').is(':checked'); settings.closeBrackets = $('#setting_closeBrackets').is(':checked'); - settings.debugHighlightTags = $('#setting_debugHighlightTags').is(':checked'); + if (showInternal) settings.debugHighlightTags = $('#setting_debugHighlightTags').is(':checked'); saveSettings(settings); applySettingsToAll(settings); } diff --git a/src/ide/ui.ts b/src/ide/ui.ts index 60f9a97c..8021ac85 100644 --- a/src/ide/ui.ts +++ b/src/ide/ui.ts @@ -7,7 +7,7 @@ import { EmuHalt, PLATFORMS } from "../common/emu"; import { StateRecorderImpl } from "../common/recorder"; import { arrayCompare, byteArrayToUTF8, decodeQueryString, getBasePlatform, getCookie, getFilenameForPath, getFilenamePrefix, - getRootBasePlatform, getWithBinary, hex, highlightDifferences, isProbablyBinary, loadScript, parseBool, stringToByteArray + getRootBasePlatform, getWithBinary, hex, highlightDifferences, isProbablyBinary, isProductionHost, loadScript, parseBool, stringToByteArray } from "../common/util"; import { getSkeletonName, getToolMeta } from "../common/toolmeta"; import { FileData, WorkerError, WorkerResult } from "../common/workertypes"; @@ -1824,7 +1824,7 @@ async function showWelcomeMessage() { content: "This site works best on desktop browsers. For best results, rotate your device to landscape orientation." }); } - if (window.location.host.endsWith('8bitworkshop.com')) { + if (isProductionHost()) { steps.unshift({ element: "#dropdownMenuButton", placement: 'right', @@ -2285,7 +2285,7 @@ function _switchToHTTPS() { } function redirectToHTTPS() { - if (window.location.protocol == 'http:' && window.location.host == '8bitworkshop.com') { + if (window.location.protocol == 'http:' && isProductionHost()) { if (shouldRedirectHTTPS()) { uninstallErrorHandler(); window.location.replace(window.location.href.replace(/^http:/, 'https:'));