just -lib

This commit is contained in:
Bel LaPointe
2023-12-27 09:45:49 -05:00
parent 84b9ac781d
commit 50e2abaa2b
32 changed files with 0 additions and 5656 deletions

View File

@@ -1,140 +0,0 @@
use leptos::leptos_dom::ev;
use leptos::*;
use serde::{Deserialize, Serialize};
use serde_wasm_bindgen::to_value;
use wasm_bindgen::prelude::*;
use tauri_api::dialog::{select, Response};
use lib;
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = ["window", "__TAURI__", "tauri"])]
async fn invoke(cmd: &str, args: JsValue) -> JsValue;
}
#[derive(Serialize, Deserialize)]
struct Args<'a> {
file: &'a str,
}
#[component]
pub fn App() -> impl IntoView {
let (file, set_file) = create_signal(String::new());
let (err, set_err) = create_signal(String::new());
let update_file = move |ev| {
let v = event_target_value(&ev);
set_file.set(v);
};
let (analyze_result, set_analyze_result) = create_signal(String::new());
let (clipify_result, set_clipify_result) = create_signal(String::new());
let noop = move |ev: ev::SubmitEvent| { ev.prevent_default(); };
let select_file = move |ev: ev::MouseEvent| {
ev.prevent_default();
match select(None, None) {
Ok(response) => match response {
Response::Okay(s) => { set_file.set(s) },
_ => {},
},
Err(msg) => set_err.set(format!("failed to select a file: {}", msg)),
};
};
let analyze = move |ev: ev::MouseEvent| {
ev.prevent_default();
spawn_local(async move {
if file.get_untracked().is_empty() {
return;
}
let args = to_value(&Args { file: &file.get_untracked() }).unwrap();
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
match invoke("analyze", args).await.as_string() {
Some(new_analyze_result) => set_analyze_result.set(new_analyze_result),
None => set_err.set("analyze result failed".to_string()),
};
});
};
let clipify = move |ev: ev::MouseEvent| {
ev.prevent_default();
spawn_local(async move {
if file.get_untracked().is_empty() {
return;
}
let args = to_value(&Args { file: &file.get_untracked() }).unwrap();
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
match invoke("clipify", args).await.as_string() {
Some(new_clipify_result) => set_clipify_result.set(new_clipify_result),
None => set_err.set("clipify result failed".to_string()),
};
});
};
view! {
<main class="container">
<div class="row">
<form class="row" on:submit=noop>
<p id="file_selection" on:click=select_file>{ move || file.get() }</p>
<button type="submit" on:click=analyze>"Analyze"</button>
<button type="button" on:click=clipify>"Clipify"</button>
</form>
</div>
<div class="row">
<p><b style="color: red;">{ move || err.get() }</b></p>
</div>
<div class="row">
<div class="column">
<div class="row">
<h2>Analysis</h2>
</div>
<div class="row">
<p><b>{ move || analyze_result.get() }FOO</b></p>
</div>
</div>
</div>
<div class="row">
<div class="column">
<div class="row">
<h2>Clipified</h2>
</div>
<div class="row">
<p><b>{ move || clipify_result.get() }BAR</b></p>
</div>
</div>
</div>
/*
<p>"Click on the Tauri and Leptos logos to learn more."</p>
<p>
"Recommended IDE setup: "
<a href="https://code.visualstudio.com/" target="_blank">"VS Code"</a>
" + "
<a href="https://github.com/tauri-apps/tauri-vscode" target="_blank">"Tauri"</a>
" + "
<a href="https://github.com/rust-lang/rust-analyzer" target="_blank">"rust-analyzer"</a>
</p>
<form class="row" on:submit=greet>
<input
id="greet-input"
placeholder="Enter a name..."
on:input=update_name
/>
<button type="submit">"Greet"</button>
</form>
<p><b>{ move || greet_msg.get() }</b></p>
*/
</main>
}
}

View File

@@ -1,12 +0,0 @@
mod app;
use app::*;
use leptos::*;
fn main() {
mount_to_body(|| {
view! {
<App/>
}
})
}