@ -28,6 +28,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
@ -53,9 +54,10 @@ import org.thoughtcrime.securesms.groups.getLabel
import org.thoughtcrime.securesms.ui.AlertDialog
import org.thoughtcrime.securesms.ui.DialogButtonModel
import org.thoughtcrime.securesms.ui.GetString
import org.thoughtcrime.securesms.ui. components.BackAppBar
import org.thoughtcrime.securesms.ui. LoadingDialog
import org.thoughtcrime.securesms.ui.components.ActionSheet
import org.thoughtcrime.securesms.ui.components.ActionSheetItemData
import org.thoughtcrime.securesms.ui.components.BackAppBar
import org.thoughtcrime.securesms.ui.components.PrimaryOutlineButton
import org.thoughtcrime.securesms.ui.components.SessionOutlinedTextField
import org.thoughtcrime.securesms.ui.components.annotatedStringResource
@ -99,6 +101,7 @@ fun EditGroupScreen(
onMemberClicked = viewModel :: onMemberClicked ,
hideActionSheet = viewModel :: hideActionBottomSheet ,
clickedMember = viewModel . clickedMember . collectAsState ( ) . value ,
showLoading = viewModel . inProgress . collectAsState ( ) . value ,
)
}
@ -119,7 +122,7 @@ fun EditGroupScreen(
@Serializable
private object RouteEditGroup
@OptIn ( ExperimentalMaterial3Api :: class )
@OptIn ( ExperimentalMaterial3Api :: class , ExperimentalComposeUiApi :: class )
@Composable
fun EditGroup (
onBack : ( ) -> Unit ,
@ -141,6 +144,7 @@ fun EditGroup(
members : List < GroupMemberState > ,
showAddMembers : Boolean ,
showingError : String ? ,
showLoading : Boolean ,
onErrorDismissed : ( ) -> Unit ,
) {
val ( showingConfirmRemovingMember , setShowingConfirmRemovingMember ) = remember {
@ -157,8 +161,8 @@ fun EditGroup(
)
}
) { paddingValues ->
Box {
Column ( modifier = Modifier . padding ( paddingValues ) ) {
GroupMinimumVersionBanner ( )
// Group name title
@ -167,7 +171,8 @@ fun EditGroup(
GroupNameContainer {
IconButton (
modifier = Modifier . size ( LocalDimensions . current . spacing ) ,
onClick = onEditNameCancelClicked ) {
onClick = onEditNameCancelClicked
) {
Icon (
painter = painterResource ( R . drawable . ic _x ) ,
contentDescription = stringResource ( R . string . AccessibilityId _cancel ) ,
@ -176,7 +181,8 @@ fun EditGroup(
}
SessionOutlinedTextField (
modifier = Modifier . widthIn (
modifier = Modifier
. widthIn (
min = LocalDimensions . current . mediumSpacing ,
max = maxNameWidth
)
@ -193,7 +199,8 @@ fun EditGroup(
IconButton (
modifier = Modifier . size ( LocalDimensions . current . spacing ) ,
onClick = onEditNameConfirmed ) {
onClick = onEditNameConfirmed
) {
Icon (
painter = painterResource ( R . drawable . check ) ,
contentDescription = stringResource ( R . string . AccessibilityId _confirm ) ,
@ -210,7 +217,8 @@ fun EditGroup(
text = groupName ,
style = LocalType . current . h4 ,
textAlign = TextAlign . Center ,
modifier = Modifier . widthIn ( max = maxNameWidth )
modifier = Modifier
. widthIn ( max = maxNameWidth )
. padding ( vertical = LocalDimensions . current . smallSpacing ) ,
)
@ -270,6 +278,7 @@ fun EditGroup(
}
}
}
}
if ( clickedMember != null ) {
MemberActionSheet (
@ -305,6 +314,10 @@ fun EditGroup(
)
}
if ( showLoading ) {
LoadingDialog ( )
}
val context = LocalContext . current
LaunchedEffect ( showingError ) {
@ -515,7 +528,8 @@ private fun EditGroupPreview3() {
onErrorDismissed = { } ,
onMemberClicked = { } ,
hideActionSheet = { } ,
clickedMember = null
clickedMember = null ,
showLoading = true ,
)
}
}
@ -589,7 +603,8 @@ private fun EditGroupPreview() {
onErrorDismissed = { } ,
onMemberClicked = { } ,
hideActionSheet = { } ,
clickedMember = null
clickedMember = null ,
showLoading = false ,
)
}
}
@ -655,7 +670,8 @@ private fun EditGroupEditNamePreview() {
onErrorDismissed = { } ,
onMemberClicked = { } ,
hideActionSheet = { } ,
clickedMember = null
clickedMember = null ,
showLoading = false ,
)
}
}