added categories, import export, settings
This commit is contained in:
+37
-8
@@ -3,7 +3,8 @@ library;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'scan_screen.dart';
|
||||
import 'home_shell.dart';
|
||||
import 'services/app_settings.dart';
|
||||
import 'services/product_repository.dart';
|
||||
import 'utils/app_theme.dart';
|
||||
import 'utils/constants.dart';
|
||||
@@ -13,20 +14,48 @@ void main() {
|
||||
runApp(ReceipityApp());
|
||||
}
|
||||
|
||||
class ReceipityApp extends StatelessWidget {
|
||||
class ReceipityApp extends StatefulWidget {
|
||||
ReceipityApp({super.key, ProductRepository? repository})
|
||||
: repository = repository ?? ProductRepository();
|
||||
|
||||
final ProductRepository repository;
|
||||
|
||||
@override
|
||||
State<ReceipityApp> createState() => _ReceipityAppState();
|
||||
}
|
||||
|
||||
class _ReceipityAppState extends State<ReceipityApp> {
|
||||
late final AppSettings _settings;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_settings = AppSettings(widget.repository);
|
||||
_settings.addListener(_onSettings);
|
||||
_settings.load();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_settings.removeListener(_onSettings);
|
||||
_settings.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _onSettings() => setState(() {});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
title: kAppName,
|
||||
debugShowCheckedModeBanner: false,
|
||||
theme: AppTheme.light(),
|
||||
darkTheme: AppTheme.dark(),
|
||||
home: ScanScreen(repository: repository),
|
||||
return SettingsScope(
|
||||
settings: _settings,
|
||||
child: MaterialApp(
|
||||
title: kAppName,
|
||||
debugShowCheckedModeBanner: false,
|
||||
theme: AppTheme.light(),
|
||||
darkTheme: AppTheme.dark(),
|
||||
themeMode: _settings.darkMode ? ThemeMode.dark : ThemeMode.light,
|
||||
home: HomeShell(repository: widget.repository),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user