diff --git a/lib/src/blocs/home_bloc.dart b/lib/src/blocs/home_bloc.dart new file mode 100644 index 0000000..5131c07 --- /dev/null +++ b/lib/src/blocs/home_bloc.dart @@ -0,0 +1,25 @@ +import 'dart:async'; + +import 'package:rxdart/rxdart.dart'; + +import '../models/task_model.dart'; +import '../resources/authService.dart'; +import '../resources/firestore_provider.dart'; + +class HomeBloc { + final AuthService _auth = authService; + final FirestoreProvider _firestore = firestoreProvider; + final _tasks = BehaviorSubject>(); + + // Stream getters. + Observable> get userTasks => _tasks.stream; + + Future fetchTasks() async { + final user = await _auth.currentUser; + _firestore.getUserTasks(user.email).pipe(_tasks); + } + + void dispose() { + _tasks.close(); + } +} diff --git a/lib/src/blocs/home_bloc_provider.dart b/lib/src/blocs/home_bloc_provider.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/src/screens/home_screen.dart b/lib/src/screens/home_screen.dart index deba99a..49c7606 100644 --- a/lib/src/screens/home_screen.dart +++ b/lib/src/screens/home_screen.dart @@ -1,5 +1,3 @@ -import 'dart:async'; - import 'package:flutter/material.dart'; import '../models/task_model.dart'; @@ -30,8 +28,12 @@ class HomeScreen extends StatelessWidget { } return ListView( padding: EdgeInsets.zero, - children: - snap.data.map((task) => TaskListTile(task: task)).toList(), + children: snap.data + .map((task) => Container( + child: TaskListTile(task: task), + padding: EdgeInsets.only(bottom: 12), + )) + .toList(), ); }, ),