From 225595f0f9f7c152231cca133b5d63b5986188ee Mon Sep 17 00:00:00 2001 From: hm21 Date: Thu, 5 Mar 2026 10:06:15 +0100 Subject: [PATCH] fix(isolate-manager): add stub implementation for web/WASM platforms --- CHANGELOG.md | 3 +++ .../controllers/content_recorder_controller.dart | 3 ++- .../content_recorder/services/isolate_manager_stub.dart | 9 +++++++++ pubspec.yaml | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 lib/shared/services/content_recorder/services/isolate_manager_stub.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index bcacd097..e696fd35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 12.0.4 +- **FIX**(wasm): Resolve WASM incompatibility caused by unconditional `dart:isolate` import. The `IsolateManager` is now loaded via a conditional import, so web/WASM builds use a stub that falls back to single-threaded processing. + ## 12.0.3 - **FEAT**(crop-rotate-editor): Add `exportOvalMask` to `CropRotateEditorConfigs` (default `true`). When set to `false`, the exported image uses a plain rectangular crop even if `CropMode.oval` is active, while the oval UI remains visible inside the crop editor. - **FEAT**(crop-rotate-editor): Add `helperLineWidth` to `CropRotateEditorStyle`, allowing the grid line thickness to be customized or hidden entirely by setting it to `0`. diff --git a/lib/shared/services/content_recorder/controllers/content_recorder_controller.dart b/lib/shared/services/content_recorder/controllers/content_recorder_controller.dart index ee384f99..17588693 100644 --- a/lib/shared/services/content_recorder/controllers/content_recorder_controller.dart +++ b/lib/shared/services/content_recorder/controllers/content_recorder_controller.dart @@ -14,7 +14,8 @@ import '/shared/utils/decode_image.dart'; import '/shared/utils/unique_id_generator.dart'; import '../services/image_converter_service.dart'; import '../services/image_render_service.dart'; -import '../services/isolate_manager.dart'; +import '../services/isolate_manager_stub.dart' + if (dart.library.io) '../services/isolate_manager.dart'; import '../services/thread_fallback_manager.dart'; import '../services/thread_manager.dart'; import '../services/web_worker/web_worker_manager_dummy.dart' diff --git a/lib/shared/services/content_recorder/services/isolate_manager_stub.dart b/lib/shared/services/content_recorder/services/isolate_manager_stub.dart new file mode 100644 index 00000000..7c7a695f --- /dev/null +++ b/lib/shared/services/content_recorder/services/isolate_manager_stub.dart @@ -0,0 +1,9 @@ +// Project imports: +import 'thread_fallback_manager.dart'; + +/// Stub implementation of [IsolateManager] for web/WASM platforms where +/// dart:isolate is not available. Falls back to single-threaded processing. +class IsolateManager extends ThreadFallbackManager { + // ignore: public_member_api_docs + IsolateManager(super.configs); +} diff --git a/pubspec.yaml b/pubspec.yaml index 30d79f46..e04df520 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: pro_image_editor description: "A Flutter image editor: Seamlessly enhance your images with user-friendly editing features." -version: 12.0.3 +version: 12.0.4 homepage: https://github.com/hm21/pro_image_editor/ repository: https://github.com/hm21/pro_image_editor/ documentation: https://github.com/hm21/pro_image_editor/