inital work for updating date picker
This commit is contained in:
parent
0dbd87dba1
commit
7acc25ac5c
6 changed files with 89 additions and 50 deletions
|
|
@ -1,9 +1,5 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pages/archive/archive.dart';
|
||||
import 'package:fluffychat/pages/chat/chat.dart';
|
||||
|
|
@ -42,6 +38,9 @@ import 'package:fluffychat/widgets/layouts/empty_page.dart';
|
|||
import 'package:fluffychat/widgets/layouts/two_column_layout.dart';
|
||||
import 'package:fluffychat/widgets/log_view.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import '../pangea/pages/analytics/class_analytics/class_analytics.dart';
|
||||
import '../pangea/pages/analytics/class_list/class_list.dart';
|
||||
|
||||
|
|
@ -109,6 +108,16 @@ abstract class AppRoutes {
|
|||
const LogViewer(),
|
||||
),
|
||||
),
|
||||
// #Pangea
|
||||
GoRoute(
|
||||
path: '/user_age',
|
||||
pageBuilder: (context, state) => defaultPageBuilder(
|
||||
context,
|
||||
const PUserAge(),
|
||||
),
|
||||
redirect: loggedOutRedirect,
|
||||
),
|
||||
// Pangea#
|
||||
ShellRoute(
|
||||
pageBuilder: (context, state, child) => defaultPageBuilder(
|
||||
context,
|
||||
|
|
@ -160,14 +169,6 @@ abstract class AppRoutes {
|
|||
),
|
||||
routes: [
|
||||
// #Pangea
|
||||
GoRoute(
|
||||
path: 'user_age',
|
||||
pageBuilder: (context, state) => defaultPageBuilder(
|
||||
context,
|
||||
const PUserAge(),
|
||||
),
|
||||
redirect: loggedOutRedirect,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'mylearning',
|
||||
pageBuilder: (context, state) => defaultPageBuilder(
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import '../controllers/pangea_controller.dart';
|
||||
|
||||
class PAuthGaurd {
|
||||
|
|
@ -19,7 +18,7 @@ class PAuthGaurd {
|
|||
final bool setDob = await pController!
|
||||
.userController.isUserDataAvailableAndDateOfBirthSet;
|
||||
if (Matrix.of(context).client.isLogged()) {
|
||||
return !setDob ? '/rooms/user_age' : '/rooms';
|
||||
return !setDob ? '/user_age' : '/rooms';
|
||||
}
|
||||
return null;
|
||||
} else {
|
||||
|
|
@ -39,7 +38,7 @@ class PAuthGaurd {
|
|||
return !Matrix.of(context).client.isLogged()
|
||||
? '/home'
|
||||
: !setDob
|
||||
? '/rooms/user_age'
|
||||
? '/user_age'
|
||||
: null;
|
||||
} else {
|
||||
debugPrint("controller is null in pguard check");
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import 'package:fluffychat/pangea/pages/p_user_age/p_user_age.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/pages/p_user_age/p_user_age.dart';
|
||||
import '../../../widgets/layouts/login_scaffold.dart';
|
||||
|
||||
class PUserAgeView extends StatelessWidget {
|
||||
|
|
@ -45,21 +45,52 @@ class PUserAgeView extends StatelessWidget {
|
|||
controller.loading ? null : [AutofillHints.birthday],
|
||||
validator: controller.dobFieldValidator,
|
||||
onTap: () async {
|
||||
final DateTime? pickedDate = await showDatePicker(
|
||||
initialDatePickerMode: DatePickerMode.year,
|
||||
showDialog(
|
||||
context: context,
|
||||
initialDate: controller.initialDate,
|
||||
firstDate: DateTime(1940),
|
||||
lastDate: DateTime.now(),
|
||||
builder: (BuildContext context) {
|
||||
return Center(
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(25),
|
||||
color: Theme.of(context).colorScheme.background,
|
||||
),
|
||||
padding: const EdgeInsets.all(12),
|
||||
// height: 350,
|
||||
width: 500,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Card(
|
||||
child: SfDateRangePicker(
|
||||
view: DateRangePickerView.month,
|
||||
showNavigationArrow: true,
|
||||
showActionButtons: true,
|
||||
selectionMode:
|
||||
DateRangePickerSelectionMode.single,
|
||||
initialDisplayDate: controller.initialDate,
|
||||
initialSelectedDate: controller.initialDate,
|
||||
onSubmit: (val) {
|
||||
final DateTime? pickedDate =
|
||||
val as DateTime?;
|
||||
if (pickedDate != null) {
|
||||
controller.dobController.text =
|
||||
DateFormat.yMd().format(pickedDate);
|
||||
controller.error = null;
|
||||
} else {
|
||||
controller.error =
|
||||
L10n.of(context)!.invalidDob;
|
||||
}
|
||||
Navigator.pop(context);
|
||||
},
|
||||
onCancel: () => Navigator.pop(context),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
if (pickedDate != null) {
|
||||
controller.dobController.text =
|
||||
DateFormat.yMd().format(pickedDate);
|
||||
controller.error = null;
|
||||
} else {
|
||||
controller.error = L10n.of(context)!.invalidDob;
|
||||
}
|
||||
},
|
||||
// onChanged: (String newValue) {
|
||||
// try {
|
||||
|
|
|
|||
|
|
@ -2,12 +2,19 @@ import 'dart:async';
|
|||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:adaptive_dialog/adaptive_dialog.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:desktop_notifications/desktop_notifications.dart';
|
||||
import 'package:fluffychat/pangea/controllers/pangea_controller.dart';
|
||||
import 'package:fluffychat/pangea/utils/any_state_holder.dart';
|
||||
import 'package:fluffychat/utils/client_manager.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/utils/platform_infos.dart';
|
||||
import 'package:fluffychat/utils/uia_request_manager.dart';
|
||||
import 'package:fluffychat/utils/voip_plugin.dart';
|
||||
import 'package:fluffychat/widgets/fluffy_chat_app.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:future_loading_dialog/future_loading_dialog.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
|
@ -19,14 +26,6 @@ import 'package:shared_preferences/shared_preferences.dart';
|
|||
import 'package:universal_html/html.dart' as html;
|
||||
import 'package:url_launcher/url_launcher_string.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/controllers/pangea_controller.dart';
|
||||
import 'package:fluffychat/pangea/utils/any_state_holder.dart';
|
||||
import 'package:fluffychat/utils/client_manager.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/utils/platform_infos.dart';
|
||||
import 'package:fluffychat/utils/uia_request_manager.dart';
|
||||
import 'package:fluffychat/utils/voip_plugin.dart';
|
||||
import 'package:fluffychat/widgets/fluffy_chat_app.dart';
|
||||
import '../config/app_config.dart';
|
||||
import '../config/setting_keys.dart';
|
||||
import '../pages/key_verification/key_verification_dialog.dart';
|
||||
|
|
@ -354,7 +353,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
routeDestination = await pangeaController
|
||||
.userController.isUserDataAvailableAndDateOfBirthSet
|
||||
? '/rooms'
|
||||
: "/rooms/user_age";
|
||||
: "/user_age";
|
||||
} else {
|
||||
routeDestination = '/home';
|
||||
}
|
||||
|
|
|
|||
20
pubspec.lock
20
pubspec.lock
|
|
@ -2047,26 +2047,34 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_flutter_core
|
||||
sha256: "9f0a4593f7642b2f106e329734d0e5fc746baf8d0a59495eec586cd0d9ba7d02"
|
||||
sha256: a2427697bfad5b611db78ea4c4daef82d3350b83c729a8dc37959662a31547f9
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "22.2.12"
|
||||
version: "23.2.7"
|
||||
syncfusion_flutter_datepicker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: syncfusion_flutter_datepicker
|
||||
sha256: b3340a7786f674d18bd22c226358648985e7631734dfc4aae09fdcfb71c09156
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "23.2.7"
|
||||
syncfusion_flutter_xlsio:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: syncfusion_flutter_xlsio
|
||||
sha256: "66b009fce91e10cfa5d9b3cdf2c4aa3fdf7430dab159626f4c67297638da2caf"
|
||||
sha256: "84c771ce3684820e930d27604e801991efaa0e7a72ee1df4ba4c843258f16285"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "22.2.12"
|
||||
version: "23.2.7"
|
||||
syncfusion_officecore:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_officecore
|
||||
sha256: "66d0a0faba40f043bba4ef102474213d3145ffeca2b3f2351a98c0cc10079c27"
|
||||
sha256: a037c8a72748332ba28723eaed2fd1656b9acdaf03c23c6a08e87f7c31dbed18
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "22.2.12"
|
||||
version: "23.2.7"
|
||||
synchronized:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -99,7 +99,8 @@ dependencies:
|
|||
shared_preferences: ^2.2.0 # Pinned because https://github.com/flutter/flutter/issues/118401
|
||||
slugify: ^2.0.0
|
||||
swipe_to_action: ^0.2.0
|
||||
syncfusion_flutter_xlsio: ^22.2.9
|
||||
syncfusion_flutter_datepicker: ^23.2.7
|
||||
syncfusion_flutter_xlsio: ^23.2.7
|
||||
tor_detector_web: ^1.1.0
|
||||
uni_links: ^0.5.1
|
||||
unifiedpush: ^5.0.1
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue