From a41b025f5b0b0dc3bb930d1ee9250f0e71fe69e9 Mon Sep 17 00:00:00 2001 From: Maxime NATUREL <46314705+mnaturel@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:54:39 +0100 Subject: [PATCH] Adding action in the top bar --- .../impl/selectmembers/SelectMembersState.kt | 1 + .../SelectMembersStateProvider.kt | 1 + .../impl/selectmembers/SelectMembersView.kt | 21 +++++++++++++++---- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersState.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersState.kt index 7e78e48126..58bbd033a3 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersState.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersState.kt @@ -17,5 +17,6 @@ package io.element.android.features.createroom.impl.selectmembers data class SelectMembersState( + val selectedUserIds: List = emptyList(), val eventSink: (SelectMembersEvents) -> Unit, ) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersStateProvider.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersStateProvider.kt index 0ed1ae14f7..6acff4d979 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersStateProvider.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersStateProvider.kt @@ -22,6 +22,7 @@ open class SelectMembersStateProvider : PreviewParameterProvider get() = sequenceOf( aSelectMembersState(), + aSelectMembersState().copy(selectedUserIds = listOf("someUserId")) ) } diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersView.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersView.kt index 100a4f495d..2443405251 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersView.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/selectmembers/SelectMembersView.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import io.element.android.libraries.designsystem.components.button.BackButton import io.element.android.libraries.designsystem.preview.ElementPreviewDark @@ -33,7 +34,8 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.components.CenterAlignedTopAppBar import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Text -import io.element.android.libraries.ui.strings.R +import io.element.android.libraries.designsystem.theme.components.TextButton +import io.element.android.libraries.ui.strings.R as StringR @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -48,6 +50,7 @@ fun SelectMembersView( Scaffold( topBar = { SelectMembersViewTopBar( + hasSelectedUsers = state.selectedUserIds.isNotEmpty(), onBackPressed = onBackPressed, onNextPressed = onNextPressed, ) @@ -58,7 +61,7 @@ fun SelectMembersView( .fillMaxSize() .padding(padding) ) { - Text(text = "Hello!") + } } } @@ -66,6 +69,7 @@ fun SelectMembersView( @OptIn(ExperimentalMaterial3Api::class) @Composable fun SelectMembersViewTopBar( + hasSelectedUsers: Boolean, modifier: Modifier = Modifier, onBackPressed: () -> Unit = {}, onNextPressed: () -> Unit = {}, @@ -74,14 +78,23 @@ fun SelectMembersViewTopBar( modifier = modifier, title = { Text( - text = stringResource(id = R.string.add_people), + text = stringResource(id = StringR.string.add_people), fontSize = 16.sp, fontWeight = FontWeight.SemiBold, ) }, navigationIcon = { BackButton(onClick = onBackPressed) }, actions = { - + TextButton( + modifier = Modifier.padding(horizontal = 8.dp), + onClick = onNextPressed, + ) { + val textActionResId = if (hasSelectedUsers) StringR.string.action_next else StringR.string.action_skip + Text( + text = stringResource(id = textActionResId), + fontSize = 16.sp, + ) + } } ) }