1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
thesis_shop/lib/app.dart

46 lines
1.5 KiB

import 'package:flutter/material.dart';
import 'package:thesis_shop/route_key.dart';
import 'package:thesis_shop/screens/cart/cart_screen.dart';
import 'package:thesis_shop/screens/product_list/product_list_screen.dart';
import 'package:thesis_shop/service/product_service.dart';
import 'package:thesis_shop/stores/cart_store.dart';
import 'package:thesis_shop/stores/product_store.dart';
import 'package:thesis_shop/stores/user_store.dart';
import 'package:thesis_shop/utils/map_keys_extension.dart';
class ThesisShopApp extends StatelessWidget {
final ProductService productService;
const ThesisShopApp({Key? key, required this.productService})
: super(key: key);
Widget injectStores(BuildContext context, {required Widget child}) {
return UserStoreImplementation(
child: ProductStoreImplementation(
productService: productService,
child: CartStoreImplementation(
child: child,
),
),
);
}
@override
Widget build(BuildContext context) {
return injectStores(
context,
child: MaterialApp(
title: 'Thesis Shop',
theme: ThemeData(primarySwatch: Colors.red),
darkTheme: ThemeData(
primarySwatch: Colors.red,
brightness: Brightness.dark,
),
routes: {
RouteKey.products: (context) => const ProductListScreen(),
RouteKey.cart: (context) => const CartScreen(),
}.mapKeys((key) => key.name),
initialRoute: 'products',
),
);
}
}