Adding callbacks on the SelectUsersView

This commit is contained in:
Maxime NATUREL 2023-03-15 15:21:00 +01:00 committed by Florian Renaud
parent f536c6308d
commit d0158c06dc
2 changed files with 15 additions and 6 deletions

View file

@ -71,6 +71,7 @@ fun CreateRoomRootView(
SelectUsersView(
modifier = Modifier.fillMaxWidth(),
state = state.selectUsersState,
onUserSelected = { state.eventSink.invoke(CreateRoomRootEvents.StartDM(it)) },
)
if (!state.selectUsersState.isSearchActive) {

View file

@ -65,6 +65,8 @@ import io.element.android.libraries.ui.strings.R as StringR
fun SelectUsersView(
state: SelectUsersState,
modifier: Modifier = Modifier,
onUserSelected: (MatrixUser) -> Unit = {},
onUserDeselected: (MatrixUser) -> Unit = {},
) {
val eventSink = state.eventSink
@ -80,8 +82,14 @@ fun SelectUsersView(
isMultiSelectionEnabled = state.isMultiSelectionEnabled,
onActiveChanged = { eventSink.invoke(SelectUsersEvents.OnSearchActiveChanged(it)) },
onTextChanged = { state.eventSink(SelectUsersEvents.UpdateSearchQuery(it)) },
onResultSelected = { state.eventSink(SelectUsersEvents.AddToSelection(it)) },
onUserRemoved = { eventSink(SelectUsersEvents.RemoveFromSelection(it)) },
onUserSelected = {
state.eventSink(SelectUsersEvents.AddToSelection(it))
onUserSelected(it)
},
onUserDeselected = {
eventSink(SelectUsersEvents.RemoveFromSelection(it))
onUserDeselected(it)
},
)
}
}
@ -98,8 +106,8 @@ fun SearchUserBar(
placeHolderTitle: String = stringResource(StringR.string.search_for_someone),
onActiveChanged: (Boolean) -> Unit = {},
onTextChanged: (String) -> Unit = {},
onResultSelected: (MatrixUser) -> Unit = {},
onUserRemoved: (MatrixUser) -> Unit = {},
onUserSelected: (MatrixUser) -> Unit = {},
onUserDeselected: (MatrixUser) -> Unit = {},
) {
val focusManager = LocalFocusManager.current
@ -152,7 +160,7 @@ fun SearchUserBar(
SelectedUsersList(
modifier = Modifier.padding(16.dp),
selectedUsers = selectedUsers,
onUserRemoved = onUserRemoved,
onUserRemoved = onUserDeselected,
)
}
@ -160,7 +168,7 @@ fun SearchUserBar(
items(results) {
SearchUserResultItem(
matrixUser = it,
onClick = { onResultSelected(it) }
onClick = { onUserSelected(it) }
)
}
}