Merge pull request #1862 from vector-im/feature/bma/moreTests
Remove lambda default value
This commit is contained in:
commit
05ba424e75
49 changed files with 436 additions and 230 deletions
|
|
@ -32,8 +32,8 @@ import io.element.android.features.createroom.impl.components.UserListView
|
|||
import io.element.android.features.createroom.impl.userlist.UserListEvents
|
||||
import io.element.android.features.createroom.impl.userlist.UserListState
|
||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.aliasScreenTitle
|
||||
import io.element.android.libraries.designsystem.theme.components.Scaffold
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
|
|
@ -46,9 +46,9 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
|||
@Composable
|
||||
fun AddPeopleView(
|
||||
state: UserListState,
|
||||
onBackPressed: () -> Unit,
|
||||
onNextPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
onNextPressed: () -> Unit = {},
|
||||
) {
|
||||
Scaffold(
|
||||
modifier = modifier,
|
||||
|
|
@ -77,6 +77,8 @@ fun AddPeopleView(
|
|||
.fillMaxWidth(),
|
||||
state = state,
|
||||
showBackButton = false,
|
||||
onUserSelected = { },
|
||||
onUserDeselected = {},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -86,9 +88,9 @@ fun AddPeopleView(
|
|||
@Composable
|
||||
private fun AddPeopleViewTopBar(
|
||||
hasSelectedUsers: Boolean,
|
||||
onBackPressed: () -> Unit,
|
||||
onNextPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
onNextPressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
@ -112,5 +114,9 @@ private fun AddPeopleViewTopBar(
|
|||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun AddPeopleViewPreview(@PreviewParameter(AddPeopleUserListStateProvider::class) state: UserListState) = ElementPreview {
|
||||
AddPeopleView(state = state)
|
||||
AddPeopleView(
|
||||
state = state,
|
||||
onBackPressed = {},
|
||||
onNextPressed = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,9 +41,9 @@ import io.element.android.libraries.theme.ElementTheme
|
|||
@Composable
|
||||
fun RoomPrivacyOption(
|
||||
roomPrivacyItem: RoomPrivacyItem,
|
||||
onOptionSelected: (RoomPrivacyItem) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
isSelected: Boolean = false,
|
||||
onOptionSelected: (RoomPrivacyItem) -> Unit = {},
|
||||
) {
|
||||
Row(
|
||||
modifier
|
||||
|
|
@ -97,10 +97,12 @@ internal fun RoomPrivacyOptionPreview() = ElementPreview {
|
|||
Column {
|
||||
RoomPrivacyOption(
|
||||
roomPrivacyItem = aRoomPrivacyItem,
|
||||
onOptionSelected = {},
|
||||
isSelected = true,
|
||||
)
|
||||
RoomPrivacyOption(
|
||||
roomPrivacyItem = aRoomPrivacyItem,
|
||||
onOptionSelected = {},
|
||||
isSelected = false,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ import io.element.android.libraries.usersearch.api.UserSearchResult
|
|||
fun SearchMultipleUsersResultItem(
|
||||
searchResult: UserSearchResult,
|
||||
isUserSelected: Boolean,
|
||||
onCheckedChange: (Boolean) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onCheckedChange: (Boolean) -> Unit = {},
|
||||
) {
|
||||
if (searchResult.isUnresolved) {
|
||||
CheckableUnresolvedUserRow(
|
||||
|
|
@ -62,12 +62,40 @@ internal fun SearchMultipleUsersResultItemPreview() = ElementThemedPreview { Con
|
|||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
Column {
|
||||
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = false)
|
||||
SearchMultipleUsersResultItem(
|
||||
searchResult = UserSearchResult(
|
||||
aMatrixUser(),
|
||||
isUnresolved = false
|
||||
),
|
||||
isUserSelected = false,
|
||||
onCheckedChange = {}
|
||||
)
|
||||
HorizontalDivider()
|
||||
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = true)
|
||||
SearchMultipleUsersResultItem(
|
||||
searchResult = UserSearchResult(
|
||||
aMatrixUser(),
|
||||
isUnresolved = false
|
||||
),
|
||||
isUserSelected = true,
|
||||
onCheckedChange = {}
|
||||
)
|
||||
HorizontalDivider()
|
||||
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = false)
|
||||
SearchMultipleUsersResultItem(
|
||||
searchResult = UserSearchResult(
|
||||
aMatrixUser(),
|
||||
isUnresolved = true
|
||||
),
|
||||
isUserSelected = false,
|
||||
onCheckedChange = {}
|
||||
)
|
||||
HorizontalDivider()
|
||||
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = true)
|
||||
SearchMultipleUsersResultItem(
|
||||
searchResult = UserSearchResult(
|
||||
aMatrixUser(),
|
||||
isUnresolved = true
|
||||
),
|
||||
isUserSelected = true,
|
||||
onCheckedChange = {}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ import io.element.android.libraries.usersearch.api.UserSearchResult
|
|||
@Composable
|
||||
fun SearchSingleUserResultItem(
|
||||
searchResult: UserSearchResult,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClick: () -> Unit = {},
|
||||
) {
|
||||
if (searchResult.isUnresolved) {
|
||||
UnresolvedUserRow(
|
||||
|
|
@ -58,8 +58,14 @@ internal fun SearchSingleUserResultItemPreview() = ElementThemedPreview { Conten
|
|||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
Column {
|
||||
SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false))
|
||||
SearchSingleUserResultItem(
|
||||
searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false),
|
||||
onClick = {},
|
||||
)
|
||||
HorizontalDivider()
|
||||
SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true))
|
||||
SearchSingleUserResultItem(
|
||||
searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true),
|
||||
onClick = {},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,13 +52,13 @@ fun SearchUserBar(
|
|||
selectedUsers: ImmutableList<MatrixUser>,
|
||||
active: Boolean,
|
||||
isMultiSelectionEnabled: Boolean,
|
||||
onActiveChanged: (Boolean) -> Unit,
|
||||
onTextChanged: (String) -> Unit,
|
||||
onUserSelected: (MatrixUser) -> Unit,
|
||||
onUserDeselected: (MatrixUser) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
showBackButton: Boolean = true,
|
||||
placeHolderTitle: String = stringResource(CommonStrings.common_search_for_someone),
|
||||
onActiveChanged: (Boolean) -> Unit = {},
|
||||
onTextChanged: (String) -> Unit = {},
|
||||
onUserSelected: (MatrixUser) -> Unit = {},
|
||||
onUserDeselected: (MatrixUser) -> Unit = {},
|
||||
) {
|
||||
val columnState = rememberLazyListState()
|
||||
|
||||
|
|
|
|||
|
|
@ -26,18 +26,18 @@ import androidx.compose.ui.unit.dp
|
|||
import io.element.android.features.createroom.impl.userlist.UserListEvents
|
||||
import io.element.android.features.createroom.impl.userlist.UserListState
|
||||
import io.element.android.features.createroom.impl.userlist.UserListStateProvider
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.matrix.ui.components.SelectedUsersList
|
||||
|
||||
@Composable
|
||||
fun UserListView(
|
||||
state: UserListState,
|
||||
onUserSelected: (MatrixUser) -> Unit,
|
||||
onUserDeselected: (MatrixUser) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
showBackButton: Boolean = true,
|
||||
onUserSelected: (MatrixUser) -> Unit = {},
|
||||
onUserDeselected: (MatrixUser) -> Unit = {},
|
||||
) {
|
||||
Column(
|
||||
modifier = modifier,
|
||||
|
|
@ -79,5 +79,9 @@ fun UserListView(
|
|||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun UserListViewPreview(@PreviewParameter(UserListStateProvider::class) state: UserListState) = ElementPreview {
|
||||
UserListView(state = state)
|
||||
UserListView(
|
||||
state = state,
|
||||
onUserSelected = {},
|
||||
onUserDeselected = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,9 +167,9 @@ fun ConfigureRoomView(
|
|||
@Composable
|
||||
private fun ConfigureRoomToolbar(
|
||||
isNextActionEnabled: Boolean,
|
||||
onBackPressed: () -> Unit,
|
||||
onNextPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
onNextPressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
@ -194,9 +194,9 @@ private fun ConfigureRoomToolbar(
|
|||
private fun RoomNameWithAvatar(
|
||||
avatarUri: Uri?,
|
||||
roomName: String,
|
||||
onAvatarClick: () -> Unit,
|
||||
onRoomNameChanged: (String) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onAvatarClick: () -> Unit = {},
|
||||
onRoomNameChanged: (String) -> Unit = {},
|
||||
) {
|
||||
Row(
|
||||
modifier = modifier,
|
||||
|
|
@ -221,8 +221,8 @@ private fun RoomNameWithAvatar(
|
|||
@Composable
|
||||
private fun RoomTopic(
|
||||
topic: String,
|
||||
onTopicChanged: (String) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTopicChanged: (String) -> Unit = {},
|
||||
) {
|
||||
LabelledTextField(
|
||||
modifier = modifier,
|
||||
|
|
@ -240,8 +240,8 @@ private fun RoomTopic(
|
|||
@Composable
|
||||
private fun RoomPrivacyOptions(
|
||||
selected: RoomPrivacy?,
|
||||
onOptionSelected: (RoomPrivacyItem) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onOptionSelected: (RoomPrivacyItem) -> Unit = {},
|
||||
) {
|
||||
val items = roomPrivacyItems()
|
||||
Column(modifier = modifier.selectableGroup()) {
|
||||
|
|
|
|||
|
|
@ -55,11 +55,11 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
|||
@Composable
|
||||
fun CreateRoomRootView(
|
||||
state: CreateRoomRootState,
|
||||
onClosePressed: () -> Unit,
|
||||
onNewRoomClicked: () -> Unit,
|
||||
onOpenDM: (RoomId) -> Unit,
|
||||
onInviteFriendsClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClosePressed: () -> Unit = {},
|
||||
onNewRoomClicked: () -> Unit = {},
|
||||
onOpenDM: (RoomId) -> Unit = {},
|
||||
onInviteFriendsClicked: () -> Unit = {},
|
||||
) {
|
||||
Scaffold(
|
||||
modifier = modifier.fillMaxWidth(),
|
||||
|
|
@ -81,6 +81,7 @@ fun CreateRoomRootView(
|
|||
onUserSelected = {
|
||||
state.eventSink(CreateRoomRootEvents.StartDM(it))
|
||||
},
|
||||
onUserDeselected = { },
|
||||
)
|
||||
|
||||
if (!state.userListState.isSearchActive) {
|
||||
|
|
@ -111,8 +112,8 @@ fun CreateRoomRootView(
|
|||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
private fun CreateRoomRootViewTopBar(
|
||||
onClosePressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClosePressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
@ -134,9 +135,9 @@ private fun CreateRoomRootViewTopBar(
|
|||
@Composable
|
||||
private fun CreateRoomActionButtonsList(
|
||||
state: CreateRoomRootState,
|
||||
onNewRoomClicked: () -> Unit,
|
||||
onInvitePeopleClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onNewRoomClicked: () -> Unit = {},
|
||||
onInvitePeopleClicked: () -> Unit = {},
|
||||
) {
|
||||
Column(modifier = modifier) {
|
||||
CreateRoomActionButton(
|
||||
|
|
@ -156,8 +157,8 @@ private fun CreateRoomActionButtonsList(
|
|||
private fun CreateRoomActionButton(
|
||||
@DrawableRes iconRes: Int,
|
||||
text: String,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClick: () -> Unit = {},
|
||||
) {
|
||||
Row(
|
||||
modifier = modifier
|
||||
|
|
@ -187,5 +188,9 @@ internal fun CreateRoomRootViewPreview(@PreviewParameter(CreateRoomRootStateProv
|
|||
ElementPreview {
|
||||
CreateRoomRootView(
|
||||
state = state,
|
||||
onClosePressed = {},
|
||||
onNewRoomClicked = {},
|
||||
onOpenDM = {},
|
||||
onInviteFriendsClicked = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
|||
@Composable
|
||||
fun InviteListView(
|
||||
state: InviteListState,
|
||||
onBackClicked: () -> Unit,
|
||||
onInviteAccepted: (RoomId) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackClicked: () -> Unit = {},
|
||||
onInviteAccepted: (RoomId) -> Unit = {},
|
||||
) {
|
||||
if (state.acceptedAction is Async.Success) {
|
||||
LaunchedEffect(state.acceptedAction) {
|
||||
|
|
@ -113,8 +113,8 @@ fun InviteListView(
|
|||
@Composable
|
||||
private fun InviteListContent(
|
||||
state: InviteListState,
|
||||
onBackClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackClicked: () -> Unit = {},
|
||||
) {
|
||||
Scaffold(
|
||||
modifier = modifier,
|
||||
|
|
@ -173,5 +173,9 @@ private fun InviteListContent(
|
|||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun InviteListViewPreview(@PreviewParameter(InviteListStateProvider::class) state: InviteListState) = ElementPreview {
|
||||
InviteListView(state)
|
||||
InviteListView(
|
||||
state = state,
|
||||
onBackClicked = {},
|
||||
onInviteAccepted = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ import io.element.android.features.invitelist.impl.model.InviteListInviteSummary
|
|||
import io.element.android.features.invitelist.impl.model.InviteSender
|
||||
import io.element.android.libraries.designsystem.atomic.atoms.UnreadIndicatorAtom
|
||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.Button
|
||||
import io.element.android.libraries.designsystem.theme.components.ButtonSize
|
||||
import io.element.android.libraries.designsystem.theme.components.OutlinedButton
|
||||
|
|
@ -59,9 +59,9 @@ private val minHeight = 72.dp
|
|||
@Composable
|
||||
internal fun InviteSummaryRow(
|
||||
invite: InviteListInviteSummary,
|
||||
onAcceptClicked: () -> Unit,
|
||||
onDeclineClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onAcceptClicked: () -> Unit = {},
|
||||
onDeclineClicked: () -> Unit = {},
|
||||
) {
|
||||
Box(
|
||||
modifier = modifier
|
||||
|
|
@ -79,8 +79,8 @@ internal fun InviteSummaryRow(
|
|||
@Composable
|
||||
private fun DefaultInviteSummaryRow(
|
||||
invite: InviteListInviteSummary,
|
||||
onAcceptClicked: () -> Unit = {},
|
||||
onDeclineClicked: () -> Unit = {},
|
||||
onAcceptClicked: () -> Unit,
|
||||
onDeclineClicked: () -> Unit,
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier
|
||||
|
|
@ -187,5 +187,9 @@ private fun SenderRow(sender: InviteSender) {
|
|||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun InviteSummaryRowPreview(@PreviewParameter(InviteListInviteSummaryProvider::class) data: InviteListInviteSummary) = ElementPreview {
|
||||
InviteSummaryRow(data)
|
||||
InviteSummaryRow(
|
||||
invite = data,
|
||||
onAcceptClicked = {},
|
||||
onDeclineClicked = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,8 +68,8 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
|||
@Composable
|
||||
fun SendLocationView(
|
||||
state: SendLocationState,
|
||||
navigateUp: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
navigateUp: () -> Unit = {},
|
||||
) {
|
||||
LaunchedEffect(Unit) {
|
||||
state.eventSink(SendLocationEvents.RequestPermissions)
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ import kotlinx.collections.immutable.toImmutableMap
|
|||
@Composable
|
||||
fun ShowLocationView(
|
||||
state: ShowLocationState,
|
||||
onBackPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
) {
|
||||
when (state.permissionDialog) {
|
||||
ShowLocationState.Dialog.None -> Unit
|
||||
|
|
|
|||
|
|
@ -450,10 +450,10 @@ private fun MessagesViewTopBar(
|
|||
roomAvatar: AvatarData?,
|
||||
inRoomCallsEnabled: Boolean,
|
||||
isCallOngoing: Boolean,
|
||||
onRoomDetailsClicked: () -> Unit,
|
||||
onJoinCallClicked: () -> Unit,
|
||||
onBackPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onRoomDetailsClicked: () -> Unit = {},
|
||||
onJoinCallClicked: () -> Unit = {},
|
||||
onBackPressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ private const val BUBBLE_WIDTH_RATIO = 0.85f
|
|||
fun MessageEventBubble(
|
||||
state: BubbleState,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onClick: () -> Unit,
|
||||
onLongClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = {},
|
||||
content: @Composable () -> Unit = {},
|
||||
) {
|
||||
fun bubbleShape(): Shape {
|
||||
|
|
@ -144,6 +144,8 @@ internal fun MessageEventBubblePreview(@PreviewParameter(BubbleStateProvider::cl
|
|||
MessageEventBubble(
|
||||
state = state,
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
onClick = {},
|
||||
onLongClick = {},
|
||||
) {
|
||||
// Render the state as a text to better understand the previews
|
||||
Box(
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.Surface
|
||||
|
||||
private val CORNER_RADIUS = 8.dp
|
||||
|
|
@ -42,9 +42,9 @@ private val CORNER_RADIUS = 8.dp
|
|||
fun MessageStateEventContainer(
|
||||
@Suppress("UNUSED_PARAMETER") isHighlighted: Boolean,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onClick: () -> Unit,
|
||||
onLongClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = {},
|
||||
content: @Composable () -> Unit = {},
|
||||
) {
|
||||
// Ignore isHighlighted for now, we need a design decision on it.
|
||||
|
|
@ -73,12 +73,16 @@ internal fun MessageStateEventContainerPreview() = ElementPreview {
|
|||
MessageStateEventContainer(
|
||||
isHighlighted = false,
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
onClick = {},
|
||||
onLongClick = {},
|
||||
) {
|
||||
Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp))
|
||||
}
|
||||
MessageStateEventContainer(
|
||||
isHighlighted = true,
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
onClick = {},
|
||||
onLongClick = {},
|
||||
) {
|
||||
Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,9 +39,9 @@ fun TimelineItemTextView(
|
|||
content: TimelineItemTextBasedContent,
|
||||
interactionSource: MutableInteractionSource,
|
||||
extraPadding: ExtraPadding,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
CompositionLocalProvider(LocalContentColor provides ElementTheme.colors.textPrimary) {
|
||||
val htmlDocument = content.htmlDocument
|
||||
|
|
@ -79,5 +79,7 @@ internal fun TimelineItemTextViewPreview(
|
|||
content = content,
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
extraPadding = ExtraPadding(nbChars = 8),
|
||||
onTextClicked = {},
|
||||
onTextLongClicked = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ import io.element.android.features.messages.impl.timeline.components.event.Extra
|
|||
import io.element.android.features.messages.impl.timeline.components.event.getDpSize
|
||||
import io.element.android.features.messages.impl.timeline.components.event.noExtraPadding
|
||||
import io.element.android.libraries.designsystem.components.ClickableLinkText
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.text.toDp
|
||||
import io.element.android.libraries.designsystem.theme.components.Surface
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
|
|
@ -80,9 +80,9 @@ fun HtmlDocument(
|
|||
document: Document,
|
||||
extraPadding: ExtraPadding,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
FlowRow(
|
||||
modifier = modifier,
|
||||
|
|
@ -106,16 +106,16 @@ fun HtmlDocument(
|
|||
private fun HtmlBody(
|
||||
body: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
@Composable
|
||||
fun NodesFlowRode(
|
||||
nodes: Iterator<Node>,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
) = FlowRow(
|
||||
horizontalArrangement = Arrangement.spacedBy(2.dp, Alignment.Start),
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp, Alignment.Top),
|
||||
|
|
@ -181,9 +181,9 @@ private fun Element.isInline(): Boolean {
|
|||
private fun HtmlBlock(
|
||||
element: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
val blockModifier = modifier
|
||||
.padding(top = 4.dp)
|
||||
|
|
@ -239,9 +239,9 @@ private fun HtmlBlock(
|
|||
private fun HtmlInline(
|
||||
element: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
Box(modifier) {
|
||||
val styledText = buildAnnotatedString {
|
||||
|
|
@ -281,9 +281,9 @@ private fun HtmlPreformatted(
|
|||
private fun HtmlParagraph(
|
||||
paragraph: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
Box(modifier) {
|
||||
val styledText = buildAnnotatedString {
|
||||
|
|
@ -300,9 +300,9 @@ private fun HtmlParagraph(
|
|||
private fun HtmlBlockquote(
|
||||
blockquote: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
val color = MaterialTheme.colorScheme.onBackground
|
||||
Box(
|
||||
|
|
@ -333,9 +333,9 @@ private fun HtmlBlockquote(
|
|||
private fun HtmlHeading(
|
||||
heading: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
val style = when (heading.tagName().lowercase()) {
|
||||
"h1" -> MaterialTheme.typography.headlineLarge.copy(fontSize = 30.sp)
|
||||
|
|
@ -366,9 +366,9 @@ private fun HtmlHeading(
|
|||
private fun HtmlMxReply(
|
||||
mxReply: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
val blockquote = mxReply.childNodes().firstOrNull() ?: return
|
||||
val shape = RoundedCornerShape(12.dp)
|
||||
|
|
@ -419,16 +419,17 @@ private fun HtmlMxReply(
|
|||
private fun HtmlOrderedList(
|
||||
orderedList: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
val delimiter = "."
|
||||
HtmlListItems(
|
||||
list = orderedList,
|
||||
marker = { index -> "$index$delimiter" },
|
||||
modifier = modifier,
|
||||
onTextClicked = onTextClicked, onTextLongClicked = onTextLongClicked,
|
||||
onTextClicked = onTextClicked,
|
||||
onTextLongClicked = onTextLongClicked,
|
||||
interactionSource = interactionSource
|
||||
)
|
||||
}
|
||||
|
|
@ -437,16 +438,17 @@ private fun HtmlOrderedList(
|
|||
private fun HtmlUnorderedList(
|
||||
unorderedList: Element,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
val marker = "・"
|
||||
HtmlListItems(
|
||||
list = unorderedList,
|
||||
marker = { marker },
|
||||
modifier = modifier,
|
||||
onTextClicked = onTextClicked, onTextLongClicked = onTextLongClicked,
|
||||
onTextClicked = onTextClicked,
|
||||
onTextLongClicked = onTextLongClicked,
|
||||
interactionSource = interactionSource
|
||||
)
|
||||
}
|
||||
|
|
@ -456,9 +458,9 @@ private fun HtmlListItems(
|
|||
list: Element,
|
||||
marker: (Int) -> String,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onTextClicked: () -> Unit,
|
||||
onTextLongClicked: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onTextClicked: () -> Unit = {},
|
||||
onTextLongClicked: () -> Unit = {},
|
||||
) {
|
||||
Column(modifier = modifier) {
|
||||
for ((index, node) in list.children().withIndex()) {
|
||||
|
|
@ -468,7 +470,12 @@ private fun HtmlListItems(
|
|||
append("${marker(index + 1)} ")
|
||||
appendInlineChildrenElements(node.childNodes(), MaterialTheme.colorScheme)
|
||||
}
|
||||
HtmlText(text = text, interactionSource = remember { MutableInteractionSource() })
|
||||
HtmlText(
|
||||
text = text,
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
onClick = onTextClicked,
|
||||
onLongClick = onTextLongClicked,
|
||||
)
|
||||
} else {
|
||||
for (innerNode in node.childNodes()) {
|
||||
when (innerNode) {
|
||||
|
|
@ -478,15 +485,18 @@ private fun HtmlListItems(
|
|||
append("${marker(index + 1)} ")
|
||||
}
|
||||
HtmlText(
|
||||
text = text, onClick = onTextClicked,
|
||||
onLongClick = onTextLongClicked, interactionSource = interactionSource
|
||||
text = text,
|
||||
onClick = onTextClicked,
|
||||
onLongClick = onTextLongClicked,
|
||||
interactionSource = interactionSource
|
||||
)
|
||||
}
|
||||
}
|
||||
is Element -> HtmlBlock(
|
||||
element = innerNode,
|
||||
modifier = Modifier.padding(start = 4.dp),
|
||||
onTextClicked = onTextClicked, onTextLongClicked = onTextLongClicked,
|
||||
onTextClicked = onTextClicked,
|
||||
onTextLongClicked = onTextLongClicked,
|
||||
interactionSource = interactionSource
|
||||
)
|
||||
}
|
||||
|
|
@ -595,10 +605,10 @@ fun AnnotatedString.Builder.safeAppendInlineContent(chipId: String, ownText: Str
|
|||
private fun HtmlText(
|
||||
text: AnnotatedString,
|
||||
interactionSource: MutableInteractionSource,
|
||||
onClick: () -> Unit,
|
||||
onLongClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
style: TextStyle = LocalTextStyle.current,
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = {},
|
||||
) {
|
||||
val inlineContentMap = persistentMapOf<String, InlineTextContent>()
|
||||
ClickableLinkText(
|
||||
|
|
@ -618,6 +628,8 @@ internal fun HtmlDocumentPreview(@PreviewParameter(DocumentProvider::class) docu
|
|||
HtmlDocument(
|
||||
document = document,
|
||||
extraPadding = noExtraPadding,
|
||||
interactionSource = remember { MutableInteractionSource() }
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
onTextClicked = {},
|
||||
onTextLongClicked = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ import io.element.android.libraries.theme.ElementTheme
|
|||
@Composable
|
||||
fun DefaultNotificationSettingOption(
|
||||
mode: RoomNotificationMode,
|
||||
onOptionSelected: (RoomNotificationMode) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
isSelected: Boolean = false,
|
||||
onOptionSelected: (RoomNotificationMode) -> Unit = {},
|
||||
) {
|
||||
val subtitle = when(mode) {
|
||||
RoomNotificationMode.ALL_MESSAGES -> stringResource(id = R.string.screen_notification_settings_edit_mode_all_messages)
|
||||
|
|
@ -86,10 +86,12 @@ internal fun DefaultNotificationSettingOptionPreview() = ElementPreview {
|
|||
DefaultNotificationSettingOption(
|
||||
mode = RoomNotificationMode.ALL_MESSAGES,
|
||||
isSelected = true,
|
||||
onOptionSelected = {},
|
||||
)
|
||||
DefaultNotificationSettingOption(
|
||||
mode = RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY,
|
||||
isSelected = false,
|
||||
onOptionSelected = {},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ fun RageshakeDetectionView(
|
|||
|
||||
@Composable
|
||||
private fun TakeScreenshot(
|
||||
onScreenshotTaken: (ImageResult) -> Unit = {}
|
||||
onScreenshotTaken: (ImageResult) -> Unit
|
||||
) {
|
||||
val view = LocalView.current
|
||||
LaunchedEffect(Unit) {
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ import androidx.compose.ui.unit.dp
|
|||
import io.element.android.features.roomdetails.impl.R
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.aliasScreenTitle
|
||||
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
||||
import io.element.android.libraries.designsystem.theme.components.Scaffold
|
||||
|
|
@ -58,9 +58,9 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
@Composable
|
||||
fun RoomInviteMembersView(
|
||||
state: RoomInviteMembersState,
|
||||
onBackPressed: () -> Unit,
|
||||
onSendPressed: (List<MatrixUser>) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
onSendPressed: (List<MatrixUser>) -> Unit = {},
|
||||
) {
|
||||
Scaffold(
|
||||
modifier = modifier,
|
||||
|
|
@ -113,9 +113,9 @@ fun RoomInviteMembersView(
|
|||
@Composable
|
||||
private fun RoomInviteMembersTopBar(
|
||||
canSend: Boolean,
|
||||
onBackPressed: () -> Unit,
|
||||
onSendPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
onSendPressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
@ -143,11 +143,11 @@ private fun RoomInviteMembersSearchBar(
|
|||
state: SearchBarResultState<ImmutableList<InvitableUser>>,
|
||||
selectedUsers: ImmutableList<MatrixUser>,
|
||||
active: Boolean,
|
||||
onActiveChanged: (Boolean) -> Unit,
|
||||
onTextChanged: (String) -> Unit,
|
||||
onUserToggled: (MatrixUser) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
placeHolderTitle: String = stringResource(CommonStrings.common_search_for_someone),
|
||||
onActiveChanged: (Boolean) -> Unit = {},
|
||||
onTextChanged: (String) -> Unit = {},
|
||||
onUserToggled: (MatrixUser) -> Unit = {},
|
||||
) {
|
||||
SearchBar(
|
||||
query = query,
|
||||
|
|
@ -219,5 +219,9 @@ private fun RoomInviteMembersSearchBar(
|
|||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun RoomInviteMembersPreview(@PreviewParameter(RoomInviteMembersStateProvider::class) state: RoomInviteMembersState) = ElementPreview {
|
||||
RoomInviteMembersView(state)
|
||||
RoomInviteMembersView(
|
||||
state = state,
|
||||
onBackPressed = {},
|
||||
onSendPressed = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -177,8 +177,8 @@ private fun LazyListScope.roomMemberListSection(
|
|||
@Composable
|
||||
private fun RoomMemberListItem(
|
||||
roomMember: RoomMember,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClick: () -> Unit = {},
|
||||
) {
|
||||
MatrixUserRow(
|
||||
modifier = modifier.clickable(onClick = onClick),
|
||||
|
|
@ -195,9 +195,9 @@ private fun RoomMemberListItem(
|
|||
@Composable
|
||||
private fun RoomMemberListTopBar(
|
||||
canInvite: Boolean,
|
||||
onBackPressed: () -> Unit,
|
||||
onInvitePressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
onInvitePressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
|
|||
|
|
@ -37,10 +37,10 @@ import io.element.android.libraries.theme.ElementTheme
|
|||
@Composable
|
||||
fun RoomNotificationSettingsOption(
|
||||
roomNotificationSettingsItem: RoomNotificationSettingsItem,
|
||||
onOptionSelected: (RoomNotificationSettingsItem) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
enabled: Boolean = true,
|
||||
isSelected: Boolean = false,
|
||||
onOptionSelected: (RoomNotificationSettingsItem) -> Unit = {},
|
||||
) {
|
||||
Row(
|
||||
modifier
|
||||
|
|
@ -83,10 +83,12 @@ internal fun RoomPrivacyOptionPreview() = ElementPreview {
|
|||
Column {
|
||||
RoomNotificationSettingsOption(
|
||||
roomNotificationSettingsItem = roomNotificationSettingsItems().first(),
|
||||
onOptionSelected = {},
|
||||
isSelected = true,
|
||||
)
|
||||
RoomNotificationSettingsOption(
|
||||
roomNotificationSettingsItem = roomNotificationSettingsItems().last(),
|
||||
onOptionSelected = {},
|
||||
isSelected = false,
|
||||
enabled = false,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
|||
fun RoomNotificationSettingsOptions(
|
||||
selected: RoomNotificationMode?,
|
||||
enabled: Boolean,
|
||||
onOptionSelected: (RoomNotificationSettingsItem) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onOptionSelected: (RoomNotificationSettingsItem) -> Unit = {},
|
||||
) {
|
||||
val items = roomNotificationSettingsItems()
|
||||
Column(modifier = modifier.selectableGroup()) {
|
||||
|
|
|
|||
|
|
@ -51,9 +51,9 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
|||
@Composable
|
||||
fun RoomNotificationSettingsView(
|
||||
state: RoomNotificationSettingsState,
|
||||
onShowGlobalNotifications: () -> Unit,
|
||||
onBackPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onShowGlobalNotifications: () -> Unit = {},
|
||||
onBackPressed: () -> Unit = {},
|
||||
) {
|
||||
if (state.showUserDefinedSettingStyle) {
|
||||
UserDefinedRoomNotificationSettingsView(
|
||||
|
|
@ -74,9 +74,9 @@ fun RoomNotificationSettingsView(
|
|||
@Composable
|
||||
private fun RoomSpecificNotificationSettingsView(
|
||||
state: RoomNotificationSettingsState,
|
||||
onShowGlobalNotifications: () -> Unit,
|
||||
onBackPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onShowGlobalNotifications: () -> Unit = {},
|
||||
onBackPressed: () -> Unit = {},
|
||||
) {
|
||||
Scaffold(
|
||||
modifier = modifier,
|
||||
|
|
@ -173,8 +173,8 @@ private fun RoomSpecificNotificationSettingsView(
|
|||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
private fun RoomNotificationSettingsTopBar(
|
||||
onBackPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
@ -193,5 +193,9 @@ private fun RoomNotificationSettingsTopBar(
|
|||
internal fun RoomNotificationSettingsPreview(
|
||||
@PreviewParameter(RoomNotificationSettingsStateProvider::class) state: RoomNotificationSettingsState
|
||||
) = ElementPreview {
|
||||
RoomNotificationSettingsView(state)
|
||||
RoomNotificationSettingsView(
|
||||
state = state,
|
||||
onShowGlobalNotifications = {},
|
||||
onBackPressed = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
|||
@Composable
|
||||
fun UserDefinedRoomNotificationSettingsView(
|
||||
state: RoomNotificationSettingsState,
|
||||
onBackPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
) {
|
||||
Scaffold(
|
||||
modifier = modifier,
|
||||
|
|
@ -101,8 +101,8 @@ fun UserDefinedRoomNotificationSettingsView(
|
|||
@Composable
|
||||
private fun UserDefinedRoomNotificationSettingsTopBar(
|
||||
roomName: String,
|
||||
onBackPressed: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onBackPressed: () -> Unit = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
modifier = modifier,
|
||||
|
|
@ -120,5 +120,8 @@ private fun UserDefinedRoomNotificationSettingsTopBar(
|
|||
internal fun UserDefinedRoomNotificationSettingsPreview(
|
||||
@PreviewParameter(UserDefinedRoomNotificationSettingsStateProvider::class) state: RoomNotificationSettingsState
|
||||
) = ElementPreview {
|
||||
UserDefinedRoomNotificationSettingsView(state)
|
||||
UserDefinedRoomNotificationSettingsView(
|
||||
state = state,
|
||||
onBackPressed = {},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue