tablet-checkin/frontend
jtricerolph 82f926d736 Kiosk: self-heal a busy device on fresh page load
A browser refresh mid-checkin bypasses the Cancel button entirely (no
React unmount cleanup runs), so a device stayed locked 'busy' with no
route back except a manual admin reset — hit for real 2026-09-01.
registerAndGoIdle() only runs on a genuine fresh mount, so if the device
comes back 'busy' at exactly that moment, nothing on this browser is
actually mid-checkin (state was just initialized) — self-correct via the
same reset the Cancel button already uses, rather than trusting stale
server-side status. Uses kioskReset (krequest, throws KioskSessionError
on 401) not resetDevice (request, redirects to the staff /login page on
401) — the latter would be wrong on a kiosk tablet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 19:20:10 +00:00
..
public Initial scaffold: tablet-checkin app 2026-09-01 17:35:39 +00:00
src Kiosk: self-heal a busy device on fresh page load 2026-09-01 19:20:10 +00:00
Dockerfile Initial scaffold: tablet-checkin app 2026-09-01 17:35:39 +00:00
index.html Initial scaffold: tablet-checkin app 2026-09-01 17:35:39 +00:00
nginx.conf Fix nginx trailing-slash mixed-content redirect, add self-healing device reclaim 2026-09-01 19:05:53 +00:00
package-lock.json Initial scaffold: tablet-checkin app 2026-09-01 17:35:39 +00:00
package.json Initial scaffold: tablet-checkin app 2026-09-01 17:35:39 +00:00
tsconfig.json Initial scaffold: tablet-checkin app 2026-09-01 17:35:39 +00:00
vite.config.ts Initial scaffold: tablet-checkin app 2026-09-01 17:35:39 +00:00