From 77418d216f4218e6e529f1c6182e4b9c0f940471 Mon Sep 17 00:00:00 2001 From: Liat Ben-Haim Date: Tue, 2 Apr 2024 14:51:15 +0200 Subject: [PATCH] feat: rename DailyStatusRepository to DailyStatusModel and wrap with a ChangeNotifierProvider --- lib/data_storage/daily_status_repository.dart | 7 +++++-- lib/main.dart | 17 +++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/data_storage/daily_status_repository.dart b/lib/data_storage/daily_status_repository.dart index ebe5c53..0d7b13b 100644 --- a/lib/data_storage/daily_status_repository.dart +++ b/lib/data_storage/daily_status_repository.dart @@ -1,9 +1,10 @@ import 'models/daily_entry_model.dart'; +import 'package:flutter/foundation.dart'; -class DailyStatusRepository { +class DailyStatusModel extends ChangeNotifier { DailyEntry? currentDay; - DailyStatusRepository(); + DailyStatusModel(); void logFeelingMigrainy(bool status) { if (currentDay == null) { @@ -22,6 +23,7 @@ class DailyStatusRepository { tookPainMeds: currentDay!.tookPainMeds ); } + notifyListeners(); } void logTookZomig(bool status) { @@ -41,6 +43,7 @@ class DailyStatusRepository { tookPainMeds: currentDay!.tookPainMeds ); } + notifyListeners(); } DateTime getCurrentDate() { diff --git a/lib/main.dart b/lib/main.dart index ca9768a..14eefa5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,29 +1,30 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:migrainetracker/data_storage/daily_status_repository.dart'; import 'navigator/view.dart'; void main() { initializeDateFormatting("de_CH", null); - DailyStatusRepository dailyStatusRepository = DailyStatusRepository(); + DailyStatusModel dailyStatusModel = DailyStatusModel(); - runApp(MyApp(dailyStatusRepository: dailyStatusRepository)); + runApp( + ChangeNotifierProvider( + create: (context) => dailyStatusModel, + child: const MyApp(), + ), + ); } class MyApp extends StatelessWidget { - final DailyStatusRepository dailyStatusRepository; const MyApp({ Key? key, - required DailyStatusRepository dailyStatusRepository, - }) - : this.dailyStatusRepository = dailyStatusRepository, - super(key: key); + }) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', - theme: ThemeData( primarySwatch: Colors.blue, ),