INFILTRATION: Fix React warnings (#1423)

This commit is contained in:
catloversg 2024-06-25 10:37:57 +07:00 committed by GitHub
parent c0036b03d4
commit 0d8cc54c99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 8 deletions

@ -5,15 +5,23 @@ interface IProps {
onFinish: () => void;
}
export function Countdown(props: IProps): React.ReactElement {
export function Countdown({ onFinish }: IProps): React.ReactElement {
const [x, setX] = useState(3);
useEffect(() => {
if (x === 0) {
props.onFinish();
return;
onFinish();
}
setTimeout(() => setX(x - 1), 300);
});
}, [x, onFinish]);
useEffect(() => {
const id = setInterval(() => {
setX((previousValue) => previousValue - 1);
}, 300);
return () => {
clearInterval(id);
};
}, []);
return (
<Paper sx={{ p: 1, textAlign: "center" }}>

@ -23,10 +23,15 @@ export function GameTimer({
const totalMillis =
(!ignoreAugment_WKSharmonizer && Player.hasAugmentation(AugmentationName.WKSharmonizer, true) ? 1.3 : 1) * millis;
useEffect(() => {
if (v <= 0) {
onExpire();
}
}, [v, onExpire]);
useEffect(() => {
const intervalId = setInterval(() => {
setV((old) => {
if (old <= 0) onExpire();
return old - (tick / totalMillis) * 100;
});
}, tick);
@ -40,10 +45,10 @@ export function GameTimer({
// TODO(hydroflame): there's like a bug where it triggers the end before the
// bar physically reaches the end
return noPaper ? (
<ProgressBar variant="determinate" value={v} color="primary" />
<ProgressBar variant="determinate" value={Math.max(v, 0)} color="primary" />
) : (
<Paper sx={{ p: 1, mb: 1 }}>
<ProgressBar variant="determinate" value={v} color="primary" />
<ProgressBar variant="determinate" value={Math.max(v, 0)} color="primary" />
</Paper>
);
}