diff --git a/lib/components/todo.dart b/lib/components/todo.dart index 9a8450e..7d343fe 100644 --- a/lib/components/todo.dart +++ b/lib/components/todo.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:todo/objects/todo.dart'; class TodoTile extends StatefulWidget { - final TodoObject todo; + final TodoModel todo; const TodoTile({super.key, required this.todo}); @override diff --git a/lib/components/todo_list_view.dart b/lib/components/todo_list_view.dart index 4b1899d..a969c2b 100644 --- a/lib/components/todo_list_view.dart +++ b/lib/components/todo_list_view.dart @@ -17,14 +17,17 @@ class TodoListView extends StatefulWidget { class _TodoListViewState extends State { User user = FirebaseAuth.instance.currentUser!; - Stream> _todoStream() { + Stream> _todoStream() { return FirebaseFirestore.instance .collection('todos') - .orderBy(widget.isCompleted ? 'modifiedAt' : 'createdAt', descending: true) + .orderBy(widget.isCompleted ? 'modifiedAt' : 'createdAt', + descending: true) .where('userId', isEqualTo: user.uid) .where('isCompleted', isEqualTo: widget.isCompleted) .snapshots() - .map((snapshot) => snapshot.docs.map((doc) => TodoObject.fromJson(doc.data())).toList()); + .map((snapshot) => snapshot.docs + .map((doc) => TodoModel.fromJson(doc.data())) + .toList()); } @override @@ -46,13 +49,13 @@ class _TodoListViewState extends State { ), ), Expanded( - child: StreamBuilder>( + child: StreamBuilder>( stream: _todoStream(), builder: (context, snapshot) { if (snapshot.hasData) { final todos = snapshot.data!; return ListView( - children: todos.map((TodoObject todo) { + children: todos.map((TodoModel todo) { return TodoTile(todo: todo); }).toList(), ); diff --git a/lib/objects/todo.dart b/lib/objects/todo.dart index 69db4ad..f9c74a0 100644 --- a/lib/objects/todo.dart +++ b/lib/objects/todo.dart @@ -2,7 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:todo/services/firestore.dart'; -class TodoObject { +class TodoModel { DateTime createdAt; String id; bool _isCompleted; @@ -11,7 +11,7 @@ class TodoObject { String title; String userId; - TodoObject({ + TodoModel({ required this.createdAt, required this.id, required isCompleted, @@ -28,13 +28,14 @@ class TodoObject { FirestoreServices.instance.updateTodo(this); } - factory TodoObject.fromJson(Map json) { - return TodoObject( + factory TodoModel.fromJson(Map json) { + return TodoModel( createdAt: (json['createdAt'] as Timestamp).toDate(), id: json['id'], isCompleted: json['isCompleted'], modifiedAt: (json['modifiedAt'] as Timestamp).toDate(), - subtasks: json['subtasks'] != null ? List.from(json['subtasks']) : null, + subtasks: + json['subtasks'] != null ? List.from(json['subtasks']) : null, title: json['title'], userId: json['userId'], ); diff --git a/lib/screens/todos.dart b/lib/screens/todos.dart index 69ad621..9fc5e29 100644 --- a/lib/screens/todos.dart +++ b/lib/screens/todos.dart @@ -16,7 +16,8 @@ class TodosScreen extends StatefulWidget { State createState() => _TodosScreenState(); } -class _TodosScreenState extends State with TickerProviderStateMixin { +class _TodosScreenState extends State + with TickerProviderStateMixin { late TextEditingController _todoTextController; @override @@ -165,7 +166,8 @@ class _TodosScreenState extends State with TickerProviderStateMixin child: TextField( autofocus: true, controller: _todoTextController, - decoration: const InputDecoration(hintText: 'New todo'), + decoration: + const InputDecoration(hintText: 'New todo'), ), ), ), @@ -184,7 +186,7 @@ class _TodosScreenState extends State with TickerProviderStateMixin ); return; } - final todoObject = TodoObject( + final todoObject = TodoModel( createdAt: DateTime.now(), id: '', isCompleted: false, @@ -213,7 +215,8 @@ class _TodosScreenState extends State with TickerProviderStateMixin size: 36, ), ), - floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + floatingActionButtonLocation: + FloatingActionButtonLocation.centerDocked, ), ), ); diff --git a/lib/services/firestore.dart b/lib/services/firestore.dart index 410e6a5..09631e4 100644 --- a/lib/services/firestore.dart +++ b/lib/services/firestore.dart @@ -17,20 +17,20 @@ class FirestoreServices { return _instance!; } - void createTodo(TodoObject todo) async { + void createTodo(TodoModel todo) async { final newDocRef = _todosCollection.doc(); final newDocData = todo.toJson(); newDocData['id'] = newDocRef.id; await newDocRef.set(newDocData); } - void updateTodo(TodoObject todo) async { + void updateTodo(TodoModel todo) async { Map updatedData = todo.toJson(); updatedData['modifiedAt'] = DateTime.now(); await _todosCollection.doc(todo.id).update(updatedData); } - void deleteTodo(TodoObject todo) async { + void deleteTodo(TodoModel todo) async { await _todosCollection.doc(todo.id).delete(); } }