Suppress error messages when Firefox unloads the tab (#5013) * Fix error messages when Firefox tab reopened after unload #4989 * Export settingsReady flag

b89ffdfecea9766605028c4f8165b8f7f6012689

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
2 files changed, +12 -1Ignore whitespace
public/script.js+6 -1
@@ -388,7 +388,7 @@ let chatSaveTimeout;
388let importFlashTimeout;388let importFlashTimeout;
389export let isChatSaving = false;389export let isChatSaving = false;
390let firstRun = false;390let firstRun = false;
391let settingsReady = false;391export let settingsReady = false;
392let currentVersion = '0.0.0';392let currentVersion = '0.0.0';
393export let displayVersion = 'SillyTavern';393export let displayVersion = 'SillyTavern';
394394
@@ -9463,6 +9463,11 @@ function addAlternateGreeting(template, greeting, index, getArray, popup) {
9463 * @param {Event} [e] Event that triggered the function call.9463 * @param {Event} [e] Event that triggered the function call.
9464 */9464 */
9465export async function createOrEditCharacter(e) {9465export async function createOrEditCharacter(e) {
9466 if (!settingsReady) {
9467 console.warn('Settings not ready, aborting character creation/editing.');
9468 return;
9469 }
9470
9466 $('#rm_info_avatar').html('');9471 $('#rm_info_avatar').html('');
9467 const formData = new FormData(/** @type {HTMLFormElement} */($('#form_create').get(0)));9472 const formData = new FormData(/** @type {HTMLFormElement} */($('#form_create').get(0)));
9468 formData.set('fav', String(fav_ch_checked));9473 formData.set('fav', String(fav_ch_checked));
public/scripts/power-user.js+6 -0
@@ -30,6 +30,7 @@ import {
30 extension_prompt_types,30 extension_prompt_types,
31 extension_prompt_roles,31 extension_prompt_roles,
32 deleteMessage,32 deleteMessage,
33 settingsReady,
33} from '../script.js';34} from '../script.js';
34import { isMobile, initMovingUI, favsToHotswap } from './RossAscends-mods.js';35import { isMobile, initMovingUI, favsToHotswap } from './RossAscends-mods.js';
35import {36import {
@@ -4016,6 +4017,11 @@ jQuery(() => {
4016 power_user.experimental_macro_engine = !!$(this).prop('checked');4017 power_user.experimental_macro_engine = !!$(this).prop('checked');
4017 saveSettingsDebounced();4018 saveSettingsDebounced();
40184019
4020 // Check if the app is ready before showing the toast
4021 if (!settingsReady) {
4022 return;
4023 }
4024
4019 eventSource.once(event_types.SETTINGS_UPDATED, function() {4025 eventSource.once(event_types.SETTINGS_UPDATED, function() {
4020 toastr.warning(4026 toastr.warning(
4021 t`Click here to reload.`,4027 t`Click here to reload.`,