initializeMapPostFrame function

void initializeMapPostFrame({
  1. required BuildContext context,
  2. required AnimationController animationController,
  3. required VoidCallback loadSettingsSync,
  4. required VoidCallback verifyLoginStateAndLoadData,
})

Initializes map widget after first frame.

Implementation

void initializeMapPostFrame({
  required BuildContext context,
  required AnimationController animationController,
  required VoidCallback loadSettingsSync,
  required VoidCallback verifyLoginStateAndLoadData,
}) {
  WidgetsBinding.instance.addPostFrameCallback((_) {
    if (!context.mounted) return;

    animationController.forward();

    // Defer settings loading slightly to not block animation.

    Future.microtask(() {
      if (context.mounted) loadSettingsSync();
    });

    // Defer login verification even more.

    Future.delayed(const Duration(milliseconds: 50), () {
      if (context.mounted) verifyLoginStateAndLoadData();
    });
  });
}