mirror of
https://github.com/adoyle0/leptos-use.git
synced 2025-02-02 10:54:15 -05:00
CloneableFnMutWithArg -> CloneableFnWithArg
This commit is contained in:
parent
7ce480e9ad
commit
e4f221f275
2 changed files with 43 additions and 35 deletions
|
@ -67,6 +67,33 @@ fn Demo(cx: Scope) -> impl IntoView {
|
||||||
|
|
||||||
let (history2, set_history2) = create_signal(cx, vec![]);
|
let (history2, set_history2) = create_signal(cx, vec![]);
|
||||||
|
|
||||||
|
let onopen = move |e: Event| {
|
||||||
|
set_history2.update(|history: &mut Vec<_>| {
|
||||||
|
history.push(format! {"[onopen]: event {:?}", e.type_()})
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
let onclose = move |e: CloseEvent| {
|
||||||
|
set_history2.update(|history: &mut Vec<_>| {
|
||||||
|
history.push(format! {"[onclose]: event {:?}", e.type_()})
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
let onerror = move |e: Event| {
|
||||||
|
set_history2.update(|history: &mut Vec<_>| {
|
||||||
|
history.push(format! {"[onerror]: event {:?}", e.type_()})
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
let onmessage = move |m: String| {
|
||||||
|
set_history2.update(|history: &mut Vec<_>| history.push(format! {"[onmessage]: {:?}", m}));
|
||||||
|
};
|
||||||
|
|
||||||
|
let onmessage_bytes = move |m: Vec<u8>| {
|
||||||
|
set_history2
|
||||||
|
.update(|history: &mut Vec<_>| history.push(format! {"[onmessage_bytes]: {:?}", m}));
|
||||||
|
};
|
||||||
|
|
||||||
let UseWebsocketReturn {
|
let UseWebsocketReturn {
|
||||||
ready_state: ready_state2,
|
ready_state: ready_state2,
|
||||||
send: send2,
|
send: send2,
|
||||||
|
@ -81,30 +108,11 @@ fn Demo(cx: Scope) -> impl IntoView {
|
||||||
"wss://echo.websocket.events/".to_string(),
|
"wss://echo.websocket.events/".to_string(),
|
||||||
UseWebSocketOptions::default()
|
UseWebSocketOptions::default()
|
||||||
.manual(true)
|
.manual(true)
|
||||||
.onopen(move |e: Event| {
|
.onopen(onopen.clone())
|
||||||
set_history2.update(|history: &mut Vec<_>| {
|
.onclose(onclose.clone())
|
||||||
history.push(format! {"[onopen]: event {:?}", e.type_()})
|
.onerror(onerror.clone())
|
||||||
});
|
.onmessage(onmessage.clone())
|
||||||
})
|
.onmessage_bytes(onmessage_bytes.clone()),
|
||||||
.onclose(move |e: CloseEvent| {
|
|
||||||
set_history2.update(|history: &mut Vec<_>| {
|
|
||||||
history.push(format! {"[onclose]: event {:?}", e.type_()})
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.onerror(move |e: Event| {
|
|
||||||
set_history2.update(|history: &mut Vec<_>| {
|
|
||||||
history.push(format! {"[onerror]: event {:?}", e.type_()})
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.onmessage(move |m: String| {
|
|
||||||
set_history2
|
|
||||||
.update(|history: &mut Vec<_>| history.push(format! {"[onmessage]: {:?}", m}));
|
|
||||||
})
|
|
||||||
.onmessage_bytes(move |m: Vec<u8>| {
|
|
||||||
set_history2.update(|history: &mut Vec<_>| {
|
|
||||||
history.push(format! {"[onmessage_bytes]: {:?}", m})
|
|
||||||
});
|
|
||||||
}),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let open_connection2 = move |_| {
|
let open_connection2 = move |_| {
|
||||||
|
|
|
@ -9,7 +9,7 @@ use js_sys::Array;
|
||||||
use wasm_bindgen::{prelude::*, JsCast, JsValue};
|
use wasm_bindgen::{prelude::*, JsCast, JsValue};
|
||||||
use web_sys::{BinaryType, CloseEvent, Event, MessageEvent, WebSocket};
|
use web_sys::{BinaryType, CloseEvent, Event, MessageEvent, WebSocket};
|
||||||
|
|
||||||
use crate::utils::CloneableFnMutWithArg;
|
use crate::utils::CloneableFnWithArg;
|
||||||
|
|
||||||
/// Creating and managing a [Websocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) connection.
|
/// Creating and managing a [Websocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) connection.
|
||||||
///
|
///
|
||||||
|
@ -179,7 +179,7 @@ pub fn use_websocket_with_options(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut onopen = onopen_ref.get_value();
|
let onopen = onopen_ref.get_value();
|
||||||
onopen(e);
|
onopen(e);
|
||||||
|
|
||||||
set_ready_state.set(UseWebSocketReadyState::Open);
|
set_ready_state.set(UseWebSocketReadyState::Open);
|
||||||
|
@ -204,7 +204,7 @@ pub fn use_websocket_with_options(
|
||||||
},
|
},
|
||||||
|txt| {
|
|txt| {
|
||||||
let txt = String::from(&txt);
|
let txt = String::from(&txt);
|
||||||
let mut onmessage = onmessage_ref.get_value();
|
let onmessage = onmessage_ref.get_value();
|
||||||
onmessage(txt.clone());
|
onmessage(txt.clone());
|
||||||
|
|
||||||
set_message.set(Some(txt.clone()));
|
set_message.set(Some(txt.clone()));
|
||||||
|
@ -214,7 +214,7 @@ pub fn use_websocket_with_options(
|
||||||
|array_buffer| {
|
|array_buffer| {
|
||||||
let array = js_sys::Uint8Array::new(&array_buffer);
|
let array = js_sys::Uint8Array::new(&array_buffer);
|
||||||
let array = array.to_vec();
|
let array = array.to_vec();
|
||||||
let mut onmessage_bytes = onmessage_bytes_ref.get_value();
|
let onmessage_bytes = onmessage_bytes_ref.get_value();
|
||||||
onmessage_bytes(array.clone());
|
onmessage_bytes(array.clone());
|
||||||
|
|
||||||
set_message_bytes.set(Some(array));
|
set_message_bytes.set(Some(array));
|
||||||
|
@ -236,7 +236,7 @@ pub fn use_websocket_with_options(
|
||||||
reconnect();
|
reconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut onerror = onerror_ref.get_value();
|
let onerror = onerror_ref.get_value();
|
||||||
onerror(e);
|
onerror(e);
|
||||||
|
|
||||||
set_ready_state.set(UseWebSocketReadyState::Closed);
|
set_ready_state.set(UseWebSocketReadyState::Closed);
|
||||||
|
@ -255,7 +255,7 @@ pub fn use_websocket_with_options(
|
||||||
reconnect();
|
reconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut onclose = onclose_ref.get_value();
|
let onclose = onclose_ref.get_value();
|
||||||
onclose(e);
|
onclose(e);
|
||||||
|
|
||||||
set_ready_state.set(UseWebSocketReadyState::Closed);
|
set_ready_state.set(UseWebSocketReadyState::Closed);
|
||||||
|
@ -371,15 +371,15 @@ impl fmt::Display for UseWebSocketReadyState {
|
||||||
#[derive(DefaultBuilder)]
|
#[derive(DefaultBuilder)]
|
||||||
pub struct UseWebSocketOptions {
|
pub struct UseWebSocketOptions {
|
||||||
/// `WebSocket` connect callback.
|
/// `WebSocket` connect callback.
|
||||||
onopen: Box<dyn CloneableFnMutWithArg<Event> + 'static>,
|
onopen: Box<dyn CloneableFnWithArg<Event> + 'static>,
|
||||||
/// `WebSocket` message callback for text.
|
/// `WebSocket` message callback for text.
|
||||||
onmessage: Box<dyn CloneableFnMutWithArg<String> + 'static>,
|
onmessage: Box<dyn CloneableFnWithArg<String> + 'static>,
|
||||||
/// `WebSocket` message callback for binary.
|
/// `WebSocket` message callback for binary.
|
||||||
onmessage_bytes: Box<dyn CloneableFnMutWithArg<Vec<u8>> + 'static>,
|
onmessage_bytes: Box<dyn CloneableFnWithArg<Vec<u8>> + 'static>,
|
||||||
/// `WebSocket` error callback.
|
/// `WebSocket` error callback.
|
||||||
onerror: Box<dyn CloneableFnMutWithArg<Event> + 'static>,
|
onerror: Box<dyn CloneableFnWithArg<Event> + 'static>,
|
||||||
/// `WebSocket` close callback.
|
/// `WebSocket` close callback.
|
||||||
onclose: Box<dyn CloneableFnMutWithArg<CloseEvent> + 'static>,
|
onclose: Box<dyn CloneableFnWithArg<CloseEvent> + 'static>,
|
||||||
/// Retry times.
|
/// Retry times.
|
||||||
reconnect_limit: Option<u64>,
|
reconnect_limit: Option<u64>,
|
||||||
/// Retry interval(ms).
|
/// Retry interval(ms).
|
||||||
|
|
Loading…
Add table
Reference in a new issue