Skip to content

Commit 1ab7881

Browse files
committed
fix(main): revert swiping when failed to delete user
1 parent 9c84b44 commit 1ab7881

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

data/src/main/java/com/hoc/flowmvi/data/UserRepositoryImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ internal class UserRepositoryImpl(
8787
.mapLeft(errorMapper)
8888

8989
override suspend fun remove(user: User) = Either.catch {
90+
extraDelay()
91+
throw IOException()
9092
withContext(dispatchers.io) {
9193
val response = userApiService.remove(user.id)
9294
changesFlow.emit(Change.Removed(responseToDomain(response)))

feature-main/src/main/java/com/hoc/flowmvi/ui/main/MainActivity.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,16 @@ class MainActivity :
8787
is SingleEvent.Refresh.Failure -> toast("Refresh failure")
8888
is SingleEvent.GetUsersError -> toast("Get user failure")
8989
is SingleEvent.RemoveUser.Success -> toast("Removed '${event.user.fullName}'")
90-
is SingleEvent.RemoveUser.Failure -> toast("Error when removing '${event.user.fullName}'")
90+
is SingleEvent.RemoveUser.Failure -> {
91+
toast("Error when removing '${event.user.fullName}'")
92+
userAdapter.notifyItemChanged(
93+
vm.viewState.value
94+
.userItems
95+
.indexOfFirst { it.id == event.user.id }
96+
.takeIf { it != RecyclerView.NO_POSITION }
97+
?: return
98+
)
99+
}
91100
}
92101
}
93102

0 commit comments

Comments
 (0)