1
+ use crate :: dispatch;
1
2
use crate :: shims:: Error ;
2
3
use crate :: wrappers:: { translate_key, translate_tool, Color } ;
3
4
use editor:: input:: input_preprocessor:: ModifierKeys ;
@@ -9,20 +10,14 @@ use editor::LayerId;
9
10
use graphene:: layers:: BlendMode ;
10
11
use wasm_bindgen:: prelude:: * ;
11
12
12
- fn convert_error ( err : editor:: EditorError ) -> JsValue {
13
- Error :: new ( & err. to_string ( ) ) . into ( )
14
- }
15
-
16
- fn dispatch < T : Into < Message > > ( message : T ) {
17
- let messages = crate :: EDITOR_STATE . with ( |state| state. borrow_mut ( ) . handle_message ( message. into ( ) ) ) ;
18
- crate :: handle_responses ( messages) ;
19
- }
20
-
21
13
/// Modify the currently selected tool in the document state store
22
14
#[ wasm_bindgen]
23
15
pub fn select_tool ( tool : String ) -> Result < ( ) , JsValue > {
24
16
match translate_tool ( & tool) {
25
- Some ( tool) => Ok ( dispatch ( ToolMessage :: ActivateTool ( tool) ) ) ,
17
+ Some ( tool) => {
18
+ dispatch ( ToolMessage :: ActivateTool ( tool) ) ;
19
+ Ok ( ( ) )
20
+ }
26
21
None => Err ( Error :: new ( & format ! ( "Couldn't select {} because it was not recognized as a valid tool" , tool) ) . into ( ) ) ,
27
22
}
28
23
}
@@ -32,7 +27,10 @@ pub fn select_tool(tool: String) -> Result<(), JsValue> {
32
27
pub fn set_tool_options ( tool : String , options : & JsValue ) -> Result < ( ) , JsValue > {
33
28
match options. into_serde :: < ToolOptions > ( ) {
34
29
Ok ( options) => match translate_tool ( & tool) {
35
- Some ( tool) => Ok ( dispatch ( ToolMessage :: SetToolOptions ( tool, options) ) ) ,
30
+ Some ( tool) => {
31
+ dispatch ( ToolMessage :: SetToolOptions ( tool, options) ) ;
32
+ Ok ( ( ) )
33
+ }
36
34
None => Err ( Error :: new ( & format ! ( "Couldn't set options for {} because it was not recognized as a valid tool" , tool) ) . into ( ) ) ,
37
35
} ,
38
36
Err ( err) => Err ( Error :: new ( & format ! ( "Invalid JSON for ToolOptions: {}" , err) ) . into ( ) ) ,
@@ -53,7 +51,10 @@ pub fn send_tool_message(tool: String, message: &JsValue) -> Result<(), JsValue>
53
51
None => Err ( Error :: new ( & format ! ( "Couldn't send message for {} because it was not recognized as a valid tool" , tool) ) . into ( ) ) ,
54
52
} ;
55
53
match tool_message {
56
- Ok ( tool_message) => Ok ( dispatch ( tool_message) ) ,
54
+ Ok ( tool_message) => {
55
+ dispatch ( tool_message) ;
56
+ Ok ( ( ) )
57
+ }
57
58
Err ( err) => Err ( err) ,
58
59
}
59
60
}
@@ -256,10 +257,11 @@ pub fn set_blend_mode_for_selected_layers(blend_mode_svg_style_name: String) ->
256
257
"saturation" => BlendMode :: Saturation ,
257
258
"color" => BlendMode :: Color ,
258
259
"luminosity" => BlendMode :: Luminosity ,
259
- _ => return Err ( convert_error ( EditorError :: Misc ( "UnknownBlendMode" . to_string ( ) ) ) ) ,
260
+ _ => return Err ( Error :: new ( & EditorError :: Misc ( "UnknownBlendMode" . to_string ( ) ) . to_string ( ) ) . into ( ) ) ,
260
261
} ;
261
262
262
- Ok ( dispatch ( DocumentMessage :: SetBlendModeForSelectedLayers ( blend_mode) ) )
263
+ dispatch ( DocumentMessage :: SetBlendModeForSelectedLayers ( blend_mode) ) ;
264
+ Ok ( ( ) )
263
265
}
264
266
265
267
/// Set the opacity for the selected layers
0 commit comments