From 7acc25ac5cc0630d801fa10037a46fbb101ca8a4 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Fri, 8 Dec 2023 15:29:59 -0500 Subject: [PATCH 1/7] inital work for updating date picker --- lib/config/routes.dart | 25 ++++---- lib/pangea/guard/p_vguard.dart | 7 +-- .../pages/p_user_age/p_user_age_view.dart | 61 ++++++++++++++----- lib/widgets/matrix.dart | 23 ++++--- pubspec.lock | 20 ++++-- pubspec.yaml | 3 +- 6 files changed, 89 insertions(+), 50 deletions(-) diff --git a/lib/config/routes.dart b/lib/config/routes.dart index ff2b0b55e..89737b76f 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -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( diff --git a/lib/pangea/guard/p_vguard.dart b/lib/pangea/guard/p_vguard.dart index 20ddd35d6..5106be645 100644 --- a/lib/pangea/guard/p_vguard.dart +++ b/lib/pangea/guard/p_vguard.dart @@ -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"); diff --git a/lib/pangea/pages/p_user_age/p_user_age_view.dart b/lib/pangea/pages/p_user_age/p_user_age_view.dart index dd0b16a95..72d55d1fc 100644 --- a/lib/pangea/pages/p_user_age/p_user_age_view.dart +++ b/lib/pangea/pages/p_user_age/p_user_age_view.dart @@ -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: [ + 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 { diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index eb80a052f..97e1a361a 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -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 with WidgetsBindingObserver { routeDestination = await pangeaController .userController.isUserDataAvailableAndDateOfBirthSet ? '/rooms' - : "/rooms/user_age"; + : "/user_age"; } else { routeDestination = '/home'; } diff --git a/pubspec.lock b/pubspec.lock index cd036d373..0117835d0 100644 --- a/pubspec.lock +++ b/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: diff --git a/pubspec.yaml b/pubspec.yaml index f0275779f..890f39c6e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 From eb06dd03104eabce69741b103ab4491e97fb6ced Mon Sep 17 00:00:00 2001 From: ggurdin Date: Wed, 13 Dec 2023 14:39:21 -0500 Subject: [PATCH 2/7] prevent the text field from beeing erased on mobile --- lib/pangea/pages/p_user_age/p_user_age_view.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/pangea/pages/p_user_age/p_user_age_view.dart b/lib/pangea/pages/p_user_age/p_user_age_view.dart index 72d55d1fc..2ea83afd5 100644 --- a/lib/pangea/pages/p_user_age/p_user_age_view.dart +++ b/lib/pangea/pages/p_user_age/p_user_age_view.dart @@ -12,7 +12,6 @@ class PUserAgeView extends StatelessWidget { @override Widget build(BuildContext context) { - controller.dobController.text = ""; return LoginScaffold( appBar: AppBar( automaticallyImplyLeading: !controller.loading, From 92fda7a11732008a63b5ff6b5514febbf7ed6db0 Mon Sep 17 00:00:00 2001 From: Brord van Wierst Date: Wed, 20 Dec 2023 00:24:17 +0100 Subject: [PATCH 3/7] update url to app.staging? --- .github/workflows/main_deploy.yaml | 4 ++-- scripts/build-web.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main_deploy.yaml b/.github/workflows/main_deploy.yaml index 4800aa0c5..312161fea 100644 --- a/.github/workflows/main_deploy.yaml +++ b/.github/workflows/main_deploy.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + - gh-actions-improvements env: # Setting an environment variable with the value of a configuration variable @@ -38,7 +39,7 @@ jobs: personal_token: ${{ secrets.PAGES_DEPLOY_TOKEN }} publish_dir: ./public publish_branch: gh-pages - # cname: app.staging.pangea.chat + cname: app.staging.pangea.chat update_sentry: runs-on: ubuntu-latest @@ -53,6 +54,5 @@ jobs: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_ORG: ${{ secrets.SENTRY_ORG }} SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} - # SENTRY_URL: https://sentry.io/ with: environment: staging diff --git a/scripts/build-web.sh b/scripts/build-web.sh index 603a84301..0ad0fc636 100755 --- a/scripts/build-web.sh +++ b/scripts/build-web.sh @@ -2,5 +2,5 @@ flutter config --enable-web flutter clean flutter pub get -flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --source-maps --base-href "/client/" +flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --source-maps # flutter build web --release --verbose --source-maps --dart-define=SENTRY_RELEASE=$CI_COMMIT_SHA From 969339c7d60305367caeac4edd43d535f18fb54c Mon Sep 17 00:00:00 2001 From: Brord van Wierst Date: Wed, 20 Dec 2023 00:35:41 +0100 Subject: [PATCH 4/7] merge --- scripts/build-web.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-web.sh b/scripts/build-web.sh index 0ad0fc636..08e46add8 100755 --- a/scripts/build-web.sh +++ b/scripts/build-web.sh @@ -2,5 +2,5 @@ flutter config --enable-web flutter clean flutter pub get -flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --source-maps +flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --profile --source-maps # flutter build web --release --verbose --source-maps --dart-define=SENTRY_RELEASE=$CI_COMMIT_SHA From 7dc2136034709ad876229cff0c1f25c9a4b1b2b9 Mon Sep 17 00:00:00 2001 From: Brord van Wierst Date: Wed, 20 Dec 2023 01:04:12 +0100 Subject: [PATCH 5/7] format imports and code agian?? --- lib/config/app_config.dart | 4 +-- lib/config/routes.dart | 7 ++--- lib/pages/chat_details/chat_details_view.dart | 12 +++++---- lib/pages/chat_list/chat_list.dart | 27 ++++++++++--------- lib/pages/login/login_view.dart | 7 ++--- .../controllers/subscription_controller.dart | 14 +++++----- lib/pangea/controllers/user_controller.dart | 7 +++-- lib/pangea/guard/p_vguard.dart | 3 ++- lib/pangea/models/base_subscription_info.dart | 1 - lib/pangea/models/mobile_subscriptions.dart | 10 +++---- .../pages/analytics/messages_bar_chart.dart | 9 ++++--- .../pages/p_user_age/p_user_age_view.dart | 3 ++- .../settings_subscription.dart | 11 ++++---- .../settings_subscription_view.dart | 10 ++++--- .../widgets/class/add_space_toggles.dart | 9 ++++--- .../subscription/subscription_options.dart | 9 ++++--- .../subscription/subscription_paywall.dart | 8 +++--- .../subscription/subscription_snackbar.dart | 4 ++- lib/widgets/matrix.dart | 21 ++++++++------- 19 files changed, 96 insertions(+), 80 deletions(-) diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index 97cde1e2a..f7739cdec 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -1,9 +1,9 @@ import 'dart:ui'; -import 'package:fluffychat/pangea/config/environment.dart'; -// Project imports: import 'package:matrix/matrix.dart'; +import 'package:fluffychat/pangea/config/environment.dart'; + abstract class AppConfig { // #Pangea // static String _applicationName = 'FluffyChat'; diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 89737b76f..9a2113e23 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,5 +1,9 @@ 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'; @@ -38,9 +42,6 @@ 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'; diff --git a/lib/pages/chat_details/chat_details_view.dart b/lib/pages/chat_details/chat_details_view.dart index ecebb9dd8..d3499a0bf 100644 --- a/lib/pages/chat_details/chat_details_view.dart +++ b/lib/pages/chat_details/chat_details_view.dart @@ -1,3 +1,10 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:future_loading_dialog/future_loading_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pages/chat_details/participant_list_item.dart'; @@ -19,11 +26,6 @@ import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/chat_settings_popup_menu.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.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:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; class ChatDetailsView extends StatelessWidget { final ChatDetailsController controller; diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 662de6b01..60f5d7537 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -1,9 +1,19 @@ import 'dart:async'; import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; -// Project imports: +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:future_loading_dialog/future_loading_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; +import 'package:receive_sharing_intent/receive_sharing_intent.dart'; +import 'package:uni_links/uni_links.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list_view.dart'; @@ -19,18 +29,6 @@ import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/client_stories_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:fluffychat/utils/tor_stub.dart' - if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:future_loading_dialog/future_loading_dialog.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; -import 'package:receive_sharing_intent/receive_sharing_intent.dart'; -import 'package:uni_links/uni_links.dart'; - import '../../../utils/account_bundles.dart'; import '../../utils/matrix_sdk_extensions/matrix_file_extension.dart'; import '../../utils/url_launcher.dart'; @@ -38,6 +36,9 @@ import '../../utils/voip/callkeep_manager.dart'; import '../../widgets/fluffy_chat_app.dart'; import '../../widgets/matrix.dart'; +import 'package:fluffychat/utils/tor_stub.dart' + if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; + enum SelectMode { normal, share, diff --git a/lib/pages/login/login_view.dart b/lib/pages/login/login_view.dart index 259210113..92c584ada 100644 --- a/lib/pages/login/login_view.dart +++ b/lib/pages/login/login_view.dart @@ -1,10 +1,11 @@ // Flutter imports: +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/pangea/utils/password_forgotten.dart'; import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - import 'login.dart'; class LoginView extends StatelessWidget { diff --git a/lib/pangea/controllers/subscription_controller.dart b/lib/pangea/controllers/subscription_controller.dart index f8e932865..f53a34e1b 100644 --- a/lib/pangea/controllers/subscription_controller.dart +++ b/lib/pangea/controllers/subscription_controller.dart @@ -1,7 +1,15 @@ import 'dart:async'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:http/http.dart'; +import 'package:purchases_flutter/purchases_flutter.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; @@ -15,12 +23,6 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_paywall.dart'; import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:http/http.dart'; -import 'package:purchases_flutter/purchases_flutter.dart'; -import 'package:url_launcher/url_launcher_string.dart'; class SubscriptionController extends BaseController { late PangeaController _pangeaController; diff --git a/lib/pangea/controllers/user_controller.dart b/lib/pangea/controllers/user_controller.dart index 9cdce7573..4142a9bdd 100644 --- a/lib/pangea/controllers/user_controller.dart +++ b/lib/pangea/controllers/user_controller.dart @@ -2,15 +2,14 @@ import 'dart:async'; import 'dart:developer'; import 'package:collection/collection.dart'; +import 'package:jwt_decode/jwt_decode.dart'; +import 'package:matrix/matrix.dart' as matrix; + import 'package:fluffychat/pangea/constants/language_keys.dart'; import 'package:fluffychat/pangea/constants/model_keys.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/widgets/fluffy_chat_app.dart'; -// Project imports: -import 'package:jwt_decode/jwt_decode.dart'; -import 'package:matrix/matrix.dart' as matrix; - import '../constants/local.key.dart'; import '../models/user_model.dart'; import '../repo/user_repo.dart'; diff --git a/lib/pangea/guard/p_vguard.dart b/lib/pangea/guard/p_vguard.dart index 5106be645..3e5368fad 100644 --- a/lib/pangea/guard/p_vguard.dart +++ b/lib/pangea/guard/p_vguard.dart @@ -1,9 +1,10 @@ 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 { diff --git a/lib/pangea/models/base_subscription_info.dart b/lib/pangea/models/base_subscription_info.dart index cb04dd57b..399ba042c 100644 --- a/lib/pangea/models/base_subscription_info.dart +++ b/lib/pangea/models/base_subscription_info.dart @@ -1,4 +1,3 @@ -// Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; diff --git a/lib/pangea/models/mobile_subscriptions.dart b/lib/pangea/models/mobile_subscriptions.dart index 931488716..4a57d6200 100644 --- a/lib/pangea/models/mobile_subscriptions.dart +++ b/lib/pangea/models/mobile_subscriptions.dart @@ -1,15 +1,15 @@ import 'dart:io'; -// Package imports: +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:purchases_flutter/purchases_flutter.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/models/base_subscription_info.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -// Project imports: -import 'package:flutter/material.dart'; -import 'package:purchases_flutter/purchases_flutter.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; class MobileSubscriptionInfo extends SubscriptionInfo { MobileSubscriptionInfo({required super.pangeaController}) : super(); diff --git a/lib/pangea/pages/analytics/messages_bar_chart.dart b/lib/pangea/pages/analytics/messages_bar_chart.dart index 5f80577db..890dd0c3d 100644 --- a/lib/pangea/pages/analytics/messages_bar_chart.dart +++ b/lib/pangea/pages/analytics/messages_bar_chart.dart @@ -1,13 +1,14 @@ import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + import 'package:fl_chart/fl_chart.dart'; +import 'package:intl/intl.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pangea/pages/analytics/bar_chart_placeholder_data.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; - import '../../enum/time_span.dart'; import '../../enum/use_type.dart'; import '../../models/chart_analytics_model.dart'; diff --git a/lib/pangea/pages/p_user_age/p_user_age_view.dart b/lib/pangea/pages/p_user_age/p_user_age_view.dart index 2ea83afd5..e81188d00 100644 --- a/lib/pangea/pages/p_user_age/p_user_age_view.dart +++ b/lib/pangea/pages/p_user_age/p_user_age_view.dart @@ -1,9 +1,10 @@ -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 { diff --git a/lib/pangea/pages/settings_subscription/settings_subscription.dart b/lib/pangea/pages/settings_subscription/settings_subscription.dart index 6b1608cd9..7ec409f03 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription.dart @@ -1,6 +1,10 @@ import 'dart:async'; -// Project imports: +import 'package:flutter/material.dart'; + +import 'package:go_router/go_router.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -9,11 +13,6 @@ import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscript import 'package:fluffychat/pangea/utils/subscription_app_id.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_snackbar.dart'; import 'package:fluffychat/widgets/matrix.dart'; -// Project imports: -import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; -// Package imports: -import 'package:url_launcher/url_launcher_string.dart'; class SubscriptionManagement extends StatefulWidget { const SubscriptionManagement({super.key}); diff --git a/lib/pangea/pages/settings_subscription/settings_subscription_view.dart b/lib/pangea/pages/settings_subscription/settings_subscription_view.dart index 33ed15ff2..80d3f382c 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription_view.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription_view.dart @@ -1,14 +1,16 @@ // Flutter imports: -// Project imports: + +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:intl/intl.dart'; + import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/pages/settings_subscription/change_subscription.dart'; import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscription.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:intl/intl.dart'; class SettingsSubscriptionView extends StatelessWidget { final SubscriptionManagementController controller; diff --git a/lib/pangea/widgets/class/add_space_toggles.dart b/lib/pangea/widgets/class/add_space_toggles.dart index ca9cba14e..653fa339d 100644 --- a/lib/pangea/widgets/class/add_space_toggles.dart +++ b/lib/pangea/widgets/class/add_space_toggles.dart @@ -1,12 +1,13 @@ -import 'package:collection/collection.dart'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/material.dart'; + +import 'package:collection/collection.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../../../widgets/matrix.dart'; import '../../utils/firebase_analytics.dart'; import 'add_class_and_invite.dart'; diff --git a/lib/pangea/widgets/subscription/subscription_options.dart b/lib/pangea/widgets/subscription/subscription_options.dart index 81073a0b5..e397712f5 100644 --- a/lib/pangea/widgets/subscription/subscription_options.dart +++ b/lib/pangea/widgets/subscription/subscription_options.dart @@ -1,11 +1,12 @@ // Flutter imports: -// Project imports: + +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; -import 'package:flutter/material.dart'; -// Package imports: -import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionOptions extends StatelessWidget { final PangeaController pangeaController; diff --git a/lib/pangea/widgets/subscription/subscription_paywall.dart b/lib/pangea/widgets/subscription/subscription_paywall.dart index d68b35a83..6ac5eb62f 100644 --- a/lib/pangea/widgets/subscription/subscription_paywall.dart +++ b/lib/pangea/widgets/subscription/subscription_paywall.dart @@ -1,10 +1,12 @@ // Flutter imports: -// Project imports: + +import 'package:flutter/material.dart'; + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_options.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionPaywall extends StatelessWidget { final PangeaController pangeaController; diff --git a/lib/pangea/widgets/subscription/subscription_snackbar.dart b/lib/pangea/widgets/subscription/subscription_snackbar.dart index 46283a8be..8d4ac43bf 100644 --- a/lib/pangea/widgets/subscription/subscription_snackbar.dart +++ b/lib/pangea/widgets/subscription/subscription_snackbar.dart @@ -1,9 +1,11 @@ -import 'package:fluffychat/config/app_config.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; + import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; +import 'package:fluffychat/config/app_config.dart'; + void showSubscribedSnackbar(BuildContext context) { final Widget text = RichText( text: TextSpan( diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index 97e1a361a..2a62444bb 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -2,19 +2,12 @@ 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; @@ -26,6 +19,14 @@ 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'; From 23b580e16e048f8b40fbd0add2b2f0b47235efcb Mon Sep 17 00:00:00 2001 From: Brord van Wierst Date: Wed, 20 Dec 2023 01:08:28 +0100 Subject: [PATCH 6/7] remove gh action agian --- .github/workflows/main_deploy.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main_deploy.yaml b/.github/workflows/main_deploy.yaml index 31b498415..71e2b9306 100644 --- a/.github/workflows/main_deploy.yaml +++ b/.github/workflows/main_deploy.yaml @@ -4,7 +4,6 @@ on: push: branches: - main - - gh-actions-improvements env: # Setting an environment variable with the value of a configuration variable From 4946ffea23e1dff980d99fd1477d18704bff2ab5 Mon Sep 17 00:00:00 2001 From: Brord van Wierst Date: Wed, 20 Dec 2023 02:59:54 +0100 Subject: [PATCH 7/7] Gh actions improvements (#20) Fixed sentry --- .github/workflows/main_deploy.yaml | 50 +++++++++++++++++++++--------- scripts/upload-sentry.sh | 11 ++++--- 2 files changed, 42 insertions(+), 19 deletions(-) diff --git a/.github/workflows/main_deploy.yaml b/.github/workflows/main_deploy.yaml index 71e2b9306..202cb9d30 100644 --- a/.github/workflows/main_deploy.yaml +++ b/.github/workflows/main_deploy.yaml @@ -6,11 +6,10 @@ on: - main env: - # Setting an environment variable with the value of a configuration variable WEB_APP_ENV: ${{ vars.WEB_APP_ENV }} jobs: - deploy_web: + build_web: runs-on: ubuntu-latest environment: staging steps: @@ -27,7 +26,23 @@ jobs: run: ./scripts/prepare-web.sh - name: Build Release Web run: ./scripts/build-web.sh - - name: Build Website + - name: Upload files + uses: actions/upload-artifact@v3 + with: + name: web + path: build/web + + deploy_web: + runs-on: ubuntu-latest + needs: build_web + environment: staging + steps: + - name: Download web + uses: actions/download-artifact@v3 + with: + name: web + path: build/web + - name: Update Website files run: | mv build/web public touch public/.env @@ -43,16 +58,23 @@ jobs: update_sentry: runs-on: ubuntu-latest + needs: build_web + environment: staging + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_BASE_TOKEN: ${{ secrets.SENTRY_BASE_TOKEN }} + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + CI_COMMIT_SHA: ${{ github.sha }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v2 + - name: Download web + uses: actions/download-artifact@v3 with: - fetch-depth: 0 - - - name: Create Sentry release - uses: getsentry/action-release@v1 - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} - with: - environment: staging + name: web + path: build/web + - name: Install sentry CLI + run: | + curl -sL https://sentry.io/get-cli/ | bash + - name: Update sentry + run: ./scripts/upload-sentry.sh diff --git a/scripts/upload-sentry.sh b/scripts/upload-sentry.sh index 569d1aad5..899a2312c 100755 --- a/scripts/upload-sentry.sh +++ b/scripts/upload-sentry.sh @@ -1,13 +1,14 @@ #!/bin/sh -ve # Build a release version of the app for a platform and upload symbols -OUTPUT_FOLDER_WEB=./build/web/ -SENTRY_RELEASE=$CI_COMMIT_SHA -SENTRY_PROJECT="client" -SENTRY_ORG="pangea-chat" +export OUTPUT_FOLDER_WEB=./build/web/ +export SENTRY_RELEASE=$CI_COMMIT_SHA +export SENTRY_PROJECT="${SENTRY_ORG:-client}" +export SENTRY_ORG="${SENTRY_ORG:-pangea-chat}" echo "[run] Uploading sourcemaps for $SENTRY_RELEASE" -sentry-cli releases new $SENTRY_RELEASE +echo "[run] $SENTRY_PROJECT @ $SENTRY_ORG / $OUTPUT_FOLDER_WEB" +sentry-cli releases new $SENTRY_RELEASE --org $SENTRY_ORG sentry-cli releases set-commits $CI_COMMIT_SHA --auto sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps . \ --ext dart \