Commit 3ea0463
committed
fix(FR-2518): use React-driven splash dismissal to eliminate blank screen
Root cause: splash was dismissed before header/sider rendered.
1. Replace backend-ai-connected listener with globalThis.__dismissSplash()
2. MainLayout: DismissSplashOnMount inside header Suspense boundary
fires only after WebUIHeader actually renders
3. LoginView: dismiss in open() callback when login form becomes
visible (only fires in logged-out state)
4. MutationObserver fallback increased to 3s (was 800ms) to avoid
racing with React-driven dismiss on normal routes
5. React-driven dismiss cancels MutationObserver fallback timer
6. Inline critical CSS in <head> for splash visibility before
external CSS loads
7. Body background set inline to prevent white flash
Verified via Playwright: splash fades only after UI is visible
in both logged-in (header+sider) and logged-out (login form) flows.1 parent b1ab3c8 commit 3ea0463
6 files changed
Lines changed: 120 additions & 206 deletions
File tree
- react/src/components
- MainLayout
- resources
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
22 | 34 | | |
23 | 35 | | |
24 | 36 | | |
| |||
56 | 68 | | |
57 | 69 | | |
58 | 70 | | |
| 71 | + | |
| 72 | + | |
59 | 73 | | |
60 | 74 | | |
61 | | - | |
62 | | - | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
63 | 79 | | |
64 | | - | |
65 | 80 | | |
66 | 81 | | |
67 | 82 | | |
| |||
112 | 127 | | |
113 | 128 | | |
114 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
115 | 176 | | |
116 | 177 | | |
117 | 178 | | |
| |||
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
261 | 261 | | |
262 | 262 | | |
263 | 263 | | |
| 264 | + | |
| 265 | + | |
264 | 266 | | |
265 | 267 | | |
266 | 268 | | |
| |||
996 | 998 | | |
997 | 999 | | |
998 | 1000 | | |
999 | | - | |
| 1001 | + | |
1000 | 1002 | | |
1001 | 1003 | | |
1002 | 1004 | | |
| |||
1017 | 1019 | | |
1018 | 1020 | | |
1019 | 1021 | | |
1020 | | - | |
| 1022 | + | |
1021 | 1023 | | |
1022 | 1024 | | |
1023 | 1025 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
127 | 126 | | |
128 | 127 | | |
129 | 128 | | |
130 | | - | |
131 | 129 | | |
132 | 130 | | |
133 | 131 | | |
| |||
215 | 213 | | |
216 | 214 | | |
217 | 215 | | |
| 216 | + | |
218 | 217 | | |
219 | 218 | | |
220 | 219 | | |
| |||
415 | 414 | | |
416 | 415 | | |
417 | 416 | | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
418 | 429 | | |
0 commit comments