diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1f44bae --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +check lint: + cargo clippy + +fix: + cargo clippy --fix --allow-dirty + +fmt: + cargo +nightly fmt + + diff --git a/leptos/Cargo.toml b/leptos/Cargo.toml index 0630cab..44fa2c1 100644 --- a/leptos/Cargo.toml +++ b/leptos/Cargo.toml @@ -7,6 +7,7 @@ edition = "2024" codee = { version = "0.3.0", features = ["json_serde"] } console_error_panic_hook = "0.1.7" leptos = { version = "0.7.7", features = ["csr", "nightly", "tracing"] } +leptos-qr-scanner = { git = "https://github.com/dilawar/leptos-qr-scanner" } leptos-use = { version = "0.15.7", features = ["storage", "docs" ] } leptos_meta = "0.7.7" leptos_router = { version = "0.7.7", features = ["tracing"] } diff --git a/leptos/app.css b/leptos/app.css index 2ea7680..fa98181 100644 --- a/leptos/app.css +++ b/leptos/app.css @@ -32,3 +32,9 @@ main { justify-content: center; align-items: center; } + +.qrscanner-372e0a1 { + width: 100%; + min-height: 400px; + border: 1px dotted gray; +} diff --git a/leptos/src/_app.module.scss b/leptos/src/_app.module.scss index 02866b0..c5815ba 100644 --- a/leptos/src/_app.module.scss +++ b/leptos/src/_app.module.scss @@ -32,3 +32,9 @@ main { justify-content: center; align-items: center; } + +.qrscanner { + width: 100%; + min-height: 400px; + border: 1px dotted gray; +} diff --git a/leptos/src/app.rs b/leptos/src/app.rs index bcb804b..582168b 100644 --- a/leptos/src/app.rs +++ b/leptos/src/app.rs @@ -4,8 +4,8 @@ use leptos_router::path; use reactive_stores::Store; use thaw::*; +use crate::components::*; use crate::css::styles; -use crate::components::{home, login}; use crate::storage::{GlobalState, GlobalStateStoreFields}; #[component] @@ -25,13 +25,15 @@ pub fn App() -> impl IntoView {
- - + + +
diff --git a/leptos/src/components/home.rs b/leptos/src/components/home.rs index 35e79ec..8089562 100644 --- a/leptos/src/components/home.rs +++ b/leptos/src/components/home.rs @@ -1,7 +1,7 @@ use leptos::prelude::*; use reactive_stores::Store; -use crate::components::login::{Login}; +use crate::components::login::Login; use crate::storage::{GlobalState, GlobalStateStoreFields}; #[component] diff --git a/leptos/src/components/login.rs b/leptos/src/components/login.rs index 78c8277..e40e8c9 100644 --- a/leptos/src/components/login.rs +++ b/leptos/src/components/login.rs @@ -1,6 +1,5 @@ // use codee::string::JsonSerdeCodec; use leptos::prelude::*; -// use leptos_use::storage::use_local_storage; use reactive_stores::Store; use thaw::*; diff --git a/leptos/src/components/mod.rs b/leptos/src/components/mod.rs index 57b1827..48cd666 100644 --- a/leptos/src/components/mod.rs +++ b/leptos/src/components/mod.rs @@ -1,2 +1,10 @@ +#![allow(unused_imports)] + pub(crate) mod home; +pub use home::*; + pub(crate) mod login; +pub use login::*; + +pub(crate) mod qr; +pub use qr::*; diff --git a/leptos/src/components/qr.rs b/leptos/src/components/qr.rs new file mode 100644 index 0000000..0dece52 --- /dev/null +++ b/leptos/src/components/qr.rs @@ -0,0 +1,41 @@ +//! QrCode related components. + +use leptos::prelude::*; +use leptos_qr_scanner::Scan; +use reactive_stores::Store; +use thaw::*; + +use crate::css::styles; +use crate::storage::{GlobalState, GlobalStateStoreFields}; + +#[component] +pub fn QrScanner() -> impl IntoView { + let scan = RwSignal::new(true); + let multiple = RwSignal::new(true); + + let result = RwSignal::new(vec![]); + + view! { + + + + + +

Scan result: {result}

+ } +}