CODEBASE: Refactor ImportSave component (#2505)

This commit is contained in:
catloversg
2026-02-16 01:57:40 +07:00
committed by GitHub
parent 77d83a2fdc
commit 775a1b1e4b
4 changed files with 24 additions and 30 deletions

View File

@@ -64,7 +64,7 @@ import { ActivateRecoveryMode, RecoveryMode, RecoveryRoot } from "./React/Recove
import { AchievementsRoot } from "../Achievements/AchievementsRoot";
import { ErrorBoundary } from "./ErrorBoundary";
import { ThemeBrowser } from "../Themes/ui/ThemeBrowser";
import { ImportSave } from "./React/ImportSave";
import { ImportSaveComparison } from "./React/ImportSaveComparison";
import { BypassWrapper } from "./React/BypassWrapper";
import { Apr1 } from "./Apr1";
@@ -474,7 +474,7 @@ export function GameRoot(): React.ReactElement {
break;
}
case Page.ImportSave: {
mainPage = <ImportSave saveData={pageWithContext.saveData} automatic={!!pageWithContext.automatic} />;
mainPage = <ImportSaveComparison saveData={pageWithContext.saveData} automatic={!!pageWithContext.automatic} />;
withSidebar = false;
bypassGame = true;
break;

View File

@@ -1,13 +0,0 @@
import React from "react";
import { Tooltip } from "@mui/material";
import ThumbUpAlt from "@mui/icons-material/ThumbUpAlt";
import ThumbDownAlt from "@mui/icons-material/ThumbDownAlt";
export const ComparisonIcon = ({ isBetter }: { isBetter: boolean }): JSX.Element => {
const title = isBetter ? "Imported value is larger!" : "Imported value is smaller!";
const icon = isBetter ? <ThumbUpAlt color="success" /> : <ThumbDownAlt color="error" />;
return <Tooltip title={title}>{icon}</Tooltip>;
};

View File

@@ -1 +0,0 @@
export * from "./ImportSave";

View File

@@ -23,23 +23,31 @@ import DirectionsRunIcon from "@mui/icons-material/DirectionsRun";
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp";
import ThumbUpAlt from "@mui/icons-material/ThumbUpAlt";
import ThumbDownAlt from "@mui/icons-material/ThumbDownAlt";
import { Skills } from "@nsdefs";
import { ImportData, saveObject } from "../../../SaveObject";
import { Settings } from "../../../Settings/Settings";
import { convertTimeMsToTimeElapsedString } from "../../../utils/StringHelperFunctions";
import { formatMoney, formatNumberNoSuffix } from "../../formatNumber";
import { ConfirmationModal } from "../ConfirmationModal";
import { pushImportResult } from "../../../Electron";
import { Router } from "../../GameRoot";
import { Page } from "../../Router";
import { useBoolean } from "../hooks";
import { ImportData, saveObject } from "../../SaveObject";
import { Settings } from "../../Settings/Settings";
import { convertTimeMsToTimeElapsedString } from "../../utils/StringHelperFunctions";
import { formatMoney, formatNumberNoSuffix } from "../formatNumber";
import { ConfirmationModal } from "./ConfirmationModal";
import { pushImportResult } from "../../Electron";
import { Router } from "../GameRoot";
import { Page } from "../Router";
import { useBoolean } from "./hooks";
import { ComparisonIcon } from "./ComparisonIcon";
import { SaveData } from "../../../types";
import { handleGetSaveDataInfoError } from "../../../utils/ErrorHandler";
import { OptionSwitch } from "../OptionSwitch";
import { SaveData } from "../../types";
import { handleGetSaveDataInfoError } from "../../utils/ErrorHandler";
import { OptionSwitch } from "./OptionSwitch";
const ComparisonIcon = ({ isBetter }: { isBetter: boolean }): JSX.Element => {
const title = isBetter ? "Imported value is larger!" : "Imported value is smaller!";
const icon = isBetter ? <ThumbUpAlt color="success" /> : <ThumbDownAlt color="error" />;
return <Tooltip title={title}>{icon}</Tooltip>;
};
const useStyles = makeStyles()((theme: Theme) => ({
root: {
@@ -93,7 +101,7 @@ const playerSkills: (keyof Skills)[] = ["hacking", "strength", "defense", "dexte
let initialAutosave = 0;
export const ImportSave = (props: { saveData: SaveData; automatic: boolean }): JSX.Element => {
export const ImportSaveComparison = (props: { saveData: SaveData; automatic: boolean }): JSX.Element => {
const { classes } = useStyles();
const [importData, setImportData] = useState<ImportData | undefined>();
const [currentData, setCurrentData] = useState<ImportData | undefined>();