T4UECD3SERZLQMSESSATEHQEPFDIZGMMWY35EPV6JV2WOYMR7JRQC SASAN2XCWDQ2VEHZ7TAQEN2R3Y7AG7JUGEFVRL4DZAGHXDFEZFRQC LFEMJYYDO45ASMQSOJ3TNID7B5UZXDHB3NWFZJXWOAWNBS6GMDEAC UTDTZCTXAAP6AHENYQP7MOQ5QNIKKXN34NV2ONWEGM4HA4FU637AC XQTT6NDF6KRXHUABU45HB2TDSQQXYUF7S66PGMM7TVKE3OFBTVAQC EIHMXSDRPLRGGSOE54HTK3GIESHIVJHODYV72PLVZZDXT6NUO4YQC YRGDFHABL6BRX55ZWIBGXX3ZX2R4WUV4BELP7JMW5AZX54P5BBIQC LPSUBGUBMG2QHJJSAWQ35SZIMUR62R6ODPWBS7TSNNXJ5UJCNABQC MORKDJUERANZOBUWRC2F5766BEYYWXANAF3YAQ6YQ55WFQA7X64QC 5BAPU7K6DRZD2DYLIW3GKD2SIM6ANP7RYWGDJ6JCGHB37MHJUMTAC 23SFYK4Q5NKBPJG53PQNPWQH6UOUU2YKJEL7RLXYBRLJOJYV7AWQC 7WCB5YQJJZIPUAFHTCQBWNI6ZM5XMIQJAKTLYTR7NOR5NKESRMDQC EJPSD5XO43DWUBBZGNQMY4TMCAXL5EWCGX3OEHUERQ5GRASGWQLQC 6YZAVBWU6E5FYOI5JGEIPXGZLIKAW6LS2AOFIQWEE5DMOPPCD5PQC el(column(projects.iter().map(|store::Project {last_closed_time: _,path,}| {el(button(text(format!("{}", path.to_string_lossy()))).on_press_with(|| Msg::OpenProject(path.clone())))},))),
el(nav_scrollable(projects_nav,projects.iter().enumerate().map(|(ix, store::Project {last_closed_time: _,path,})| {el(button(text(format!("{}", path.to_string_lossy()))).on_press_with(|| Msg::OpenProject(path.clone())).class(if matches!(selection,PickingProjectSelection::Existing { ix: selection } if *selection == ix) {theme::Button::Selected} else {theme::Button::Normal},))},),).class(if matches!(selection, PickingProjectSelection::Existing { .. }) {theme::Scrollable::Selected} else {theme::Scrollable::Normal}).width(Length::Fill).height(Length::Fill)),
use inflorescence_iced_widget::{dir_picker, report};use inflorescence_model::model::{Job, Log, Logs, ReadyState, RecordChanges};
use inflorescence_iced_widget::{dir_picker, nav_scrollable, report};use inflorescence_model::model::{Job, Log, Logs, PickingProjectSelection, ReadyState, RecordChanges,};
view::Msg::Action(_msg) => todo!(),
view::Msg::Action(msg) => match msg {action::FilteredMsg::Confirm => match model.selection {PickingProjectSelection::FindOrCreate => {let (model, task) = init_picking_repo_dir();new_state = Some(model::SubState::PickingRepoDir(model));task}PickingProjectSelection::Existing { ix } => {if let Some(store::Project {last_closed_time: _,path,}) = model.projects.as_ref().and_then(|projects| projects.iter().nth(ix)){let (sub, managing_repo, managing_repo_task) =init_managing_repo(path.clone());new_state = Some(model::SubState::ManagingRepo(sub));new_managing_repo = Some(managing_repo);managing_repo_task} else {Task::none()}}},action::FilteredMsg::Selection(msg) => {picking_project_selection(model, msg)}action::FilteredMsg::Cancel| action::FilteredMsg::PostponeRecord| action::FilteredMsg::SaveRecord| action::FilteredMsg::DiscardRecord| action::FilteredMsg::AddUntrackedFile| action::FilteredMsg::RmChange| action::FilteredMsg::StartRecord| action::FilteredMsg::SelectChannel| action::FilteredMsg::ForkChannel| action::FilteredMsg::RefreshRepo| action::FilteredMsg::ShowEntireLog| action::FilteredMsg::FocusNext| action::FilteredMsg::FocusPrev| action::FilteredMsg::ClipboardCopy| action::FilteredMsg::ToggleReports| action::FilteredMsg::ClipboardCopyReports| action::FilteredMsg::ToRecord(_)| action::FilteredMsg::ToRecordToggleSelectedFileOrChange| action::FilteredMsg::EnterSubMenu(_) => Task::none(),},
}fn picking_project_selection(model: &mut model::PickingProject,msg: inflorescence_model::selection::Msg,) -> Task<Msg> {match msg {selection::Msg::PressDir(dir) => {if let Some(projects) = model.projects.as_mut()&& !projects.is_empty(){match model.selection {PickingProjectSelection::FindOrCreate => match dir {selection::Dir::Down => {model.selection =PickingProjectSelection::Existing { ix: 0 };}selection::Dir::Up => {model.selection =PickingProjectSelection::Existing {ix: projects.len() - 1,};}selection::Dir::Right | selection::Dir::Left => {}},PickingProjectSelection::Existing { ix } => match dir {selection::Dir::Down => {if ix < projects.len() - 1 {let ix = ix + 1;model.selection =PickingProjectSelection::Existing { ix };nav_scrollable::scroll_down_to_section(&mut model.projects_nav,ix,);} else {model.selection =PickingProjectSelection::FindOrCreate;nav_scrollable::scroll_up_to_section(&mut model.projects_nav,0,);}}selection::Dir::Up => {if ix > 0 {let ix = ix - 1;model.selection =PickingProjectSelection::Existing { ix };nav_scrollable::scroll_up_to_section(&mut model.projects_nav,ix,);} else {model.selection =PickingProjectSelection::FindOrCreate;nav_scrollable::scroll_up_to_section(&mut model.projects_nav,0,);}}selection::Dir::Right | selection::Dir::Left => {}},}}Task::none()}selection::Msg::AltPressDir(_) => Task::none(),}