Skip to content

Commit b0de637

Browse files
committed
feat: tags state
1 parent 5dbc145 commit b0de637

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

app/src/main/java/to/bitkit/viewmodels/ActivityDetailViewModel.kt

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,22 @@ class ActivityDetailViewModel @Inject constructor(
3333
private val _uiState = MutableStateFlow(ActivityDetailUiState(screenState = ActivityDetailScreenState.Loading))
3434
val uiState = _uiState.asStateFlow()
3535

36-
private val _tags = MutableStateFlow<List<String>>(emptyList())
37-
val tags = _tags.asStateFlow()
38-
3936
private val _boostSheetVisible = MutableStateFlow(false)
4037
val boostSheetVisible = _boostSheetVisible.asStateFlow()
4138

4239
private var activity: Activity? = null
4340
set(value) {
4441
value?.let { activity ->
45-
val paymentValue = when (activity) {
42+
val paymentValue = when (activity) {
4643
is Activity.Lightning -> activity.v1.value
4744
is Activity.Onchain -> activity.v1.value
4845
}
4946
_uiState.update {
50-
it.copy( //TODO EXTRACT
47+
it.copy( // TODO EXTRACT
5148
screenState = ActivityDetailScreenState.Success(
5249
isLightning = activity is Activity.Lightning,
5350
isSent = activity.isSent(),
54-
timeStamp= when (activity) {
51+
timeStamp = when (activity) {
5552
is Activity.Lightning -> activity.v1.timestamp
5653
is Activity.Onchain -> when (activity.v1.confirmed) {
5754
true -> activity.v1.confirmTimestamp ?: activity.v1.timestamp
@@ -81,10 +78,17 @@ class ActivityDetailViewModel @Inject constructor(
8178
viewModelScope.launch(bgDispatcher) {
8279
try {
8380
val activityTags = coreService.activity.tags(forActivityId = id)
84-
_tags.value = activityTags
81+
(_uiState.value.screenState as? ActivityDetailScreenState.Success)?.let { successState ->
82+
_uiState.update {
83+
ActivityDetailUiState(
84+
successState.copy(
85+
tags = activityTags
86+
)
87+
)
88+
}
89+
}
8590
} catch (e: Exception) {
8691
Logger.error("Failed to load tags for activity $id", e, TAG)
87-
_tags.value = emptyList()
8892
}
8993
}
9094
}
@@ -160,5 +164,6 @@ sealed interface ActivityDetailScreenState {
160164
val fee: ULong?,
161165
val isSelfSend: Boolean,
162166
val isTransfer: Boolean,
167+
val tags: List<String> = emptyList(),
163168
) : ActivityDetailScreenState
164169
}

0 commit comments

Comments
 (0)