Created
August 7, 2019 00:57
-
-
Save bmelton/19ff88bcd050c7668c4a7b670d017621 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// in dateService.dart | |
import 'dart:async'; | |
import 'package:rxdart/rxdart.dart'; | |
class DateService { | |
static DateTime now = DateTime.now(); | |
static DateTime today = DateTime(now.year, now.month, now.day, 0, 0, 0, 0).toUtc(); | |
BehaviorSubject<DateTime> dateSubject = BehaviorSubject<DateTime>.seeded(today); | |
Stream<DateTime> get currentDate => dateSubject; | |
void broadcastDate(DateTime date) { | |
dateSubject.add(date); | |
} | |
} | |
class MyHomePage extends StatefulWidget { | |
MyHomePage({Key key, this.title}) : super(key: key); | |
final String title; | |
@override | |
_MyHomePageState createState() => _MyHomePageState(); | |
} | |
// in main.dart | |
var dateService = locator.get<DateService>(); | |
class _MyHomePageState extends State<MyHomePage> { | |
DateTime currentDate = dateService.dateSubject.value; | |
@override | |
void dispose() { | |
dateService.dateSubject.close(); | |
super.dispose(); | |
} | |
@override | |
Widget build(BuildContext context) { | |
return FutureBuilder<Word>( | |
future: getTodayWord(), | |
builder: (context, snapshot) { | |
if(!snapshot.hasData) { | |
return LoadingComponent(); | |
} else if (snapshot.hasError) { | |
return new Text("${snapshot.error}"); | |
} else { | |
return Scaffold( | |
) | |
}); | |
) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment