When the saved server address stops answering, the native app re-checks it once and then probes every address in the same /24 (same scheme and port, nearest first, 48 in parallel, 1.5s timeout) for /api/system/identity, switching only to the server that reports THIS venue's site_id - never to "any Xenia server". A found address is saved on the venue and the app reloads onto the same screen (/offline → start page) after a short "Ο server άλλαξε διεύθυνση" notice; the offline queue syncs after reload. - src/native/rediscovery.js: subnet candidates + scan (pure, injectable) - src/native/autoRediscover.js: re-check first, one scan at a time, automatic attempts at most once a minute; skipped for dev / site-less venues - ServerRediscovery: triggers when the connection is confirmed offline (retry every 2 min) or any request fails with a network error - Offline page: manual "Αναζήτηση server στο δίκτυο" with progress and "not found → scan the QR" guidance Tests: 11 unit checks (ordering, port kept, non-IP hosts, other venue never chosen, early stop, progress). Emulator E2E with a real address change (.99 → .2): logged in → found in ~3.5s, back on /tables with live WS; logged out → found in ~6.5s, waiter list loads; server really down → address untouched, manual search reports not found. Web modes unaffected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
React + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Oxc
- @vitejs/plugin-react-swc uses SWC
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the ESLint configuration
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.