Files
kooltab/lib/app/app_bootstrap.dart
T
2026-10-08 04:12:36 +02:00

58 lines
1.4 KiB
Dart

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<AppBootstrap> createState() => _AppBootstrapState();
}
class _AppBootstrapState extends State<AppBootstrap> {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!mounted) return;
unawaited(
DefaultProductSeeder(
database: context.read<AppDatabase>(),
).seedIfEmpty(),
);
context.read<ProductListViewModel>().ensureLoaded();
context.read<BarScreenViewModel>().ensureLoaded();
unawaited(
DefaultExportService(
barTabService: context.read<BarTabService>(),
).uploadToServer(),
);
unawaited(
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky),
);
});
}
@override
Widget build(BuildContext context) {
return widget.child;
}
}