File tree Expand file tree Collapse file tree
composeApp/src/commonMain/kotlin/com/github/familyvault Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ import com.github.familyvault.models.tasks.TaskList
77interface ITaskService {
88 suspend fun getTaskLists (): List <TaskList >
99 suspend fun createNewTaskList (name : String )
10- suspend fun updateTaskList (taskListId : String , name : String )
10+ suspend fun updateTaskList (taskListId : String , name : String ): Boolean
1111 suspend fun deleteTaskList (taskListId : String )
1212
1313 suspend fun createNewTask (
Original file line number Diff line number Diff line change @@ -37,17 +37,22 @@ class TaskService(
3737 )
3838 }
3939
40- override suspend fun updateTaskList (taskListId : String , name : String ) {
41- val splitFamilyMembers = FamilyMembersSplitter .split(
42- familyGroupService.retrieveFamilyGroupMembersList()
43- )
40+ override suspend fun updateTaskList (taskListId : String , name : String ): Boolean {
41+ return try {
42+ val splitFamilyMembers = FamilyMembersSplitter .split(
43+ familyGroupService.retrieveFamilyGroupMembersList()
44+ )
4445
45- privMxClient.updateThread(
46- taskListId,
47- users = splitFamilyMembers.members.map { it.toPrivMxUser() },
48- managers = splitFamilyMembers.guardians.map { it.toPrivMxUser() },
49- newName = name,
50- )
46+ privMxClient.updateThread(
47+ taskListId,
48+ users = splitFamilyMembers.members.map { it.toPrivMxUser() },
49+ managers = splitFamilyMembers.guardians.map { it.toPrivMxUser() },
50+ newName = name,
51+ )
52+ true
53+ } catch (e: Exception ) {
54+ false
55+ }
5156 }
5257
5358 override suspend fun deleteTaskList (taskListId : String ) {
Original file line number Diff line number Diff line change @@ -39,19 +39,29 @@ fun TaskTabContent() {
3939 tasksCategoriesState.populateTaskListFromServices()
4040 familyMembersState.populateFamilyGroupMembersFromService()
4141
42- taskListListenerService.startListeningForNewTaskList { newList ->
43- tasksListState.taskLists.add(newList)
42+ try {
43+ taskListListenerService.startListeningForNewTaskList { newList ->
44+ tasksListState.taskLists.add(newList)
45+ }
46+ } catch (_: Exception ) {
4447 }
45- taskListListenerService.startListeningForUpdatedTaskList { updatedList ->
46- tasksListState.updateTaskList(updatedList)
48+
49+ try {
50+ taskListListenerService.startListeningForUpdatedTaskList { updatedList ->
51+ tasksListState.updateTaskList(updatedList)
52+ }
53+ } catch (_: Exception ) {
4754 }
4855
49- taskListListenerService.startListeningForDeletedTaskList { deletedListId ->
50- coroutineScope.launch {
51- isLoading = true
52- tasksListState.removeTaskList(deletedListId.threadId)
53- isLoading = false
56+ try {
57+ taskListListenerService.startListeningForDeletedTaskList { deletedListId ->
58+ coroutineScope.launch {
59+ isLoading = true
60+ tasksListState.removeTaskList(deletedListId.threadId)
61+ isLoading = false
62+ }
5463 }
64+ } catch (_: Exception ) {
5565 }
5666
5767 isLoading = false
Original file line number Diff line number Diff line change @@ -83,7 +83,7 @@ fun TaskListContent() {
8383 taskListState.taskLists.forEach {
8484 TaskListButton (
8585 title = it.name,
86- selected = it == taskListState.selectedTaskList
86+ selected = it.id == taskListState.selectedTaskList?.id
8787 ) {
8888 coroutineScope.launch {
8989 taskListState.selectTaskList(it.id)
@@ -106,11 +106,12 @@ fun TaskListContent() {
106106 .verticalScroll(scrollState)
107107 ) {
108108 taskListState.selectedTaskList?.let { taskList ->
109+ val currentTaskList = taskListState.taskLists.find { it.id == taskList.id } ? : taskList
109110 TaskGroupPending (
110- categoryTitle = taskList .name,
111+ categoryTitle = currentTaskList .name,
111112 tasks = taskListState.tasks.filter { ! it.content.completed },
112113 onEditClick = {
113- localNavigator.parent?.push(TaskListEditScreen (taskList ))
114+ localNavigator.parent?.push(TaskListEditScreen (currentTaskList ))
114115 },
115116 permissionGroup = currentUserPermissionGroup
116117 )
Original file line number Diff line number Diff line change @@ -83,13 +83,18 @@ class TaskListEditScreen(private val taskList: TaskList) : Screen {
8383 ) {
8484 coroutineScope.launch {
8585 isEditing = true
86- taskService.updateTaskList(taskList.id, taskListForm.name)
87- taskListState.populateTaskListFromServices()
88- if (taskList.id == taskListState.selectedTaskList?.id) {
89- taskListState.selectTaskList(taskList.id)
86+ val updateResult = taskService.updateTaskList(taskList.id, taskListForm.name)
87+
88+ if (updateResult) {
89+ taskListState.populateTaskListFromServices()
90+ if (taskList.id == taskListState.selectedTaskList?.id) {
91+ taskListState.selectTaskList(taskList.id)
92+ }
93+ isEditing = false
94+ localNavigator.pop()
95+ } else {
96+ isEditing = false
9097 }
91- isEditing = false
92- localNavigator.pop()
9398 }
9499 }
95100 DangerButton (
You can’t perform that action at this time.
0 commit comments