Fixed ace/keyboard loading
This commit is contained in:
@@ -36,7 +36,9 @@ pub fn ConfigMenu() -> impl IntoView {
|
||||
let select = HtmlSelectElement::from(JsValue::from(target));
|
||||
state.editor_config().write().keyboard = select.value();
|
||||
if let Some(Err(err)) = state.editor().read().as_ref().map(|editor| {
|
||||
editor.set_keyboard_handler(&format!("ace/keyboard/{}", select.value()))
|
||||
let keyboard = select.value();
|
||||
let handler = (keyboard != "ace").then_some(format!("ace/keyboard/{keyboard}"));
|
||||
editor.set_keyboard_handler(handler.as_deref())
|
||||
}) {
|
||||
state
|
||||
.last_error()
|
||||
|
||||
@@ -3,7 +3,6 @@ use istyles::istyles;
|
||||
use leptos::prelude::*;
|
||||
use reactive_stores::Store;
|
||||
use wasm_bindgen::{JsCast, prelude::Closure};
|
||||
use wasm_bindgen_futures::spawn_local;
|
||||
use web_sys::UrlSearchParams;
|
||||
|
||||
use crate::{
|
||||
@@ -25,16 +24,20 @@ pub fn Editor() -> impl IntoView {
|
||||
let params = UrlSearchParams::new_with_str(&search).ok()?;
|
||||
params.get("code")
|
||||
};
|
||||
|
||||
let opt = EditorOptionsBuilder::default()
|
||||
.mode("ace/mode/sql")
|
||||
.theme(&format!(
|
||||
"ace/theme/{}",
|
||||
state.editor_config().read_untracked().theme
|
||||
))
|
||||
.keyboard(&format!(
|
||||
"ace/keyboard/{}",
|
||||
state.editor_config().read_untracked().keyboard
|
||||
))
|
||||
.keyboard(
|
||||
{
|
||||
let keyboard = &state.editor_config().read_untracked().keyboard;
|
||||
(keyboard != "ace").then_some(format!("ace/keyboard/{keyboard}"))
|
||||
}
|
||||
.as_deref(),
|
||||
)
|
||||
.value(&shared_code().unwrap_or_else(|| state.sql().get_untracked()))
|
||||
.build();
|
||||
|
||||
@@ -59,13 +62,11 @@ pub fn Editor() -> impl IntoView {
|
||||
.set(Some(SQLightError::new_ace_editor(err))),
|
||||
}
|
||||
|
||||
spawn_local(async move {
|
||||
if let Err(err) = aceditor::Editor::define_vim_w(execute(state)).await {
|
||||
state
|
||||
.last_error()
|
||||
.set(Some(SQLightError::new_ace_editor(err)));
|
||||
}
|
||||
});
|
||||
if let Err(err) = aceditor::Editor::define_vim_w(execute(state)) {
|
||||
state
|
||||
.last_error()
|
||||
.set(Some(SQLightError::new_ace_editor(err)));
|
||||
}
|
||||
});
|
||||
view! {
|
||||
<div class=styles::container>
|
||||
|
||||
Reference in New Issue
Block a user