fix liveview

This commit is contained in:
Jonathan Kelley 2024-03-06 17:26:52 -08:00
parent 1f6195b2ec
commit 60616d0ba7
No known key found for this signature in database
GPG key ID: 1FBB50F7EB0A08BE
5 changed files with 22 additions and 9 deletions

View file

@ -1 +1 @@
36839850333612604813
31613791829349842071

File diff suppressed because one or more lines are too long

View file

@ -12,7 +12,10 @@ import { SerializedEvent, serializeEvent } from "./serialize";
var JSChannel_: typeof BaseInterpreter;
// @ts-ignore - this is coming from the host
if (RawInterpreter) { JSChannel_ = RawInterpreter; }
if (RawInterpreter !== undefined && RawInterpreter !== null) {
// @ts-ignore - this is coming from the host
JSChannel_ = RawInterpreter;
};
export class NativeInterpreter extends JSChannel_ {
intercept_link_redirects: boolean;

View file

@ -9,6 +9,7 @@ pub use adapters::*;
mod element;
pub mod pool;
mod query;
use dioxus_interpreter_js::NATIVE_JS;
use futures_util::{SinkExt, StreamExt};
pub use pool::*;
mod config;
@ -70,9 +71,17 @@ fn handle_edits_code() -> String {
return;
}
}"#;
let mut interpreter = SLEDGEHAMMER_JS
.replace("/*POST_EVENT_SERIALIZATION*/", serialize_file_uploads)
.replace("export", "");
let mut interpreter = format!(
r#"
// Bring the sledgehammer code
{SLEDGEHAMMER_JS}
// And then extend it with our native bindings
{NATIVE_JS}
"#
)
.replace("/*POST_EVENT_SERIALIZATION*/", serialize_file_uploads)
.replace("export", "");
while let Some(import_start) = interpreter.find("import") {
let import_end = interpreter[import_start..]
.find(|c| c == ';' || c == '\n')

View file

@ -9,8 +9,9 @@ function main() {
class IPC {
constructor(root) {
window.interpreter = new JSChannel();
window.interpreter = new NativeInterpreter();
window.interpreter.initialize(root);
window.interpreter.ipc = this;
const ws = new WebSocket(WS_ADDR);
ws.binaryType = "arraybuffer";
@ -42,7 +43,7 @@ class IPC {
let decoder = new TextDecoder("utf-8");
// Using decode method to get string output
// Using decode method to get string output
let str = decoder.decode(messageData);
// Ignore pongs
if (str != "__pong__") {
@ -64,4 +65,4 @@ class IPC {
}
}
main();
main();