misc : introduce List.firstIfSingle extension
This commit is contained in:
@@ -14,6 +14,7 @@ import io.element.android.features.knockrequests.impl.KnockRequest
|
||||
import io.element.android.features.knockrequests.impl.R
|
||||
import io.element.android.features.knockrequests.impl.getBestName
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.core.extensions.firstIfSingle
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
data class KnockRequestsBannerState(
|
||||
@@ -23,17 +24,8 @@ data class KnockRequestsBannerState(
|
||||
val canAccept: Boolean,
|
||||
val eventSink: (KnockRequestsBannerEvents) -> Unit,
|
||||
) {
|
||||
val subtitle = if (knockRequests.size == 1) {
|
||||
knockRequests.first().userId.value
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
val reason = if (knockRequests.size == 1) {
|
||||
knockRequests.first().reason
|
||||
} else {
|
||||
null
|
||||
}
|
||||
val subtitle = knockRequests.firstIfSingle()?.userId?.value
|
||||
val reason = knockRequests.firstIfSingle()?.reason
|
||||
|
||||
@Composable
|
||||
fun formattedTitle(): String {
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2024 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* Please see LICENSE in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.core.extensions
|
||||
|
||||
/**
|
||||
* Returns the first element if the list contains exactly one element, otherwise returns null.
|
||||
*/
|
||||
inline fun <reified T> List<T>.firstIfSingle(): T? {
|
||||
return if (size == 1) first() else null
|
||||
}
|
||||
Reference in New Issue
Block a user