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
@@ -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) {
@@ -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) }
) )
} }
} }