yugioh-binder/src/main.rs

54 lines
1.6 KiB
Rust

// Copyright (C) 2025 Tristan Daniël Maat
// This file is part of yugioh-binder.
// yugioh-binder is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// yugioh-binder is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
// You should have received a copy of the GNU Affero General Public License
// along with yugioh-binder. If not, see <https://www.gnu.org/licenses/>.
use std::time::Duration;
use draft_manager::card_database::CardDatabase;
use leptos::prelude::*;
use wasm_bindgen_futures::spawn_local;
fn main() {
console_error_panic_hook::set_once();
wasm_logger::init(wasm_logger::Config::default());
log::debug!("Startin app database");
let db = CardDatabase::new();
log::debug!("Database initialized");
leptos::mount::mount_to_body(|| view! { <App /> });
spawn_local(async move {
let db = db;
log::info!("Running loop!");
db.send_message();
// We create a loop so that listeners can be held for forever.
loop {
gloo::timers::future::sleep(Duration::from_secs(3600)).await;
}
});
}
#[component]
fn App() -> impl IntoView {
view! {
<Transition fallback=move || {
view! { <p>"Loading database..."</p> }
}>{move || {}}</Transition>
}
}