| @@ -101,7 +101,6 @@ fn draw_directory_browser(frame: &mut Frame, app: &mut App, size: Rect) { |
| 101 | 101 | | } |
| 102 | 102 | | }); |
| 103 | 103 | | |
| 104 | | − | let mut state = TableState::new(); |
| 105 | 104 | | let header = ["Artist", "Track", "Title", "Album", "Time"] |
| 106 | 105 | | .into_iter() |
| 107 | 106 | | .map(Cell::from) |
| @@ -140,8 +139,8 @@ fn draw_directory_browser(frame: &mut Frame, app: &mut App, size: Rect) { |
| 140 | 139 | | .header(header) |
| 141 | 140 | | .flex(layout::Flex::Legacy); |
| 142 | 141 | | |
| 143 | | − | state.select(Some(app.browser.selected)); |
| 144 | | − | frame.render_stateful_widget(table, size, &mut state); |
| 142 | + | app.browser_state.select(Some(app.browser.selected)); |
| 143 | + | frame.render_stateful_widget(table, size, &mut app.browser_state); |
| 145 | 144 | | } |
| 146 | 145 | | |
| 147 | 146 | | /// draws playing queue |
| @@ -196,7 +195,6 @@ fn draw_queue(frame: &mut Frame, app: &mut App, size: Rect) { |
| 196 | 195 | | } |
| 197 | 196 | | }); |
| 198 | 197 | | |
| 199 | | − | let mut state = TableState::new(); |
| 200 | 198 | | let header = ["Artist", "Track", "Title", "Album", "Time"] |
| 201 | 199 | | .into_iter() |
| 202 | 200 | | .map(Cell::from) |
| @@ -234,8 +232,8 @@ fn draw_queue(frame: &mut Frame, app: &mut App, size: Rect) { |
| 234 | 232 | | .header(header) |
| 235 | 233 | | .flex(layout::Flex::Legacy); |
| 236 | 234 | | |
| 237 | | − | state.select(Some(app.queue_list.index)); |
| 238 | | − | frame.render_stateful_widget(table, size, &mut state); |
| 235 | + | app.queue_state.select(Some(app.queue_list.index)); |
| 236 | + | frame.render_stateful_widget(table, size, &mut app.queue_state); |
| 239 | 237 | | } |
| 240 | 238 | | |
| 241 | 239 | | // Draw search bar |
| @@ -336,7 +334,6 @@ fn draw_playlist_viewer(frame: &mut Frame, app: &mut App, area: Rect) { |
| 336 | 334 | | .split(area); |
| 337 | 335 | | |
| 338 | 336 | | // Draw list of playlists |
| 339 | | − | let mut state = ListState::default(); |
| 340 | 337 | | let title = Block::default().title(Title::from("Playlist".green().bold())); |
| 341 | 338 | | let list = List::new(app.pl_list.list.clone()) |
| 342 | 339 | | .block(title.borders(Borders::ALL)) |
| @@ -348,8 +345,8 @@ fn draw_playlist_viewer(frame: &mut Frame, app: &mut App, area: Rect) { |
| 348 | 345 | | .add_modifier(Modifier::REVERSED), |
| 349 | 346 | | ) |
| 350 | 347 | | .repeat_highlight_symbol(true); |
| 351 | | − | state.select(Some(app.pl_list.index)); |
| 352 | | − | frame.render_stateful_widget(list, layouts[0], &mut state); |
| 348 | + | app.playlists_state.select(Some(app.pl_list.index)); |
| 349 | + | frame.render_stateful_widget(list, layouts[0], &mut app.playlists_state); |
| 353 | 350 | | |
| 354 | 351 | | // Playlist viewer |
| 355 | 352 | | |