Proper pagination
This commit is contained in:
@@ -109,6 +109,11 @@ class _OfficesScreenState extends ConsumerState<OfficesScreen> {
|
||||
ref.read(officesQueryProvider.notifier).state =
|
||||
const OfficeQuery(offset: 0, limit: 50);
|
||||
},
|
||||
onPageChanged: (firstRow) {
|
||||
ref
|
||||
.read(officesQueryProvider.notifier)
|
||||
.update((q) => q.copyWith(offset: firstRow));
|
||||
},
|
||||
isLoading: false,
|
||||
);
|
||||
|
||||
|
||||
@@ -251,6 +251,11 @@ class _UserManagementScreenState extends ConsumerState<UserManagementScreen> {
|
||||
limit: 50,
|
||||
);
|
||||
},
|
||||
onPageChanged: (firstRow) {
|
||||
ref
|
||||
.read(adminUserQueryProvider.notifier)
|
||||
.update((q) => q.copyWith(offset: firstRow));
|
||||
},
|
||||
isLoading: false,
|
||||
);
|
||||
|
||||
|
||||
@@ -43,19 +43,28 @@ class TasksListScreen extends ConsumerStatefulWidget {
|
||||
ConsumerState<TasksListScreen> createState() => _TasksListScreenState();
|
||||
}
|
||||
|
||||
class _TasksListScreenState extends ConsumerState<TasksListScreen> {
|
||||
class _TasksListScreenState extends ConsumerState<TasksListScreen>
|
||||
with SingleTickerProviderStateMixin {
|
||||
final TextEditingController _subjectController = TextEditingController();
|
||||
String? _selectedOfficeId;
|
||||
String? _selectedStatus;
|
||||
String? _selectedAssigneeId;
|
||||
DateTimeRange? _selectedDateRange;
|
||||
late final TabController _tabController;
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_subjectController.dispose();
|
||||
_tabController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_tabController = TabController(length: 2, vsync: this);
|
||||
}
|
||||
|
||||
bool get _hasTaskFilters {
|
||||
return _subjectController.text.trim().isNotEmpty ||
|
||||
_selectedOfficeId != null ||
|
||||
@@ -67,6 +76,7 @@ class _TasksListScreenState extends ConsumerState<TasksListScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final tasksAsync = ref.watch(tasksProvider);
|
||||
final taskQuery = ref.watch(tasksQueryProvider);
|
||||
final ticketsAsync = ref.watch(ticketsProvider);
|
||||
final officesAsync = ref.watch(officesProvider);
|
||||
final profileAsync = ref.watch(currentProfileProvider);
|
||||
@@ -255,6 +265,7 @@ class _TasksListScreenState extends ConsumerState<TasksListScreen> {
|
||||
ref.read(tasksQueryProvider.notifier).state =
|
||||
const TaskQuery(offset: 0, limit: 50);
|
||||
},
|
||||
onPageChanged: null,
|
||||
isLoading: false,
|
||||
columns: [
|
||||
TasQColumn<Task>(
|
||||
@@ -433,26 +444,25 @@ class _TasksListScreenState extends ConsumerState<TasksListScreen> {
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: DefaultTabController(
|
||||
length: 2,
|
||||
child: Column(
|
||||
children: [
|
||||
const TabBar(
|
||||
tabs: [
|
||||
Tab(text: 'My Tasks'),
|
||||
Tab(text: 'All Tasks'),
|
||||
child: Column(
|
||||
children: [
|
||||
TabBar(
|
||||
controller: _tabController,
|
||||
tabs: const [
|
||||
Tab(text: 'My Tasks'),
|
||||
Tab(text: 'All Tasks'),
|
||||
],
|
||||
),
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
controller: _tabController,
|
||||
children: [
|
||||
makeList(myTasks),
|
||||
makeList(filteredTasks),
|
||||
],
|
||||
),
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
children: [
|
||||
makeList(myTasks),
|
||||
makeList(filteredTasks),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -181,6 +181,11 @@ class _TicketsListScreenState extends ConsumerState<TicketsListScreen> {
|
||||
ref.read(ticketsQueryProvider.notifier).state =
|
||||
const TicketQuery(offset: 0, limit: 50);
|
||||
},
|
||||
onPageChanged: (firstRow) {
|
||||
ref
|
||||
.read(ticketsQueryProvider.notifier)
|
||||
.update((q) => q.copyWith(offset: firstRow));
|
||||
},
|
||||
isLoading: false,
|
||||
columns: [
|
||||
TasQColumn<Ticket>(
|
||||
|
||||
Reference in New Issue
Block a user