A bit of clean up

This commit is contained in:
Greg Burri 2025-03-02 00:39:58 +01:00
parent cb2483eab1
commit a590d7e1e9
24 changed files with 259 additions and 237 deletions

13
frontend/src/error.rs Normal file
View file

@ -0,0 +1,13 @@
// TODO: Not used at the moment. Remove?
use gloo::utils::errors::JsError;
// use wasm_bindgen::JsValue;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Javascript error: {0}")]
JsError(#[from] JsError),
#[error("Path unknown: {0}")]
UnknownPath(String),
}

View file

@ -1,23 +1,16 @@
use std::str::FromStr;
use chrono::Locale;
use common::{ron_api, utils::substitute_with_names};
use futures::TryFutureExt;
use gloo::events::EventListener;
use wasm_bindgen::prelude::*;
use wasm_bindgen_futures::spawn_local;
use web_sys::{Element, HtmlElement, HtmlInputElement};
use web_sys::{Element, HtmlInputElement};
use crate::{
calendar, modal_dialog,
calendar,
recipe_scheduler::RecipeScheduler,
request,
shopping_list::ShoppingList,
toast::{self, Level},
utils::{by_id, get_locale, selector, SelectorExt},
utils::{SelectorExt, by_id, get_locale, selector},
};
pub fn setup_page(is_user_logged: bool) -> Result<(), JsValue> {
pub fn setup_page(is_user_logged: bool) {
let recipe_scheduler = RecipeScheduler::new(!is_user_logged);
calendar::setup(
@ -111,6 +104,4 @@ pub fn setup_page(is_user_logged: bool) -> Result<(), JsValue> {
}
}
});
Ok(())
}

View file

@ -1,3 +1,4 @@
use chrono::Local;
use common::ron_api;
use gloo::{console::log, events::EventListener, utils::window};
use utils::by_id;
@ -5,9 +6,10 @@ use wasm_bindgen::prelude::*;
use wasm_bindgen_futures::spawn_local;
use web_sys::{HtmlElement, HtmlSelectElement};
use crate::utils::selector;
use crate::{error::Error, utils::selector};
mod calendar;
mod error;
mod home;
mod modal_dialog;
mod on_click;
@ -32,30 +34,18 @@ pub fn main() -> Result<(), JsValue> {
.map(|v| v == "true")
.unwrap_or_default();
// if let ["recipe", "edit", id] = path[..] {
match path[..] {
["recipe", "edit", id] => {
let id = id.parse::<i64>().unwrap(); // TODO: remove unwrap.
if let Err(error) = recipe_edit::setup_page(id) {
log!(error);
}
recipe_edit::setup_page(id)
}
["recipe", "view", id] => {
let id = id.parse::<i64>().unwrap(); // TODO: remove unwrap.
if let Err(error) = recipe_view::setup_page(id, is_user_logged) {
log!(error);
}
recipe_view::setup_page(id, is_user_logged)
}
// Home.
[""] => {
if let Err(error) = home::setup_page(is_user_logged) {
log!(error);
}
}
_ => (), // Disable: user editing data are now submitted as classic form data.
// ["user", "edit"] => {
// handles::user_edit(document)?;
// }
[""] => home::setup_page(is_user_logged),
_ => log!("Path unknown: ", location),
}
let select_language: HtmlSelectElement = by_id("select-website-language");

View file

@ -16,17 +16,13 @@ use web_sys::{
use crate::{
modal_dialog, request,
toast::{self, Level},
utils::{by_id, selector, selector_and_clone, SelectorExt},
utils::{SelectorExt, by_id, selector, selector_and_clone},
};
pub fn setup_page(recipe_id: i64) -> Result<(), JsValue> {
pub fn setup_page(recipe_id: i64) {
// Title.
{
let Some(title) = document().get_element_by_id("input-title") else {
return Err(JsValue::from_str("Unable to find 'input-title' element"));
};
let title: HtmlInputElement = title.dyn_into().unwrap();
let title: HtmlInputElement = by_id("input-title");
// Check if the recipe has been loaded.
@ -315,8 +311,6 @@ pub fn setup_page(recipe_id: i64) -> Result<(), JsValue> {
})
.forget();
}
Ok(())
}
fn create_group_element(group: &ron_api::Group) -> Element {

View file

@ -1,9 +1,5 @@
use std::str::FromStr;
use chrono::Locale;
use common::{ron_api, utils::substitute_with_names};
use common::utils::substitute_with_names;
use gloo::events::EventListener;
use wasm_bindgen::prelude::*;
use wasm_bindgen_futures::spawn_local;
use web_sys::{Element, HtmlInputElement};
@ -11,10 +7,10 @@ use crate::{
calendar, modal_dialog,
recipe_scheduler::{RecipeScheduler, ScheduleRecipeResult},
toast::{self, Level},
utils::{get_locale, selector, SelectorExt},
utils::{SelectorExt, get_locale, selector},
};
pub fn setup_page(recipe_id: i64, is_user_logged: bool) -> Result<(), JsValue> {
pub fn setup_page(recipe_id: i64, is_user_logged: bool) {
let recipe_scheduler = RecipeScheduler::new(!is_user_logged);
let add_to_planner: Element = selector("#recipe-view .add-to-planner");
@ -93,6 +89,4 @@ pub fn setup_page(recipe_id: i64, is_user_logged: bool) -> Result<(), JsValue> {
});
})
.forget();
Ok(())
}