From 74ee5084273aeb12a21b5b85bd750b51f9462de6 Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Sat, 9 Dec 2023 01:15:47 +0100 Subject: [PATCH] fix(dropdown::multi): panic on missing paragraph --- src/widget/dropdown/multi/widget.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/widget/dropdown/multi/widget.rs b/src/widget/dropdown/multi/widget.rs index edf1ba29..ea43f643 100644 --- a/src/widget/dropdown/multi/widget.rs +++ b/src/widget/dropdown/multi/widget.rs @@ -443,11 +443,17 @@ pub fn overlay<'a, S: AsRef, Message: 'a, Item: Clone + PartialEq + 'static } super::menu::OptionElement::Option((option, item)) => { - let selection_index = state - .selections - .iter() - .position(|(i, _)| i == item) - .expect("selection missing from state"); + let selection_index = state.selections.iter().position(|(i, _)| i == item); + + let selection_index = match selection_index { + Some(index) => index, + None => { + state + .selections + .push((item.clone(), crate::Paragraph::new())); + state.selections.len() - 1 + } + }; let paragraph = &mut state.selections[selection_index].1;