@@ -5,8 +5,8 @@ import 'package:stelaris/api/model/notification_model.dart';
5
5
import 'package:stelaris/api/state/actions/notification_actions.dart' ;
6
6
import 'package:stelaris/api/state/app_state.dart' ;
7
7
import 'package:stelaris/api/state/factory/notification/notification_vm_state.dart' ;
8
- import 'package:stelaris/feature/base/base_model_view.dart' ;
9
8
import 'package:stelaris/feature/base/model_text.dart' ;
9
+ import 'package:stelaris/feature/base/paginated_model_list.dart' ;
10
10
import 'package:stelaris/feature/dialogs/entry_update_dialog.dart' ;
11
11
import 'package:stelaris/feature/notification/notification_page_general.dart' ;
12
12
import 'package:stelaris/util/constants.dart' ;
@@ -21,20 +21,33 @@ class NotificationPage extends StatelessWidget {
21
21
vm: () => NotificationVmFactory (),
22
22
onInit: (store) => store.dispatchAndWait (InitNotificationAction ()),
23
23
builder: (context, vm) {
24
- return BaseModelView <NotificationModel >(
25
- mapToDataModelItem: (value) =>
26
- TextWidget (displayName: value.uiName),
27
- openFunction: () => _openCreationDialog (context),
28
- selectedItem: vm.selected,
29
- mapToDeleteDialog: (value) => createDeleteText (value.uiName, context),
30
- mapToDeleteSuccessfully: (value) {
31
- context.dispatch (RemoveNotificationAction (value));
32
- return true ;
33
- },
34
- callFunction: (model) => context.dispatch (SelectedNotificationAction (model)),
35
- models: vm.models,
36
- child: _mapPageToWidget (vm.selected),
37
- compareFunction: (model) => vm.isSelectedItem (model),
24
+ return Row (
25
+ mainAxisSize: MainAxisSize .min,
26
+ crossAxisAlignment: CrossAxisAlignment .start,
27
+ children: [
28
+ PaginatedModelList <NotificationModel >(
29
+ mapToDataModelItem: (value) =>
30
+ TextWidget (displayName: value.uiName),
31
+ openFunction: () => _openCreationDialog (context),
32
+ selectedItem: vm.selected,
33
+ mapToDeleteDialog: (value) =>
34
+ createDeleteText (value.uiName, context),
35
+ mapToDeleteSuccessfully: (value) {
36
+ context.dispatch (NotificationRemoveAction (value));
37
+ return true ;
38
+ },
39
+ callFunction: (model) =>
40
+ context.dispatch (SelectedNotificationAction (model)),
41
+ models: vm.models,
42
+ compareFunction: (model) => vm.isSelectedItem (model),
43
+ hasMore: vm.hasNextPage,
44
+ isLoadingMore: vm.isLoadingMore,
45
+ onLoadMore: vm.hasNextPage && ! vm.isLoadingMore
46
+ ? () => context.dispatch (InitNotificationAction ())
47
+ : null ,
48
+ ),
49
+ if (vm.selected != null ) _mapPageToWidget (vm.selected)! ,
50
+ ],
38
51
);
39
52
},
40
53
);
@@ -61,7 +74,10 @@ class NotificationPage extends StatelessWidget {
61
74
final input = value as String ;
62
75
return checkIfEmptyAndReturnErrorString (input, context);
63
76
},
64
- clearFunction: (text) => text.trim ().isNotEmpty,
77
+ clearFunction: (text) =>
78
+ text
79
+ .trim ()
80
+ .isNotEmpty,
65
81
);
66
82
},
67
83
);
0 commit comments