don't calculate page size if renderbox isn't yet laid out and don't show overlay if context is null

pull/1384/head
ggurdin 1 year ago
parent 929843248c
commit 1d6db1aabf

@ -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,

@ -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,21 +28,23 @@ class _WidgetSizeState extends State<MeasurableWidget> {
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 (box != null && box.hasSize) {
final Offset position = box.localToGlobal(Offset.zero);
if (oldPosition != null) {
if (oldPosition!.dx == position!.dx && oldPosition!.dy == position.dy) {
if (oldPosition!.dx == position.dx && oldPosition!.dy == position.dy) {
return;
}
}
oldPosition = position;
final newSize = context.size;
widget.onChange(newSize, position);
}
}
@override
Widget build(BuildContext context) {

@ -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);

@ -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"

@ -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

@ -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:

@ -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

Loading…
Cancel
Save