a
}
+ pub fn update_selection(&mut self, selected_index: usize) {
+ let Some(attachment) = self.attachments.get(selected_index) else {
+ return;
+ };
+ self.selected_index = Some(selected_index);
+ self.selection = Some(attachment.attachment.attachment_id);
+ self.load_content(selected_index);
+ }
#[action]
pub fn go_back(&mut self, _event: &ActionEvent) {
+ let selected_index = match self.selected_index {
+ Some(index) => index.checked_sub(1),
+ None => self.attachments.len().checked_sub(1),
+ };
+ if let Some(index) = selected_index {
+ self.update_selection(index);
+ }
}
#[action]
pub fn go_forward(&mut self, _event: &ActionEvent) {
+ let selected_index = match self.selected_index {
+ Some(index) => index + 1,
+ None => 0,
+ };
+ if selected_index < self.attachments.len() {
+ self.update_selection(selected_index);
+ }
}
}