создавать localstorage для каждого нового объекта массива
Ресторан выбор столика и заказы. И под картинкой заказа есть таймер , в чём сообственно трабл когда заказов много на кухню летит мой localstorage ломается потому что работает только по одному заказу я обновил страницу если заказ 1 всё гуд время стопится на том месте котором остановилось но если заказов больше путаеться время и не останавливается не могу понять как обратиться ко всем заказам сразу
useEffect(() => {
setState(JSON.parse(window.localStorage.getItem('count')));
}, [])
React.useEffect(() => {
localStorage.setItem('count', JSON.stringify(state));
let interval;
if (timeMinus) {
interval = setInterval(() => {
if (state.timeMinus) {
setState({
timeMinus: state.timeMinus - 1,
minuts: Math.floor((state.timeMinus - 1) / 60),
seconds: state.timeMinus - Math.floor((state.timeMinus - 1) / 60) * 60 - 1,
});
}
else if (state.timeMinus === 0) {
const state2 = JSON.parse(localStorage.getItem('timePlus'));
setState2({
timePlus: state2.timePlus + 1,
minuts2: Math.floor((state2.timePlus + 1) / 60),
seconds2: state2.timePlus - Math.floor((state2.timePlus + 1) / 60) * 60 + 1,
});
}
/* } */
}, 1000)
} else if (!timeMinus) {
clearInterval(interval);
}
return () => clearInterval(interval);
}, [state.timeMinus, state2.timePlus,])
Тут будет код кухни и всех заказов
<Box style={{position: 'absolute', right: 10, bottom: 75,}}>
{order.dishesDone[dishIdx]
? <MyTimer timeMinus={false} timePlus={false} />
: <MyTimer timeMinus={dish.time} timePlus />}
</Box>
Обращаюсь к каждому ордерку добавляю dish это время готовки на кухне нужно каждый заказ как я думаю добавлять в localstorage чтоб при обновление страницы мой таймер тормозился и продолжал с того момента как его остановили(обновили страницу)
Стайт
const [state, setState] = React.useState<State>({
timeMinus,
seconds: timeMinus - Math.floor((timeMinus - 1) / 60) * 60 - 1,
minuts: Math.floor((timeMinus - 1) / 60),
});
const [state2, setState2] = React.useState<State2>({
timePlus,
seconds2: timePlus - Math.floor((timePlus + 1) / 60),
minuts2: Math.floor((timePlus + 1) / 60),
});