import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import '../database/app_database.dart'; import '../services/bar_tab_service.dart'; import '../services/default_product_seeder.dart'; import '../services/export_service.dart'; import '../viewmodels/bar_screen_view_model.dart'; import '../viewmodels/product_list_view_model.dart'; /// Kicks off the work that can run after the first frame. class AppBootstrap extends StatefulWidget { final Widget child; const AppBootstrap({super.key, required this.child}); @override State createState() => _AppBootstrapState(); } class _AppBootstrapState extends State { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { if (!mounted) return; unawaited( DefaultProductSeeder( database: context.read(), ).seedIfEmpty(), ); context.read().ensureLoaded(); context.read().ensureLoaded(); unawaited( DefaultExportService( barTabService: context.read(), ).uploadToServer(), ); unawaited( SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky), ); }); } @override Widget build(BuildContext context) { return widget.child; } }