File tree Expand file tree Collapse file tree 2 files changed +11
-5
lines changed
Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -199,9 +199,9 @@ where
199199
200200 let loaded_rows = create_rw_signal ( LoadedRows :: < Row > :: new ( ) ) ;
201201
202- row_reader
202+ let _ = row_reader
203203 . get_loaded_rows
204- . replace ( Rc :: new ( move |index : usize | {
204+ . replace ( Box :: new ( move |index : usize | {
205205 loaded_rows. with ( |loaded_rows| loaded_rows[ index] . clone ( ) )
206206 } ) ) ;
207207
@@ -714,7 +714,11 @@ fn update_selection(
714714 match selection {
715715 Selection :: None => { }
716716 Selection :: Single ( selected_index) => {
717- selected_index. set ( Some ( i) ) ;
717+ if selected_index. get_untracked ( ) == Some ( i) {
718+ selected_index. set ( None ) ;
719+ } else {
720+ selected_index. set ( Some ( i) ) ;
721+ }
718722 }
719723 Selection :: Multiple ( selected_indices) => {
720724 selected_indices. update ( |selected_indices| {
Original file line number Diff line number Diff line change 11use crate :: loaded_rows:: RowState ;
2+ use leptos:: logging;
23use std:: cell:: RefCell ;
34use std:: rc:: Rc ;
45
56/// Allows you to read the cached state of rows from inside the table component which handles
67/// loading and caching automatically.
8+ #[ derive( Clone ) ]
79pub struct RowReader < Row : Clone > {
8- pub ( crate ) get_loaded_rows : RefCell < Rc < dyn Fn ( usize ) -> RowState < Row > > > ,
10+ pub ( crate ) get_loaded_rows : Rc < RefCell < Box < dyn Fn ( usize ) -> RowState < Row > > > > ,
911}
1012
1113impl < Row : Clone > Default for RowReader < Row > {
1214 fn default ( ) -> Self {
1315 Self {
14- get_loaded_rows : RefCell :: new ( Rc :: new ( |_| RowState :: Placeholder ) ) ,
16+ get_loaded_rows : Rc :: new ( RefCell :: new ( Box :: new ( |_| RowState :: Placeholder ) ) ) ,
1517 }
1618 }
1719}
You can’t perform that action at this time.
0 commit comments