fix: oprava spojení při použítí tlačítka "Zpět"
CI / Generate TypeScript types (push) Successful in 11s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 27s
CI / Build client (push) Successful in 40s
CI / Playwright E2E tests (push) Successful in 1m44s
CI / Build and push Docker image (push) Successful in 45s
CI / Notify (push) Successful in 2s

This commit is contained in:
2026-09-07 13:02:45 +02:00
parent 31b398a1d6
commit 6a12bdb179
+6 -2
View File
@@ -63,13 +63,15 @@ function App() {
const settings = useSettings(); const settings = useSettings();
const navigate = useNavigate(); const navigate = useNavigate();
const [easterEgg, _] = useEasterEgg(auth); const [easterEgg, _] = useEasterEgg(auth);
const [isConnected, setIsConnected] = useState<boolean>(false); const socket = useContext(SocketContext);
// Socket je singleton mimo React, takže při návratu v historii prohlížeče (remount
// komponenty) už žádný "connect" event nepřijde - stav proto inicializujeme z něj
const [isConnected, setIsConnected] = useState<boolean>(() => socket.connected);
const [data, setData] = useState<ClientData>(); const [data, setData] = useState<ClientData>();
const [food, setFood] = useState<RestaurantDayMenuMap>(); const [food, setFood] = useState<RestaurantDayMenuMap>();
const [myOrder, setMyOrder] = useState<PizzaOrder>(); const [myOrder, setMyOrder] = useState<PizzaOrder>();
const [foodChoiceList, setFoodChoiceList] = useState<Food[]>(); const [foodChoiceList, setFoodChoiceList] = useState<Food[]>();
const [closed, setClosed] = useState<boolean>(false); const [closed, setClosed] = useState<boolean>(false);
const socket = useContext(SocketContext);
const choiceRef = useRef<HTMLSelectElement>(null); const choiceRef = useRef<HTMLSelectElement>(null);
const foodChoiceRef = useRef<HTMLSelectElement>(null); const foodChoiceRef = useRef<HTMLSelectElement>(null);
const departureChoiceRef = useRef<HTMLSelectElement>(null); const departureChoiceRef = useRef<HTMLSelectElement>(null);
@@ -121,6 +123,8 @@ function App() {
// Registrace socket eventů // Registrace socket eventů
useEffect(() => { useEffect(() => {
// Srovnání se skutečným stavem socketu (mohl se změnit mezi renderem a efektem)
setIsConnected(socket.connected);
socket.on(EVENT_CONNECT, () => { socket.on(EVENT_CONNECT, () => {
setIsConnected(true); setIsConnected(true);
}); });