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 79bd3da083
commit 25a1c2936d
2 changed files with 15 additions and 6 deletions

View file

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

View file

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