Skip to content

Commit

Permalink
Adding attribute page to onPageSizeChanged method.
Browse files Browse the repository at this point in the history
  • Loading branch information
edufolly committed Sep 22, 2024
1 parent f775503 commit 6a8d7b4
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 25 deletions.
17 changes: 7 additions & 10 deletions example/lib/basic_table/example_basic_table.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:folly_fields/basic_table/basic_table.dart';
import 'package:folly_fields/basic_table/basic_table_column_builder.dart';
import 'package:folly_fields/basic_table/cells/basic_table_cell_header.dart';
import 'package:folly_fields/basic_table/cells/basic_table_cell_text.dart';
import 'package:folly_fields/util/folly_num_extension.dart';

///
///
Expand Down Expand Up @@ -40,7 +41,7 @@ class _ExampleBasicTableState extends State<ExampleBasicTable> {
body: Padding(
padding: const EdgeInsets.all(32),
child: BasicTable(
rowsCount: _size,
rowsCount: _size.min(_count - ((_page - 1) * _size)),
headerHeight: 32,
rowHeight: 32,
columnBuilders: <BasicTableColumnBuilder>[
Expand Down Expand Up @@ -85,16 +86,12 @@ class _ExampleBasicTableState extends State<ExampleBasicTable> {
),
],
initialPageSize: _size,
onPageSizeChanged: (int pageSize) {
setState(() {
_size = pageSize;
_page = 0;
});
},
onPageSizeChanged: (int size, int page) => setState(() {
_size = size;
_page = page;
}),
totalPages: (_count / _size).ceil(),
onPageChanged: (int page) {
setState(() => _page = page);
},
onPageChanged: (int page) => setState(() => _page = page),
),
),
);
Expand Down
10 changes: 5 additions & 5 deletions lib/basic_table/basic_table.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class BasicTable extends StatefulWidget {
final EdgeInsetsGeometry paginationPadding;
final List<int> pageSizes;
final int? initialPageSize;
final Function(int size)? onPageSizeChanged;
final Function(int size, int page)? onPageSizeChanged;
final double paginationIconSize;
final int totalPages;
final Function(int page)? onPageChanged;
Expand Down Expand Up @@ -95,10 +95,10 @@ class _BasicTableState extends State<BasicTable> {
@override
Widget build(BuildContext context) {
final Color rowBackgroundOdd = widget.rowBackgroundOdd ??
Theme.of(context).colorScheme.surfaceContainerLow;
Theme.of(context).colorScheme.surfaceContainerHighest;

final Color rowBackgroundEven = widget.rowBackgroundEven ??
Theme.of(context).colorScheme.surfaceContainerHighest;
Theme.of(context).colorScheme.surfaceContainerLow;

final TextStyle headerTextStyle = widget.headerTextStyle ??
(Theme.of(context).textTheme.bodyLarge ?? const TextStyle()).copyWith(
Expand Down Expand Up @@ -289,7 +289,7 @@ class _BasicTableState extends State<BasicTable> {
controller: _pageController,
pageSizes: widget.pageSizes,
initialPageSize: widget.initialPageSize,
onPageSizeChanged: widget.onPageSizeChanged,
onPageSizeChanged: widget.onPageSizeChanged!,
)
else
const SizedBox.shrink(),
Expand All @@ -300,7 +300,7 @@ class _BasicTableState extends State<BasicTable> {
controller: _pageController,
paginationIconSize: widget.paginationIconSize,
totalPages: widget.totalPages,
onPageChanged: widget.onPageChanged,
onPageChanged: widget.onPageChanged!,
),
],
),
Expand Down
2 changes: 1 addition & 1 deletion lib/basic_table/basic_table_column_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import 'package:folly_fields/basic_table/cells/basic_table_cell_header.dart';
///
class BasicTableColumnBuilder {
final double width;
final BasicTableAbstractCell Function(BuildContext context, int row) builder;
final BasicTableAbstractCell? Function(BuildContext context, int row) builder;
final BasicTableCellHeader? Function(BuildContext context)? header;
final bool flexible;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ class BasicTablePaginationController {
///
set currentPage(int value) => _controller.text = value.toString();

///
///
///
void reset() => _controller.text = '1';

///
///
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class BasicTablePaginationSizeWidget extends StatefulWidget {
final BasicTablePaginationController controller;
final List<int> pageSizes;
final int? initialPageSize;
final Function(int size)? onPageSizeChanged;
final Function(int size, int page) onPageSizeChanged;

///
///
Expand Down Expand Up @@ -68,8 +68,11 @@ class _BasicTablePaginationSizeWidgetState
if (size != null && _currentPageSize != size) {
setState(() {
_currentPageSize = size;
widget.controller.currentPage = 1;
widget.onPageSizeChanged?.call(_currentPageSize);
widget.controller.reset();
widget.onPageSizeChanged.call(
_currentPageSize,
widget.controller.currentPage,
);
});
}
},
Expand Down
12 changes: 6 additions & 6 deletions lib/basic_table/pagination/basic_table_pagination_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class BasicTablePaginationWidget extends StatefulWidget {
final BasicTablePaginationController controller;
final double paginationIconSize;
final int totalPages;
final Function(int page)? onPageChanged;
final Function(int page) onPageChanged;

///
///
Expand Down Expand Up @@ -51,7 +51,7 @@ class _BasicTablePaginationWidgetState
onPressed: widget.controller.currentPage > 1
? () => setState(() {
widget.controller.currentPage = 1;
widget.onPageChanged?.call(widget.controller.currentPage);
widget.onPageChanged.call(widget.controller.currentPage);
})
: null,
icon: const FaIcon(FontAwesomeIcons.anglesLeft),
Expand All @@ -64,7 +64,7 @@ class _BasicTablePaginationWidgetState
onPressed: widget.controller.currentPage > 1
? () => setState(() {
widget.controller.currentPage--;
widget.onPageChanged?.call(widget.controller.currentPage);
widget.onPageChanged.call(widget.controller.currentPage);
})
: null,
icon: const FaIcon(FontAwesomeIcons.angleLeft),
Expand Down Expand Up @@ -97,7 +97,7 @@ class _BasicTablePaginationWidgetState

setState(() {
widget.controller.currentPage = page;
widget.onPageChanged?.call(widget.controller.currentPage);
widget.onPageChanged.call(widget.controller.currentPage);
});
},
),
Expand All @@ -115,7 +115,7 @@ class _BasicTablePaginationWidgetState
onPressed: widget.controller.currentPage < widget.totalPages
? () => setState(() {
widget.controller.currentPage++;
widget.onPageChanged?.call(widget.controller.currentPage);
widget.onPageChanged.call(widget.controller.currentPage);
})
: null,
icon: const FaIcon(FontAwesomeIcons.angleRight),
Expand All @@ -128,7 +128,7 @@ class _BasicTablePaginationWidgetState
onPressed: widget.controller.currentPage < widget.totalPages
? () => setState(() {
widget.controller.currentPage = widget.totalPages;
widget.onPageChanged?.call(widget.controller.currentPage);
widget.onPageChanged.call(widget.controller.currentPage);
})
: null,
icon: const FaIcon(FontAwesomeIcons.anglesRight),
Expand Down

0 comments on commit 6a8d7b4

Please sign in to comment.