fixed todo deletion
This commit is contained in:
@@ -71,7 +71,32 @@ class NotesPageState extends State<NotesPage> with TickerProviderStateMixin {
|
||||
final TextEditingController _taskName = TextEditingController();
|
||||
final TextEditingController _taskContent = TextEditingController();
|
||||
|
||||
void generateTiles() async {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
generateTiles();
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> deleteTodoItem(TodoItem item) async {
|
||||
todoItems.removeWhere((element) => element.id == item.id);
|
||||
await databaseProvider.userStore.storeSelfTodoItems(todoItems, userId: user.id!);
|
||||
|
||||
Provider.of<SelfNoteProvider>(context, listen: false).restore();
|
||||
Provider.of<SelfNoteProvider>(context, listen: false).restoreTodo();
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
Future<void> generateTiles() async {
|
||||
if (!mounted) return;
|
||||
|
||||
user = Provider.of<UserProvider>(context, listen: false);
|
||||
databaseProvider = Provider.of<DatabaseProvider>(context, listen: false);
|
||||
updateProvider = Provider.of<UpdateProvider>(context, listen: false);
|
||||
selfNoteProvider = Provider.of<SelfNoteProvider>(context, listen: false);
|
||||
|
||||
doneItems = await databaseProvider.userQuery.toDoItems(userId: user.id!);
|
||||
todoItems = await databaseProvider.userQuery.getTodoItems(userId: user.id!);
|
||||
|
||||
@@ -80,14 +105,11 @@ class NotesPageState extends State<NotesPage> with TickerProviderStateMixin {
|
||||
List<Homework> hw = Provider.of<HomeworkProvider>(context, listen: false)
|
||||
.homework
|
||||
.where((e) => e.deadline.isAfter(DateTime.now()))
|
||||
// e.deadline.isBefore(DateTime(DateTime.now().year,
|
||||
// DateTime.now().month, DateTime.now().day + 3)))
|
||||
.toList();
|
||||
|
||||
// todo tiles
|
||||
// Build todo tiles
|
||||
List<Widget> toDoTiles = [];
|
||||
|
||||
// TODO: FIX THIS ASAP
|
||||
if (hw.isNotEmpty &&
|
||||
Provider.of<PlusProvider>(context, listen: false)
|
||||
.hasScope(PremiumScopes.unlimitedSelfNotes)) {
|
||||
@@ -98,51 +120,39 @@ class NotesPageState extends State<NotesPage> with TickerProviderStateMixin {
|
||||
'${(e.subject.isRenamed ? e.subject.renamedTo : e.subject.name) ?? ''}, ${e.content.escapeHtml()}',
|
||||
isTicked: doneItems[e.id] ?? false,
|
||||
onTap: (p0) async {
|
||||
// print(p0);
|
||||
// print(doneItems);
|
||||
if (!doneItems.containsKey(e.id)) {
|
||||
doneItems.addAll({e.id: p0});
|
||||
} else {
|
||||
doneItems[e.id] = p0;
|
||||
}
|
||||
// print(doneItems);
|
||||
// print(doneItems[e.id]);
|
||||
// print(user.id);
|
||||
doneItems[e.id] = p0;
|
||||
await databaseProvider.userStore
|
||||
.storeToDoItem(doneItems, userId: user.id!);
|
||||
|
||||
setState(() {});
|
||||
|
||||
// print(
|
||||
// await databaseProvider.userQuery.toDoItems(userId: user.id!));
|
||||
},
|
||||
)));
|
||||
}
|
||||
|
||||
if (selfNoteProvider.todos.isNotEmpty) {
|
||||
toDoTiles.addAll(selfNoteProvider.todos.map((e) => TickTile(
|
||||
padding: EdgeInsets.zero,
|
||||
title: e.title,
|
||||
description: e.content,
|
||||
isTicked: e.done,
|
||||
onTap: (p0) async {
|
||||
final todoItemIndex =
|
||||
todoItems.indexWhere((element) => element.id == e.id);
|
||||
if (todoItemIndex != -1) {
|
||||
TodoItem todoItem = todoItems[todoItemIndex];
|
||||
Map<String, dynamic> todoItemJson = todoItem.toJson;
|
||||
todoItemJson['done'] = p0;
|
||||
todoItem = TodoItem.fromJson(todoItemJson);
|
||||
todoItems[todoItemIndex] = todoItem;
|
||||
await databaseProvider.userStore
|
||||
.storeSelfTodoItems(todoItems, userId: user.id!);
|
||||
}
|
||||
|
||||
// await databaseProvider.userStore
|
||||
// .storeSelfTodoItems(todoItems, userId: user.id!);
|
||||
},
|
||||
)));
|
||||
}
|
||||
if (selfNoteProvider.todos.isNotEmpty) {
|
||||
toDoTiles.addAll(selfNoteProvider.todos.map((e) => GestureDetector(
|
||||
onLongPress: () async {
|
||||
final todoItem = todoItems.firstWhere((item) => item.id == e.id);
|
||||
await deleteTodoItem(todoItem);
|
||||
},
|
||||
child: TickTile(
|
||||
padding: EdgeInsets.zero,
|
||||
title: e.title,
|
||||
description: e.content,
|
||||
isTicked: e.done,
|
||||
onTap: (p0) async {
|
||||
final todoItemIndex = todoItems.indexWhere((element) => element.id == e.id);
|
||||
if (todoItemIndex != -1) {
|
||||
TodoItem todoItem = todoItems[todoItemIndex];
|
||||
Map<String, dynamic> todoItemJson = todoItem.toJson;
|
||||
todoItemJson['done'] = p0;
|
||||
todoItem = TodoItem.fromJson(todoItemJson);
|
||||
todoItems[todoItemIndex] = todoItem;
|
||||
await databaseProvider.userStore.storeSelfTodoItems(todoItems, userId: user.id!);
|
||||
}
|
||||
},
|
||||
),
|
||||
)));
|
||||
}
|
||||
|
||||
if (toDoTiles.isNotEmpty) {
|
||||
tiles.add(const SizedBox(
|
||||
@@ -328,9 +338,8 @@ class NotesPageState extends State<NotesPage> with TickerProviderStateMixin {
|
||||
child: ProfileImage(
|
||||
heroTag: "profile",
|
||||
name: firstName,
|
||||
backgroundColor: Theme.of(context)
|
||||
.colorScheme
|
||||
.tertiary, //ColorUtils.stringToColor(user.displayName ?? "?"),
|
||||
backgroundColor: Theme.of(context).colorScheme.tertiary,
|
||||
//ColorUtils.stringToColor(user.displayName ?? "?"),
|
||||
badge: updateProvider.available,
|
||||
role: user.role,
|
||||
profilePictureString: user.picture,
|
||||
|
||||
Reference in New Issue
Block a user