5
5
* Please see LICENSE files in the repository root for full details.
6
6
*/
7
7
8
+ @file:OptIn(ExperimentalMaterial3Api ::class )
9
+
8
10
package io.element.android.features.space.impl.leave
9
11
10
12
import androidx.compose.foundation.clickable
@@ -19,6 +21,7 @@ import androidx.compose.foundation.layout.padding
19
21
import androidx.compose.foundation.layout.size
20
22
import androidx.compose.foundation.lazy.LazyColumn
21
23
import androidx.compose.foundation.selection.toggleable
24
+ import androidx.compose.material3.ExperimentalMaterial3Api
22
25
import androidx.compose.runtime.Composable
23
26
import androidx.compose.ui.Alignment
24
27
import androidx.compose.ui.Modifier
@@ -41,6 +44,7 @@ import io.element.android.libraries.designsystem.components.async.AsyncLoading
41
44
import io.element.android.libraries.designsystem.components.avatar.Avatar
42
45
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
43
46
import io.element.android.libraries.designsystem.components.avatar.AvatarType
47
+ import io.element.android.libraries.designsystem.components.button.BackButton
44
48
import io.element.android.libraries.designsystem.preview.ElementPreview
45
49
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
46
50
import io.element.android.libraries.designsystem.theme.components.Button
@@ -50,6 +54,7 @@ import io.element.android.libraries.designsystem.theme.components.IconSource
50
54
import io.element.android.libraries.designsystem.theme.components.Scaffold
51
55
import io.element.android.libraries.designsystem.theme.components.Text
52
56
import io.element.android.libraries.designsystem.theme.components.TextButton
57
+ import io.element.android.libraries.designsystem.theme.components.TopAppBar
53
58
import io.element.android.libraries.matrix.api.room.join.JoinRule
54
59
import io.element.android.libraries.matrix.ui.model.getAvatarData
55
60
import io.element.android.libraries.ui.strings.CommonPlurals
@@ -76,7 +81,10 @@ fun LeaveSpaceView(
76
81
.fillMaxSize()
77
82
.padding(16 .dp)
78
83
) {
79
- LeaveSpaceHeader (state)
84
+ LeaveSpaceHeader (
85
+ state = state,
86
+ onBackClick = onCancel,
87
+ )
80
88
LazyColumn (
81
89
modifier = Modifier
82
90
.weight(1f ),
@@ -88,6 +96,7 @@ fun LeaveSpaceView(
88
96
item {
89
97
SpaceItem (
90
98
selectableSpaceRoom = selectableSpaceRoom,
99
+ showCheckBox = state.hasOnlyLastAdminRoom.not (),
91
100
onClick = {
92
101
state.eventSink(LeaveSpaceEvents .ToggleRoomSelection (selectableSpaceRoom.spaceRoom.roomId))
93
102
}
@@ -126,10 +135,19 @@ fun LeaveSpaceView(
126
135
}
127
136
128
137
@Composable
129
- private fun LeaveSpaceHeader (state : LeaveSpaceState ) {
138
+ private fun LeaveSpaceHeader (
139
+ state : LeaveSpaceState ,
140
+ onBackClick : () -> Unit ,
141
+ ) {
130
142
Column {
143
+ TopAppBar (
144
+ navigationIcon = {
145
+ BackButton (onClick = onBackClick)
146
+ },
147
+ title = {},
148
+ )
131
149
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),
133
151
iconStyle = BigIcon .Style .AlertSolid ,
134
152
title = stringResource(
135
153
R .string.screen_leave_space_title,
@@ -212,6 +230,7 @@ private fun LeaveSpaceButtons(
212
230
@Composable
213
231
private fun SpaceItem (
214
232
selectableSpaceRoom : SelectableSpaceRoom ,
233
+ showCheckBox : Boolean ,
215
234
onClick : () -> Unit ,
216
235
) {
217
236
val room = selectableSpaceRoom.spaceRoom
@@ -305,11 +324,13 @@ private fun SpaceItem(
305
324
)
306
325
}
307
326
}
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
+ }
313
334
}
314
335
}
315
336
0 commit comments