pub mod create_medication_state;
pub mod edit_medication_state;
pub mod mark_dose_state;
use crate::application::dtos::responses::DoseRecordDto;
pub use create_medication_state::CreateMedicationState;
pub use edit_medication_state::EditMedicationState;
pub use mark_dose_state::MarkDoseState;
#[derive(Clone)]
pub enum ViewState {
HomeScreen,
CreateMedication {
name: String,
amount_mg: String,
selected_frequency: usize,
scheduled_time: Vec<String>,
scheduled_idx: usize,
focused_field: u8,
insert_mode: bool,
},
EditMedication {
id: String,
name: String,
amount_mg: String,
selected_frequency: usize,
scheduled_time: Vec<String>,
scheduled_idx: usize,
focused_field: u8,
insert_mode: bool,
},
MedicationDetails {
id: String,
},
MarkDose {
medication_id: String,
records: Vec<DoseRecordDto>,
selected_index: usize,
},
ConfirmDelete {
id: String,
name: String,
},
ConfirmCancel {
previous: Box<ViewState>,
},
Settings {
vim_enabled: bool,
},
ConfirmQuit {
previous: Box<ViewState>,
},
ValidationError {
message: String,
previous: Box<ViewState>,
},
}