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 React, { useState, useEffect } from "react";
import { cloneDeep } from "lodash"; import { cloneDeep, isEqual } from "lodash";
import { IPlayer } from "../PersonObjects/IPlayer"; import { IPlayer } from "../PersonObjects/IPlayer";
import { IEngine } from "../IEngine"; import { IEngine } from "../IEngine";
import { ITerminal } from "../Terminal/ITerminal"; 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 { function setCurrentPage(page: Page, ...args: any): void {
const history = [ const newPage = { page, args: cloneDeep(args) };
{ page, args: cloneDeep(args) }, const previousPage = pageHistory[0];
const isDifferentThenPrevious = page !== previousPage?.page || !isEqual([...args], previousPage?.args);
if (isDifferentThenPrevious) {
const history = [
newPage,
...pageHistory ...pageHistory
].slice(0, 20); ].slice(0, 20);
setPageHistory(history) setPageHistory(history)
}
setPage(page) setPage(page)
} }