mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-22 18:22:19 +00:00
Web: a lost graphics device says so and offers a reload (#225)
When the page's WebGPU device was lost, the canvas kept showing its last frame: edits still went through and rendered frames were right, but the editor never showed them and nothing said why (the status message about it is drawn in the canvas that can't present any more). The page now covers the canvas with a notice that offers Save Project (a download) and Reload. Reload first writes pending changes to browser storage, so the session snapshot brings the project and its unsaved changes back; if that write fails it says so and offers Reload Anyway. Without a kept session (?empty, memory storage) the notice says to save first. Test: apps/effectcraft-web/tests/page.mjs (Node, fake DOM). Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
82a1862fa1
commit
db3b34b134
5 files changed
+142
-2
No files matched your search
@@ -20,6 +20,23 @@
|
||||
}
|
||||
#loading img { width: 56px; height: 56px; }
|
||||
#loading .err { color: #ff8a7a; white-space: pre-wrap; max-width: 70ch; pointer-events: auto; }
|
||||
#device-lost {
|
||||
position: absolute; inset: 0; display: flex; flex-direction: column; gap: 10px;
|
||||
align-items: center; justify-content: center; padding: 16px; text-align: center;
|
||||
background: rgb(18 18 18 / 0.85); color: #c8c8c8; font: 14px/1.4 system-ui, sans-serif;
|
||||
}
|
||||
#device-lost strong { color: #e3e3e3; font-size: 16px; }
|
||||
#device-lost p { margin: 0; max-width: 60ch; }
|
||||
#device-lost small { color: #8c8c8c; font-size: 12px; }
|
||||
#device-lost div { display: flex; gap: 8px; }
|
||||
#device-lost button {
|
||||
padding: 6px 14px; border: 1px solid #3a3a3a; border-radius: 4px;
|
||||
background: #232323; color: #e3e3e3; font: inherit; cursor: pointer;
|
||||
}
|
||||
#device-lost button:hover { background: #303030; }
|
||||
#device-lost button:last-child { background: #2d8ceb; border-color: #2d8ceb; }
|
||||
#device-lost button:last-child:hover { background: #4aa0f5; }
|
||||
#device-lost button:disabled { opacity: 0.6; cursor: default; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Reference in new issue
Block a user