This commit is contained in:
2026-07-11 17:47:40 +02:00
commit 6587779a58
66 changed files with 7325 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:kooltab2/theme.dart';
import 'router.dart';
class KoolTabApp extends StatelessWidget {
const KoolTabApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp.router(
title: 'KoolTab',
debugShowCheckedModeBanner: false,
routerConfig: appRouter,
// theme: ThemeData(
// useMaterial3: false,
// colorSchemeSeed: Colors.redAccent,
// brightness: Brightness.dark,
// ),
theme: neoBrutalDarkTheme
);
}
}
+36
View File
@@ -0,0 +1,36 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../viewmodels/bar_screen_view_model.dart';
import '../viewmodels/product_list_view_model.dart';
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;
context.read<ProductListViewModel>().ensureLoaded();
context.read<BarScreenViewModel>().ensureLoaded();
});
}
@override
Widget build(BuildContext context) {
return widget.child;
}
}
+33
View File
@@ -0,0 +1,33 @@
import 'package:go_router/go_router.dart';
import '../views/bar_screen_view.dart';
import '../views/product_form_view.dart';
import '../views/product_list_view.dart';
final appRouter = GoRouter(
initialLocation: '/bar',
routes: [
GoRoute(
path: '/bar',
builder: (context, state) => const BarScreenView(),
),
GoRoute(
path: '/products',
builder: (context, state) => const ProductListView(),
routes: [
GoRoute(
path: 'new',
builder: (context, state) => const ProductFormView(),
),
GoRoute(
path: ':id/edit',
builder: (context, state) {
final productId = state.pathParameters['id']!;
return ProductFormView(productId: productId);
},
),
],
),
],
);