## Summary - Follow-up for #54 (localStorage guard in #55 did not fix mobile white screen) - Confirmed in production bundle: `ProtectedRoutes` rendered `<Outlet key={Date.now()} />` - That remounts the entire authenticated tree on **every** parent re-render (account fetch, WebSocket connect/status, conversations, messages) - On mobile this shows as: brief UI flash → solid white page (matches screen recording) - Also memoize styled-components theme in `GlobalThemeWrapper` so `ParticleBackground` does not tear down/restart its canvas on unrelated re-renders ## Evidence Production JS currently contains: ```js e?(0,ma.jsx)(a.sv,{},Date.now()):(0,ma.jsx)(a.C5,{to:"/signin/",replace:!0}) ``` i.e. authenticated → `<Outlet key={Date.now()} />` ## Test plan - [ ] Mobile Vivaldi/Chrome: sign in on hesychia.ai → dashboard stays visible (header, conversations toggle, input) - [ ] Pull-to-refresh while logged in → UI returns and stays - [ ] Desktop login still works; switching conversations / WS reconnect does not blank the page - [ ] Open mobile menu / Conversations sidebar still worksReviewed-on: #56
This commit was merged in pull request #56.
This commit is contained in:
+1
-1
@@ -34,7 +34,7 @@ const ProtectedRoutes = () => {
|
||||
if (!authenticated) return <Navigate to='/signin/' replace />
|
||||
//if(!needsNewPassword) return <Navigate to='/password_reset/' replace/>
|
||||
|
||||
return <Outlet key={Date.now()} />
|
||||
return <Outlet />
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user