@@ -54,6 +54,9 @@ class ThemedTable2<T> extends StatefulWidget {
5454 /// Consider that the list will be appened with the clear button
5555 final List <ThemedActionButton > multiselectActions;
5656
57+ /// [multiselectValue] is the value change listener for the multi-select checkbox list.
58+ final ValueNotifier <List <T >>? multiselectValue;
59+
5760 const ThemedTable2 ({
5861 required this .items,
5962 required this .columns,
@@ -71,7 +74,18 @@ class ThemedTable2<T> extends StatefulWidget {
7174 this .multiSelectionTitleText = "Multiple items selected" ,
7275 this .multiSelectionContentText = "You have selected multiple items. What do you want to do?" ,
7376 this .multiSelectionCancelLabelText = "Clear" ,
74- }) : assert (columns.length > 0 , 'Columns cant be empty' );
77+ this .multiselectValue,
78+ }) : assert (columns.length > 0 , 'Columns cant be empty' ),
79+ assert (actionsCount >= 0 , 'Actions count cant be negative' ),
80+ assert (minColumnWidth > 0 , 'Min column width must be greater than 0' ),
81+ assert (
82+ actionsCount == 0 || actionsBuilder != null ,
83+ 'If actionsCount is greater than 0, actionsBuilder must be provided' ,
84+ ),
85+ assert (
86+ multiselectActions.length > 0 && hasMultiselect && multiselectValue != null ,
87+ 'If hasMultiselect is true, multiselectActions and multiselectValue must be provided' ,
88+ );
7589
7690 @override
7791 State <ThemedTable2 <T >> createState () => _ThemedTable2State <T >();
@@ -565,6 +579,7 @@ class _ThemedTable2State<T> extends State<ThemedTable2<T>> {
565579 Center (
566580 child: SingleChildScrollView (
567581 child: Row (
582+ spacing: 5 ,
568583 mainAxisAlignment: MainAxisAlignment .center,
569584 crossAxisAlignment: CrossAxisAlignment .center,
570585 children: [
@@ -578,6 +593,16 @@ class _ThemedTable2State<T> extends State<ThemedTable2<T>> {
578593 setState (() {});
579594 },
580595 ),
596+ ...widget.multiselectActions.map ((action) {
597+ return ThemedButton (
598+ labelText: action.labelText,
599+ icon: action.icon,
600+ color: action.color,
601+ onTap: action.onTap,
602+ isLoading: action.isLoading,
603+ isCooldown: action.isCooldown,
604+ );
605+ }),
581606 ],
582607 ),
583608 ),
0 commit comments