diff --git a/lib/app.dart b/lib/app.dart index 448f3d08..ccabb61e 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -5,6 +5,7 @@ import 'package:fimber/fimber.dart'; import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:firebase_analytics/observer.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import 'package:gitjournal/apis/git.dart'; import 'package:gitjournal/settings.dart'; @@ -46,7 +47,10 @@ class JournalApp extends StatelessWidget { runApp(StateContainer( appState: appState, - child: JournalApp(), + child: ChangeNotifierProvider( + child: JournalApp(), + create: (_) => appState.notesFolder, + ), )); } diff --git a/lib/screens/folder_listing.dart b/lib/screens/folder_listing.dart index 710b102c..c883c455 100644 --- a/lib/screens/folder_listing.dart +++ b/lib/screens/folder_listing.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import 'package:gitjournal/widgets/app_bar_menu_button.dart'; import 'package:gitjournal/widgets/app_drawer.dart'; @@ -18,11 +19,10 @@ class _FolderListingScreenState extends State { @override Widget build(BuildContext context) { - final container = StateContainer.of(context); - final appState = container.appState; + final notesFolder = Provider.of(context); var treeView = FolderTreeView( - rootFolder: appState.notesFolder, + rootFolder: notesFolder, onFolderEntered: (NotesFolder folder) { var route = MaterialPageRoute( builder: (context) => JournalListingScreen( @@ -99,9 +99,9 @@ class _CreateFolderButtonState extends State { await showDialog(context: context, builder: _buildAlert); if (folderName is String) { final container = StateContainer.of(context); - final appState = container.appState; + final notesFolder = Provider.of(context); - container.createFolder(appState.notesFolder, folderName); + container.createFolder(notesFolder, folderName); } }, child: Icon(Icons.add), diff --git a/pubspec.lock b/pubspec.lock index edb7c903..44292a66 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -399,6 +399,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.11" + provider: + dependency: "direct main" + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.0" pub_semver: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 116032ff..2ff1ad9e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,6 +29,7 @@ dependencies: flushbar: ^1.9.0 flutter_staggered_grid_view: ^0.3.0 page_transition: "^1.1.5" + provider: ^3.2.0 dev_dependencies: flutter_launcher_icons: "^0.7.2"