Add default servings to profile + choose servings when scheduling
This commit is contained in:
parent
d8641d4db6
commit
ae6da1a5ae
13 changed files with 70 additions and 34 deletions
|
|
@ -1,4 +1,4 @@
|
|||
use std::sync::{Arc, Mutex};
|
||||
use std::{cell::RefCell, rc::Rc};
|
||||
|
||||
use chrono::{offset::Local, DateTime, Datelike, Days, Months, Weekday};
|
||||
use common::ron_api;
|
||||
|
|
@ -19,14 +19,14 @@ struct CalendarStateInternal {
|
|||
|
||||
#[derive(Clone)]
|
||||
struct CalendarState {
|
||||
internal_state: Arc<Mutex<CalendarStateInternal>>,
|
||||
internal_state: Rc<RefCell<CalendarStateInternal>>,
|
||||
}
|
||||
|
||||
impl CalendarState {
|
||||
pub fn new() -> Self {
|
||||
let current_date = Local::now();
|
||||
Self {
|
||||
internal_state: Arc::new(Mutex::new(CalendarStateInternal {
|
||||
internal_state: Rc::new(RefCell::new(CalendarStateInternal {
|
||||
displayed_date: current_date,
|
||||
selected_date: current_date,
|
||||
})),
|
||||
|
|
@ -34,25 +34,25 @@ impl CalendarState {
|
|||
}
|
||||
|
||||
pub fn displayed_date_next_month(&self) {
|
||||
let mut locker = self.internal_state.lock().unwrap();
|
||||
locker.displayed_date = locker.displayed_date + Months::new(1);
|
||||
let mut state_borrowed = self.internal_state.borrow_mut();
|
||||
state_borrowed.displayed_date = state_borrowed.displayed_date + Months::new(1);
|
||||
}
|
||||
|
||||
pub fn displayed_date_previous_month(&self) {
|
||||
let mut locker = self.internal_state.lock().unwrap();
|
||||
locker.displayed_date = locker.displayed_date - Months::new(1);
|
||||
let mut state_borrowed = self.internal_state.borrow_mut();
|
||||
state_borrowed.displayed_date = state_borrowed.displayed_date - Months::new(1);
|
||||
}
|
||||
|
||||
pub fn get_displayed_date(&self) -> DateTime<Local> {
|
||||
self.internal_state.lock().unwrap().displayed_date
|
||||
self.internal_state.borrow().displayed_date
|
||||
}
|
||||
|
||||
pub fn get_selected_date(&self) -> DateTime<Local> {
|
||||
self.internal_state.lock().unwrap().selected_date
|
||||
self.internal_state.borrow().selected_date
|
||||
}
|
||||
|
||||
pub fn set_selected_date(&self, date: DateTime<Local>) {
|
||||
self.internal_state.lock().unwrap().selected_date = date;
|
||||
self.internal_state.borrow_mut().selected_date = date;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -173,7 +173,8 @@ fn display_month(calendar: &Element, state: CalendarState) {
|
|||
.unwrap();
|
||||
|
||||
for recipe in scheduled_recipes.recipes {
|
||||
log!(recipe.1);
|
||||
// log!(recipe.1);
|
||||
// TODO
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,9 +24,12 @@ pub fn setup_page(recipe_id: i64) -> Result<(), JsValue> {
|
|||
let add_to_planner: Element = selector("#recipe-view .add-to-planner");
|
||||
EventListener::new(&add_to_planner, "click", move |_event| {
|
||||
spawn_local(async move {
|
||||
modal_dialog::show_and_initialize("#hidden-templates .calendar", async |element| {
|
||||
calendar::setup(element);
|
||||
})
|
||||
modal_dialog::show_and_initialize(
|
||||
"#hidden-templates .date-and-servings",
|
||||
async |element| {
|
||||
calendar::setup(element.selector(".calendar"));
|
||||
},
|
||||
)
|
||||
.await;
|
||||
});
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue