Add an option to suppress the 'Saved Game' toast

This commit is contained in:
Martin Fournier 2021-12-18 08:01:15 -05:00
parent eb002d655a
commit 733f04c343
3 changed files with 36 additions and 1 deletions

@ -67,7 +67,11 @@ class BitburnerSaveObject {
const saveString = this.getSaveString();
save(saveString)
.then(() => SnackbarEvents.emit("Game Saved!", "info"))
.then(() => {
if (!Settings.SuppressSavedGameToast) {
SnackbarEvents.emit("Game Saved!", "info")
}
})
.catch((err) => console.error(err));
}

@ -103,6 +103,11 @@ interface IDefaultSettings {
*/
SuppressTIXPopup: boolean;
/**
* Whether the user should be displayed a toast alert when the game is saved.
*/
SuppressSavedGameToast: boolean;
/*
* Theme colors
*/
@ -186,6 +191,7 @@ export const defaultSettings: IDefaultSettings = {
SuppressTravelConfirmation: false,
SuppressBladeburnerPopup: false,
SuppressTIXPopup: false,
SuppressSavedGameToast: false,
theme: {
primarylight: "#0f0",
@ -251,6 +257,7 @@ export const Settings: ISettings & ISelfInitializer & ISelfLoading = {
SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,
SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup,
SuppressTIXPopup: defaultSettings.SuppressTIXPopup,
SuppressSavedGameToast: defaultSettings.SuppressSavedGameToast,
MonacoTheme: "monokai",
MonacoInsertSpaces: false,
MonacoFontSize: 20,

@ -70,6 +70,7 @@ export function GameOptionsRoot(props: IProps): React.ReactElement {
);
const [suppressTIXPopup, setSuppressTIXPopup] = useState(Settings.SuppressTIXPopup);
const [suppressBladeburnerPopup, setSuppressBladeburnerPopup] = useState(Settings.SuppressBladeburnerPopup);
const [suppressSavedGameToast, setSuppresSavedGameToast] = useState(Settings.SuppressSavedGameToast);
const [disableHotkeys, setDisableHotkeys] = useState(Settings.DisableHotkeys);
const [disableASCIIArt, setDisableASCIIArt] = useState(Settings.DisableASCIIArt);
@ -138,6 +139,11 @@ export function GameOptionsRoot(props: IProps): React.ReactElement {
Settings.SuppressBladeburnerPopup = event.target.checked;
}
function handleSuppressSavedGameToastChange(event: React.ChangeEvent<HTMLInputElement>): void {
setSuppresSavedGameToast(event.target.checked);
Settings.SuppressSavedGameToast = event.target.checked;
}
function handleDisableHotkeysChange(event: React.ChangeEvent<HTMLInputElement>): void {
setDisableHotkeys(event.target.checked);
Settings.DisableHotkeys = event.target.checked;
@ -420,6 +426,24 @@ export function GameOptionsRoot(props: IProps): React.ReactElement {
/>
</ListItem>
)}
<ListItem>
<FormControlLabel
control={
<Switch checked={suppressSavedGameToast} onChange={handleSuppressSavedGameToastChange} />
}
label={
<Tooltip
title={
<Typography>
If this is set, there will be no "Saved Game" toast appearing after save.
</Typography>
}
>
<Typography>Suppress Saved Game Toast</Typography>
</Tooltip>
}
/>
</ListItem>
<ListItem>
<FormControlLabel
control={<Switch checked={disableHotkeys} onChange={handleDisableHotkeysChange} />}