Skip to content

Commit 1a66b44

Browse files
committed
Update UI
1 parent 404436f commit 1a66b44

File tree

2 files changed

+45
-8
lines changed

2 files changed

+45
-8
lines changed

features/space/impl/src/main/kotlin/io/element/android/features/space/impl/leave/LeaveSpaceStateProvider.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,22 @@ class LeaveSpaceStateProvider : PreviewParameterProvider<LeaveSpaceState> {
7474
)
7575
),
7676
),
77+
aLeaveSpaceState(
78+
selectableSpaceRooms = AsyncData.Success(
79+
persistentListOf(
80+
aSelectableSpaceRoom(
81+
spaceRoom = aSpaceRoom(
82+
worldReadable = true,
83+
),
84+
isLastAdmin = true,
85+
),
86+
aSelectableSpaceRoom(
87+
spaceRoom = aSpaceRoom(),
88+
isLastAdmin = true,
89+
),
90+
)
91+
),
92+
),
7793
aLeaveSpaceState(
7894
selectableSpaceRooms = AsyncData.Success(
7995
List(10) { aSelectableSpaceRoom() }.toPersistentList()

features/space/impl/src/main/kotlin/io/element/android/features/space/impl/leave/LeaveSpaceView.kt

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
* Please see LICENSE files in the repository root for full details.
66
*/
77

8+
@file:OptIn(ExperimentalMaterial3Api::class)
9+
810
package io.element.android.features.space.impl.leave
911

1012
import androidx.compose.foundation.clickable
@@ -19,6 +21,7 @@ import androidx.compose.foundation.layout.padding
1921
import androidx.compose.foundation.layout.size
2022
import androidx.compose.foundation.lazy.LazyColumn
2123
import androidx.compose.foundation.selection.toggleable
24+
import androidx.compose.material3.ExperimentalMaterial3Api
2225
import androidx.compose.runtime.Composable
2326
import androidx.compose.ui.Alignment
2427
import androidx.compose.ui.Modifier
@@ -41,6 +44,7 @@ import io.element.android.libraries.designsystem.components.async.AsyncLoading
4144
import io.element.android.libraries.designsystem.components.avatar.Avatar
4245
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
4346
import io.element.android.libraries.designsystem.components.avatar.AvatarType
47+
import io.element.android.libraries.designsystem.components.button.BackButton
4448
import io.element.android.libraries.designsystem.preview.ElementPreview
4549
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
4650
import io.element.android.libraries.designsystem.theme.components.Button
@@ -50,6 +54,7 @@ import io.element.android.libraries.designsystem.theme.components.IconSource
5054
import io.element.android.libraries.designsystem.theme.components.Scaffold
5155
import io.element.android.libraries.designsystem.theme.components.Text
5256
import io.element.android.libraries.designsystem.theme.components.TextButton
57+
import io.element.android.libraries.designsystem.theme.components.TopAppBar
5358
import io.element.android.libraries.matrix.api.room.join.JoinRule
5459
import io.element.android.libraries.matrix.ui.model.getAvatarData
5560
import io.element.android.libraries.ui.strings.CommonPlurals
@@ -76,7 +81,10 @@ fun LeaveSpaceView(
7681
.fillMaxSize()
7782
.padding(16.dp)
7883
) {
79-
LeaveSpaceHeader(state)
84+
LeaveSpaceHeader(
85+
state = state,
86+
onBackClick = onCancel,
87+
)
8088
LazyColumn(
8189
modifier = Modifier
8290
.weight(1f),
@@ -88,6 +96,7 @@ fun LeaveSpaceView(
8896
item {
8997
SpaceItem(
9098
selectableSpaceRoom = selectableSpaceRoom,
99+
showCheckBox = state.hasOnlyLastAdminRoom.not(),
91100
onClick = {
92101
state.eventSink(LeaveSpaceEvents.ToggleRoomSelection(selectableSpaceRoom.spaceRoom.roomId))
93102
}
@@ -126,10 +135,19 @@ fun LeaveSpaceView(
126135
}
127136

128137
@Composable
129-
private fun LeaveSpaceHeader(state: LeaveSpaceState) {
138+
private fun LeaveSpaceHeader(
139+
state: LeaveSpaceState,
140+
onBackClick: () -> Unit,
141+
) {
130142
Column {
143+
TopAppBar(
144+
navigationIcon = {
145+
BackButton(onClick = onBackClick)
146+
},
147+
title = {},
148+
)
131149
IconTitleSubtitleMolecule(
132-
modifier = Modifier.padding(top = 24.dp, bottom = 8.dp, start = 24.dp, end = 24.dp),
150+
modifier = Modifier.padding(top = 0.dp, bottom = 8.dp, start = 24.dp, end = 24.dp),
133151
iconStyle = BigIcon.Style.AlertSolid,
134152
title = stringResource(
135153
R.string.screen_leave_space_title,
@@ -212,6 +230,7 @@ private fun LeaveSpaceButtons(
212230
@Composable
213231
private fun SpaceItem(
214232
selectableSpaceRoom: SelectableSpaceRoom,
233+
showCheckBox: Boolean,
215234
onClick: () -> Unit,
216235
) {
217236
val room = selectableSpaceRoom.spaceRoom
@@ -305,11 +324,13 @@ private fun SpaceItem(
305324
)
306325
}
307326
}
308-
Checkbox(
309-
checked = selectableSpaceRoom.isSelected,
310-
onCheckedChange = null,
311-
enabled = selectableSpaceRoom.isLastAdmin.not(),
312-
)
327+
if (showCheckBox) {
328+
Checkbox(
329+
checked = selectableSpaceRoom.isSelected,
330+
onCheckedChange = null,
331+
enabled = selectableSpaceRoom.isLastAdmin.not(),
332+
)
333+
}
313334
}
314335
}
315336

0 commit comments

Comments
 (0)