Fix duplicate previous pages

This commit is contained in:
Martin Fournier 2022-01-11 21:44:05 -05:00
parent e9db656e13
commit 16f7058e53

@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react";
import { cloneDeep } from "lodash";
import { cloneDeep, isEqual } from "lodash";
import { IPlayer } from "../PersonObjects/IPlayer";
import { IEngine } from "../IEngine";
import { ITerminal } from "../Terminal/ITerminal";
@ -251,11 +251,16 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme
}
function setCurrentPage(page: Page, ...args: any): void {
const newPage = { page, args: cloneDeep(args) };
const previousPage = pageHistory[0];
const isDifferentThenPrevious = page !== previousPage?.page || !isEqual([...args], previousPage?.args);
if (isDifferentThenPrevious) {
const history = [
{ page, args: cloneDeep(args) },
newPage,
...pageHistory
].slice(0, 20);
setPageHistory(history)
}
setPage(page)
}