Skip to content

Instantly share code, notes, and snippets.

@bmelton
Created August 7, 2019 00:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmelton/19ff88bcd050c7668c4a7b670d017621 to your computer and use it in GitHub Desktop.
Save bmelton/19ff88bcd050c7668c4a7b670d017621 to your computer and use it in GitHub Desktop.
// 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