mudular code ready to fork

This commit is contained in:
gitea
2025-11-08 12:54:40 +01:00
parent 5f8d8330f5
commit 8c6bf598f5
21 changed files with 288 additions and 519 deletions
+16 -17
View File
@@ -1,15 +1,11 @@
import 'package:flutter/material.dart';
import '../../core/service_locator.dart';
import '../../data/local/local_storage_service.dart';
import '../../data/local/models/item.dart';
/// Home screen showing local storage and cached content.
class HomeScreen extends StatefulWidget {
final LocalStorageService? localStorageService;
const HomeScreen({
super.key,
this.localStorageService,
});
const HomeScreen({super.key});
@override
State<HomeScreen> createState() => _HomeScreenState();
@@ -26,15 +22,16 @@ class _HomeScreenState extends State<HomeScreen> {
}
Future<void> _loadItems() async {
if (widget.localStorageService == null) {
setState(() {
_isLoading = false;
});
return;
}
try {
final items = await widget.localStorageService!.getAllItems();
final localStorageService = ServiceLocator.instance.localStorageService;
if (localStorageService == null) {
setState(() {
_isLoading = false;
});
return;
}
final items = await localStorageService.getAllItems();
setState(() {
_items = items;
_isLoading = false;
@@ -90,7 +87,8 @@ class _HomeScreenState extends State<HomeScreen> {
trailing: IconButton(
icon: const Icon(Icons.delete_outline),
onPressed: () async {
await widget.localStorageService?.deleteItem(item.id);
final localStorageService = ServiceLocator.instance.localStorageService;
await localStorageService?.deleteItem(item.id);
_loadItems();
},
),
@@ -98,9 +96,10 @@ class _HomeScreenState extends State<HomeScreen> {
},
),
),
floatingActionButton: widget.localStorageService != null
floatingActionButton: ServiceLocator.instance.localStorageService != null
? FloatingActionButton(
onPressed: () async {
final localStorageService = ServiceLocator.instance.localStorageService;
final item = Item(
id: 'item-${DateTime.now().millisecondsSinceEpoch}',
data: {
@@ -108,7 +107,7 @@ class _HomeScreenState extends State<HomeScreen> {
'timestamp': DateTime.now().toIso8601String(),
},
);
await widget.localStorageService!.insertItem(item);
await localStorageService!.insertItem(item);
_loadItems();
},
child: const Icon(Icons.add),