feat: sql migrations and daemon state endpoint
This commit is contained in:
@@ -1,10 +1,15 @@
|
||||
use crate::bridge::invoke;
|
||||
use crate::popup::Popup;
|
||||
use std::time::Duration;
|
||||
|
||||
use feshared::daemon::DaemonState;
|
||||
use leptos::{prelude::*, reactive::spawn_local};
|
||||
use leptos_router::{
|
||||
components::{Route, Router, Routes},
|
||||
path,
|
||||
};
|
||||
use wasm_bindgen::JsValue;
|
||||
|
||||
use crate::bridge::invoke;
|
||||
use crate::popup::Popup;
|
||||
|
||||
#[component]
|
||||
pub fn App() -> impl IntoView {
|
||||
@@ -26,19 +31,37 @@ fn Dashboard() -> impl IntoView {
|
||||
invoke("toggle_popup", empty_args).await;
|
||||
});
|
||||
};
|
||||
let prompt = |_ev: leptos::ev::MouseEvent| {
|
||||
spawn_local(async {
|
||||
let prompt =
|
||||
serde_wasm_bindgen::to_value(&serde_json::json!({"prompt": "jee juu juu"}))
|
||||
.unwrap();
|
||||
invoke("prompt_llm", prompt).await;
|
||||
});
|
||||
};
|
||||
view! {
|
||||
<main class="window-shell opaque-bg">
|
||||
<h1>"AI Dashboard"</h1>
|
||||
<button on:click=on_click>Test popup</button>
|
||||
<button on:click=prompt>Prompt!</button>
|
||||
<button on:click=on_click>Open chat</button>
|
||||
<DaemonStatusIndicator />
|
||||
</main>
|
||||
}
|
||||
}
|
||||
|
||||
#[component]
|
||||
fn DaemonStatusIndicator() -> impl IntoView {
|
||||
let (poll_count, set_pool_count) = signal(0);
|
||||
set_interval(
|
||||
move || set_pool_count.update(|v| *v += 1),
|
||||
Duration::from_secs(1),
|
||||
);
|
||||
let status = LocalResource::new(move || async move {
|
||||
poll_count.get();
|
||||
let val = invoke("daemon_state", JsValue::NULL).await;
|
||||
let s: DaemonState = serde_wasm_bindgen::from_value(val).unwrap();
|
||||
s
|
||||
});
|
||||
view! {
|
||||
<div>
|
||||
{move || match status.get() {
|
||||
Some(state) => match state.is_ok {
|
||||
true => view! { <span>{"OK"}</span>},
|
||||
false => view! { <span>{"DOWN"}</span>},
|
||||
},
|
||||
None => view! { <span>{ "Loading status" }</span> },
|
||||
}}
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user