Skip to content

Commit 28ef031

Browse files
committed
fix: stop keyboard from popping open on calendar screen
1 parent e729671 commit 28ef031

1 file changed

Lines changed: 29 additions & 7 deletions

File tree

lib/src/features/emotions/presentation/screens/calendar.dart

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:flutter/foundation.dart';
12
import 'package:flutter/material.dart';
23
import 'package:flutter_riverpod/flutter_riverpod.dart';
34
import 'package:go_router/go_router.dart';
@@ -11,7 +12,7 @@ import 'package:illemo/src/routing/app_router.dart';
1112
import 'package:illemo/src/utils/date.dart';
1213
import 'package:illemo/src/utils/pluralize.dart';
1314

14-
class CalendarScreen extends ConsumerWidget {
15+
class CalendarScreen extends ConsumerStatefulWidget {
1516
const CalendarScreen({super.key, this.date});
1617

1718
static const path = "/calendar";
@@ -20,14 +21,36 @@ class CalendarScreen extends ConsumerWidget {
2021
final DateTime? date;
2122

2223
@override
23-
Widget build(BuildContext context, WidgetRef ref) {
24+
ConsumerState<CalendarScreen> createState() => _CalendarScreenState();
25+
}
26+
27+
class _CalendarScreenState extends ConsumerState<CalendarScreen> {
28+
late final PageController _pageController;
29+
final today = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day);
30+
31+
@override
32+
void dispose() {
33+
_pageController.dispose();
34+
super.dispose();
35+
}
36+
37+
@override
38+
void initState() {
39+
super.initState();
40+
final currentDate = widget.date ?? today;
41+
_pageController = PageController(
42+
initialPage: (today.year - currentDate.year) * 12 + today.month - currentDate.month,
43+
);
44+
}
45+
46+
@override
47+
Widget build(BuildContext context) {
2448
/// The default date to show the calendar for.
25-
final today = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day);
26-
final currentDate = date ?? today;
49+
final currentDate = widget.date ?? today;
2750
return Scaffold(
2851
resizeToAvoidBottomInset: false,
2952
appBar: AppBar(
30-
title: const Text(title),
53+
title: const Text(CalendarScreen.title),
3154
actions: [
3255
IconButton(
3356
icon: const Icon(Icons.calendar_today),
@@ -50,8 +73,7 @@ class CalendarScreen extends ConsumerWidget {
5073
),
5174
body: PageView.builder(
5275
reverse: true,
53-
controller: PageController(
54-
initialPage: (today.year - currentDate.year) * 12 + today.month - currentDate.month),
76+
controller: _pageController,
5577
itemBuilder: (BuildContext context, int index) {
5678
final targetDate = DateTime(
5779
today.year,

0 commit comments

Comments
 (0)