André Thiele
06/04/2021, 1:12 PMFilip Wiesner
06/04/2021, 1:15 PMAndré Thiele
06/04/2021, 1:19 PMAndré Thiele
06/04/2021, 1:23 PM@Composable
fun PlacesSearch(
    currentlySearchedPlaces: List<PlaceEntity>,
    onItemBookmarkClicked: (PlaceEntity) -> Unit,
    onPlaceSearched: (PlaceEntity) -> Unit,
    onPlaceClicked: (PlaceEntity) -> Unit,
) {
    if (currentlySearchedPlaces.isNotEmpty()) {
        Log.e("Searched places", "$currentlySearchedPlaces")
        RulonaSearchList(
            places = currentlySearchedPlaces,
            onItemClick = { uuid ->
                onPlaceClicked(uuid)
                onPlaceSearched(uuid)
            },
            onItemBookmarkClicked = {
                onItemBookmarkClicked(it)
            },
        )
    }
}
@Composable
fun RulonaSearchList(
    places: List<PlaceEntity>,
    onItemClick: (PlaceEntity) -> Unit,
    onItemBookmarkClicked: (PlaceEntity) -> Unit,
) {
    Log.e("rendering places", "$places")
    LazyColumn {
        items(places) { place ->
            Log.e("item in list", "$place")
            RulonaSearchItem(
                title = place.name,
                isBookmarked = place.isBookmarked,
                onClick = { onItemClick(place) },
                onBookmarkClicked = { onItemBookmarkClicked(place) },
            )
        }
    }
}Filip Wiesner
06/04/2021, 1:27 PMcurrentlySearchedPlacescollextAsState()André Thiele
06/04/2021, 1:29 PMval placesUiState = viewModel.collectAsState(PlacesState::uiState)
PlacesSearch(
    currentlySearchedPlaces = uiState.currentlySearchedPlaces,
    onItemBookmarkClicked = { place ->
        viewModel.action(TogglePlaceBookmarkUseCase(place))
    },
    onPlaceSearched = { place ->
        viewModel.action(SetPlaceSearchTimestampUseCase(place))
    },
    onPlaceClicked = { place -> onPlaceClicked(place.uuid) },
)Andrey Kulikov
06/04/2021, 1:29 PMAndré Thiele
06/04/2021, 1:30 PMAndrey Kulikov
06/04/2021, 1:36 PMitems(places) {…}items(places, key = { it.toString() } ) {}André Thiele
06/04/2021, 1:39 PMAndré Thiele
06/04/2021, 1:40 PMAndrey Kulikov
06/04/2021, 1:41 PMAndré Thiele
06/04/2021, 1:42 PM