From eec5994c303c86735ea64b93befd1b1a0e381a16 Mon Sep 17 00:00:00 2001 From: Tommy Chow Date: Tue, 5 Oct 2021 00:16:46 -0400 Subject: [PATCH] Return to Provider and remove GetIt --- lib/main.dart | 46 +++++++++++++++++++++---------------- lib/screens/settings.dart | 4 ++-- lib/screens/video_chat.dart | 4 +++- lib/widgets/chat.dart | 6 ++--- pubspec.lock | 23 ++++++++++++------- pubspec.yaml | 2 +- 6 files changed, 50 insertions(+), 35 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 2bb657b0..199a6258 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,11 +1,9 @@ import 'package:flutter/material.dart'; import 'package:frosty/screens/home.dart'; import 'package:frosty/stores/auth_store.dart'; -import 'package:get_it/get_it.dart'; +import 'package:provider/provider.dart'; void main() { - GetIt.I.registerSingleton(AuthStore()); - runApp(const MyApp()); } @@ -14,23 +12,31 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - final auth = GetIt.I(); - return MaterialApp( - title: 'Frosty', - theme: ThemeData( - primarySwatch: Colors.blue, - brightness: Brightness.dark, - ), - home: Scaffold( - body: FutureBuilder( - future: auth.init(), - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.done) { - return const Home(); - } - return const Center(child: CircularProgressIndicator()); - }, - ), + return MultiProvider( + providers: [ + Provider(create: (_) => AuthStore()), + ], + child: Builder( + builder: (context) { + return MaterialApp( + title: 'Frosty', + theme: ThemeData( + primarySwatch: Colors.blue, + brightness: Brightness.dark, + ), + home: Scaffold( + body: FutureBuilder( + future: context.read().init(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.done) { + return const Home(); + } + return const Center(child: CircularProgressIndicator()); + }, + ), + ), + ); + }, ), ); } diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index d4f65580..d6969b21 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:frosty/stores/auth_store.dart'; -import 'package:get_it/get_it.dart'; +import 'package:provider/provider.dart'; class Settings extends StatelessWidget { const Settings({Key? key}) : super(key: key); @@ -9,7 +9,7 @@ class Settings extends StatelessWidget { @override Widget build(BuildContext context) { debugPrint('settings'); - final auth = GetIt.I(); + final auth = context.read(); return Scaffold( appBar: AppBar( title: const Text('Settings'), diff --git a/lib/screens/video_chat.dart b/lib/screens/video_chat.dart index 6fb028bf..71fc4a86 100644 --- a/lib/screens/video_chat.dart +++ b/lib/screens/video_chat.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:frosty/models/channel.dart'; +import 'package:frosty/stores/auth_store.dart'; import 'package:frosty/widgets/chat.dart'; import 'package:frosty/widgets/video.dart'; +import 'package:provider/provider.dart'; class VideoChat extends StatelessWidget { final Channel channelInfo; @@ -20,7 +22,7 @@ class VideoChat extends StatelessWidget { child: Video(channelName: channelInfo.userLogin), ), Expanded( - child: Chat(channelInfo: channelInfo), + child: Chat(auth: context.read(), channelInfo: channelInfo), ) ], ), diff --git a/lib/widgets/chat.dart b/lib/widgets/chat.dart index 65cc7562..f6e7b240 100644 --- a/lib/widgets/chat.dart +++ b/lib/widgets/chat.dart @@ -3,19 +3,19 @@ import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:frosty/models/channel.dart'; import 'package:frosty/stores/auth_store.dart'; import 'package:frosty/stores/chat_store.dart'; -import 'package:get_it/get_it.dart'; class Chat extends StatefulWidget { + final AuthStore auth; final Channel channelInfo; - const Chat({Key? key, required this.channelInfo}) : super(key: key); + const Chat({Key? key, required this.auth, required this.channelInfo}) : super(key: key); @override _ChatState createState() => _ChatState(); } class _ChatState extends State { - late final ChatStore chatStore = ChatStore(auth: GetIt.I(), channelInfo: widget.channelInfo); + late final ChatStore chatStore = ChatStore(auth: widget.auth, channelInfo: widget.channelInfo); @override Widget build(BuildContext context) { diff --git a/pubspec.lock b/pubspec.lock index 80cfc3e8..95ac6f30 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -317,13 +317,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.2" - get_it: - dependency: "direct main" - description: - name: get_it - url: "https://pub.dartlang.org" - source: hosted - version: "7.2.0" glob: dependency: transitive description: @@ -344,7 +337,7 @@ packages: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.13.3" + version: "0.13.4" http_multi_server: dependency: transitive description: @@ -443,6 +436,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.3" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" octo_image: dependency: transitive description: @@ -534,6 +534,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.2.3" + provider: + dependency: "direct main" + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.1" pub_semver: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 49509f0d..d13dfaad 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,9 +41,9 @@ dependencies: intl: ^0.17.0 cached_network_image: ^3.1.0 webview_flutter: ^2.0.13 + provider: ^6.0.1 mobx: ^2.0.0 flutter_mobx: ^2.0.0 - get_it: ^7.2.0 dev_dependencies: flutter_test: