diff --git a/lib/pages/chat/chat_event_list.dart b/lib/pages/chat/chat_event_list.dart index fed94554a..048b54443 100644 --- a/lib/pages/chat/chat_event_list.dart +++ b/lib/pages/chat/chat_event_list.dart @@ -45,6 +45,7 @@ class ChatEventList extends StatelessWidget { // after the chat event list mounts, if the user hasn't yet seen this instruction // card, attach it on top of the first shown message WidgetsBinding.instance.addPostFrameCallback((_) { + if (events.isEmpty) return; controller.pangeaController.instructions.show( context, InstructionsEnum.clickMessage, diff --git a/lib/pangea/pages/class_analytics/measure_able.dart b/lib/pangea/pages/class_analytics/measure_able.dart index 444997995..a569893fa 100644 --- a/lib/pangea/pages/class_analytics/measure_able.dart +++ b/lib/pangea/pages/class_analytics/measure_able.dart @@ -3,11 +3,13 @@ import 'package:flutter/scheduler.dart'; class MeasurableWidget extends StatefulWidget { final Widget child; - - Function? triggerMeasure; final Function(Size? size, Offset? position) onChange; - MeasurableWidget({super.key, required this.onChange, required this.child}); + const MeasurableWidget({ + super.key, + required this.onChange, + required this.child, + }); @override _WidgetSizeState createState() => _WidgetSizeState(); @@ -26,20 +28,22 @@ class _WidgetSizeState extends State { final context = widgetKey.currentContext; if (context == null) return; - final newSize = context.size; - final RenderBox? box = widgetKey.currentContext?.findRenderObject() as RenderBox?; - final Offset? position = box?.localToGlobal(Offset.zero); - if (oldPosition != null) { - if (oldPosition!.dx == position!.dx && oldPosition!.dy == position.dy) { - return; + if (box != null && box.hasSize) { + final Offset position = box.localToGlobal(Offset.zero); + + if (oldPosition != null) { + if (oldPosition!.dx == position.dx && oldPosition!.dy == position.dy) { + return; + } } - } - oldPosition = position; + oldPosition = position; - widget.onChange(newSize, position); + final newSize = context.size; + widget.onChange(newSize, position); + } } @override diff --git a/lib/pangea/utils/overlay.dart b/lib/pangea/utils/overlay.dart index 07eab5133..84e9b9a2a 100644 --- a/lib/pangea/utils/overlay.dart +++ b/lib/pangea/utils/overlay.dart @@ -76,10 +76,14 @@ class OverlayUtil { try { final LayerLinkAndKey layerLinkAndKey = MatrixState.pAnyState.layerLinkAndKey(transformTargetId); + if (layerLinkAndKey.key.currentContext == null) { + debugPrint("layerLinkAndKey.key.currentContext is null"); + return; + } final Offset cardOffset = _calculateCardOffset( cardSize: cardSize, - transformTargetKey: layerLinkAndKey.key, + transformTargetContext: layerLinkAndKey.key.currentContext!, ); final Widget child = Material( @@ -112,16 +116,16 @@ class OverlayUtil { /// identified by [transformTargetKey] static Offset _calculateCardOffset({ required Size cardSize, - required LabeledGlobalKey transformTargetKey, + required BuildContext transformTargetContext, final double minPadding = 10.0, }) { // debugger(when: kDebugMode); //Note: assumes overlay in chatview final OverlayConstraints constraints = - ChatViewConstraints(transformTargetKey.currentContext!); + ChatViewConstraints(transformTargetContext); final RenderObject? targetRenderBox = - transformTargetKey.currentContext!.findRenderObject(); + transformTargetContext.findRenderObject(); if (targetRenderBox == null) return Offset.zero; final Offset transformTargetOffset = (targetRenderBox as RenderBox).localToGlobal(Offset.zero); diff --git a/pangea_packages/fcm_shared_isolate/pubspec.lock b/pangea_packages/fcm_shared_isolate/pubspec.lock index e18c1dba1..55c0cb16e 100644 --- a/pangea_packages/fcm_shared_isolate/pubspec.lock +++ b/pangea_packages/fcm_shared_isolate/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "3ff770dfff04a67b0863dff205a0936784de1b87a5e99b11c693fc10e66a9ce3" + sha256: "0816f12bbbd9e21f72ea8592b11bce4a628d4e5cb7a81ff9f1eee4f3dc23206e" url: "https://pub.dev" source: hosted - version: "1.0.12" + version: "1.3.37" async: dependency: transitive description: @@ -61,50 +61,50 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: c129209ba55f3d4272c89fb4a4994c15bea77fb6de63a82d45fb6bc5c94e4355 + sha256: fae4ab4317c2a7afb13d44ef1e3f9f28a630e10016bc5cfe761e8e6a0ed7816a url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "3.1.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: "5fab93f5b354648efa62e7cc829c90efb68c8796eecf87e0888cae2d5f3accd4" + sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb" url: "https://pub.dev" source: hosted - version: "4.5.2" + version: "5.1.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: "18b35ce111b0a4266abf723c825bcf9d4e2519d13638cc7f06f2a8dd960c75bc" + sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.17.2" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: dc010a6436333029fba858415fe65887c3fe44d8f6e6ea162bb8d3dd764fbcb6 + sha256: "2d0ea2234ce46030eda2e6922611115ce603adc614ebd8c00e7db06a8929efbb" url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "15.0.1" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: abda2d766486096eb1c568c7b20aef46180596c8b0708190b929133ff03e0a8d + sha256: c38c27f58cb6a88b8c145018d0567802376549c32a60098a13f3bdf3ddea326f url: "https://pub.dev" source: hosted - version: "4.2.10" + version: "4.5.39" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "7a0ce957bd2210e8636325152234728874dad039f1c7271ba1be5c752fdc5888" + sha256: "8502849c2f232f7db338c052e045442207a0db82bd03ff14be3c80897dd8c26c" url: "https://pub.dev" source: hosted - version: "3.2.11" + version: "3.8.9" flutter: dependency: "direct main" description: flutter @@ -120,46 +120,62 @@ packages: description: flutter source: sdk version: "0.0.0" - js: + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + url: "https://pub.dev" + source: hosted + version: "10.0.4" + leak_tracker_flutter_testing: dependency: transitive description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + name: leak_tracker_flutter_testing + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "0.6.7" + version: "3.0.3" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" matcher: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.12.0" path: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" pedantic: dependency: "direct dev" description: @@ -225,10 +241,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" vector_math: dependency: transitive description: @@ -237,14 +253,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + url: "https://pub.dev" + source: hosted + version: "14.2.1" web: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.5.1" sdks: - dart: ">=3.2.0-194.0.dev <4.0.0" - flutter: ">=1.20.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/pangea_packages/fcm_shared_isolate/pubspec.yaml b/pangea_packages/fcm_shared_isolate/pubspec.yaml index d43abe16c..eda937d30 100644 --- a/pangea_packages/fcm_shared_isolate/pubspec.yaml +++ b/pangea_packages/fcm_shared_isolate/pubspec.yaml @@ -10,8 +10,8 @@ environment: flutter: ">=1.20.0" dependencies: - firebase_core: ^2.4.1 - firebase_messaging: ^14.2.1 + firebase_core: ^3.1.0 + firebase_messaging: ^15.0.1 flutter: sdk: flutter diff --git a/pubspec.lock b/pubspec.lock index afe372a2f..c2303486b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "3dee3db3468c5f4640a4e8aa9c1e22561c298976d8c39ed2fdd456a9a3db26e1" + sha256: "0816f12bbbd9e21f72ea8592b11bce4a628d4e5cb7a81ff9f1eee4f3dc23206e" url: "https://pub.dev" source: hosted - version: "1.3.32" + version: "1.3.37" adaptive_dialog: dependency: "direct main" description: @@ -460,74 +460,74 @@ packages: dependency: "direct main" description: name: firebase_analytics - sha256: c56bcc7abc6caacc33e8495bc604a5861d25ce371f1b06476ae226e7cbb21d4c + sha256: "3363045ecc3141673262493eea4bd888c2c627c5e986b8766fa5f4bfafdbcdd8" url: "https://pub.dev" source: hosted - version: "10.10.4" + version: "11.0.1" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: e8cdb845820eaa5f1d29de31a72aab8addbbffc6483f1e5123a9d0b611735285 + sha256: "5a2c14e18bf6c4423a6462113d85d3dee534a8bdd620391729e9570632d2aec4" url: "https://pub.dev" source: hosted - version: "3.10.5" + version: "4.0.1" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: e2fabebdf16bb99506a1e7e84f5effd6313c90678e6ea1876d301f057483a198 + sha256: db4bdb166aae9e5a0ce7791672401db139cd342369a92f7eaf020dbff9df2998 url: "https://pub.dev" source: hosted - version: "0.5.7+4" + version: "0.5.7+9" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "4aef2a23d0f3265545807d68fbc2f76a6b994ca3c778d88453b99325abd63284" + sha256: fae4ab4317c2a7afb13d44ef1e3f9f28a630e10016bc5cfe761e8e6a0ed7816a url: "https://pub.dev" source: hosted - version: "2.30.1" + version: "3.1.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63 + sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.1.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: "67f2fcc600fc78c2f731c370a3a5e6c87ee862e3a2fba6f951eca6d5dafe5c29" + sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d" url: "https://pub.dev" source: hosted - version: "2.16.0" + version: "2.17.2" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "73a43445a7f8c6e6327f0ec3922b1c99a9f4a0e4896197bfe10a88259f775aad" + sha256: "2d0ea2234ce46030eda2e6922611115ce603adc614ebd8c00e7db06a8929efbb" url: "https://pub.dev" source: hosted - version: "14.9.1" + version: "15.0.1" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "675527aadccb679c9dfd43a4558690427123ac1e99f03eef5bbce9dc216edc91" + sha256: c38c27f58cb6a88b8c145018d0567802376549c32a60098a13f3bdf3ddea326f url: "https://pub.dev" source: hosted - version: "4.5.34" + version: "4.5.39" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "66deff69307f54fc7a20732b4278af327ae378b86607d5ac877d8f2201fe881e" + sha256: "8502849c2f232f7db338c052e045442207a0db82bd03ff14be3c80897dd8c26c" url: "https://pub.dev" source: hosted - version: "3.8.4" + version: "3.8.9" fixnum: dependency: transitive description: @@ -975,6 +975,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + globbing: + dependency: transitive + description: + name: globbing + sha256: "4f89cfaf6fa74c9c1740a96259da06bd45411ede56744e28017cc534a12b6e2d" + url: "https://pub.dev" + source: hosted + version: "1.0.0" go_router: dependency: "direct main" description: @@ -1167,6 +1175,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.8+1" + injector: + dependency: transitive + description: + name: injector + sha256: ed389bed5b48a699d5b9561c985023d0d5cc88dd5ff2237aadcce5a5ab433e4e + url: "https://pub.dev" + source: hosted + version: "3.0.0" integration_test: dependency: "direct dev" description: flutter @@ -1749,6 +1765,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" + properties: + dependency: transitive + description: + name: properties + sha256: "333f427dd4ed07bdbe8c75b9ff864a1e70b5d7a8426a2e8bdd457b65ae5ac598" + url: "https://pub.dev" + source: hosted + version: "2.1.1" provider: dependency: "direct main" description: @@ -1949,6 +1973,14 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.0" + sentry_dart_plugin: + dependency: "direct dev" + description: + name: sentry_dart_plugin + sha256: e81fa3e0ffabd04fdcfbfecd6468d4a342f02ab33edca09708c61bcd2be42b7d + url: "https://pub.dev" + source: hosted + version: "1.7.1" sentry_flutter: dependency: "direct main" description: @@ -2234,6 +2266,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.0+1" + system_info2: + dependency: transitive + description: + name: system_info2 + sha256: "65206bbef475217008b5827374767550a5420ce70a04d2d7e94d1d2253f3efc9" + url: "https://pub.dev" + source: hosted + version: "4.0.0" tar: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 398a2f15b..ce6ef99dc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -103,9 +103,9 @@ dependencies: country_picker: ^2.0.25 csv: ^6.0.0 fl_chart: ^0.67.0 - firebase_analytics: ^10.10.2 - firebase_core: ^2.30.0 - firebase_messaging: ^14.8.2 + firebase_analytics: ^11.0.1 + firebase_core: ^3.1.0 + firebase_messaging: ^15.0.1 flutter_dotenv: ^5.1.0 fcm_shared_isolate: path: pangea_packages/fcm_shared_isolate