fix(web): give the browser build a load_file to fail through

Reading a drawing by path is gated off on wasm, and two features added
since 0.9.3 call it unconditionally: importing a drawing as a block, and
taking layer standards from one. Both compile into the web build, so the
web bundle stopped building and the v0.9.4 Pages deploy failed.

Neither feature can work in the browser — a file arrives through the page,
not from a filesystem the app can open — so the fix is not to make them
work but to let them say so. `load_file` now exists on wasm and returns
that as its error, which both callers already surface. Keeping the
signature means neither has to know that the web has no files, and the
next feature that reads a second drawing will not break the bundle
either.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-08-08 03:34:57 +03:00
commit 6ca4463a26
3 changed files with 15 additions and 0 deletions

View file

@ -3436,3 +3436,4 @@ catalog-tcount-placement-must-be-overwrite-prefix-or-s-84211d2b75 = TCOUNT: plac
catalog-tcount-numbered-n-text-object-s-from-start-by-30588884cc = TCOUNT: numbered __ocs_fmt_0__ text object(s) from __ocs_fmt_1__ by __ocs_fmt_2__ (__ocs_fmt_3__).
catalog-prefix-90eceb016c = Prefix
catalog-suffix-885db975a3 = Suffix
catalog-opening-a-drawing-by-path-is-not-available-in-be27bd71d4 = Opening a drawing by path is not available in the browser.

View file

@ -747,6 +747,19 @@ pub fn load_file(path: &Path) -> Result<CadDocument, String> {
load_file_with_progress(path, None).map(|outcome| outcome.document)
}
/// Opening a drawing by path is a desktop affair. In the browser a file
/// arrives through the page rather than from a filesystem the app can reach,
/// so there is nothing behind a path to open.
///
/// The function still exists there so the features that read a *second*
/// drawing — importing one as a block, taking layer standards from one — go on
/// compiling and say why they cannot run, instead of each having to know that
/// the web has no files.
#[cfg(target_arch = "wasm32")]
pub fn load_file(_path: &Path) -> Result<CadDocument, String> {
Err(crate::t!("Opening a drawing by path is not available in the browser.").into_owned())
}
pub(crate) fn load_file_with_progress(
path: &Path,
_progress: Option<Arc<dyn Fn(u16) + Send + Sync>>,

View file

@ -53,6 +53,7 @@ pub(super) fn message_id(source: &str) -> Option<&'static str> {
" ⚠ No closed boundary found." => Some("catalog-no-closed-boundary-found-7a55b25ecb"),
" (%{count} objects)" => Some("catalog-count-objects-83518eccc2"),
" [Edge: Extend]" => Some("catalog-edge-extend-90a0cb9b4f"),
"Opening a drawing by path is not available in the browser." => Some("catalog-opening-a-drawing-by-path-is-not-available-in-be27bd71d4"),
"Prefix" => Some("catalog-prefix-90eceb016c"),
"Suffix" => Some("catalog-suffix-885db975a3"),
"TCOUNT increment <{increment}>:" => Some("catalog-tcount-increment-increment-79f9ab6108"),