package com.covalima.rekomendasaunaihan.ui.home import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.covalima.rekomendasaunaihan.databinding.ItemAihanGridBinding import com.covalima.rekomendasaunaihan.model.Aihan import com.covalima.rekomendasaunaihan.network.ApiClient class GridAihanAdapter( private var listAihan: List, private val onItemClick: (Aihan) -> Unit ) : RecyclerView.Adapter() { inner class GridViewHolder(val binding: ItemAihanGridBinding) : RecyclerView.ViewHolder(binding.root) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GridViewHolder { val binding = ItemAihanGridBinding.inflate(LayoutInflater.from(parent.context), parent, false) return GridViewHolder(binding) } override fun onBindViewHolder(holder: GridViewHolder, position: Int) { val aihan = listAihan[position] holder.binding.tvKategoria.text = "Kategoria: ${aihan.naranKategoria ?: "-"}" holder.binding.tvNaranAihan.text = "Naran Aihan: ${aihan.naranAihan}" holder.binding.tvRating.text = "★ ${aihan.rataBintang}" Glide.with(holder.itemView.context) .load(ApiClient.getFotoUrl(aihan.foto)) .placeholder(android.R.color.darker_gray) .error(android.R.color.darker_gray) .into(holder.binding.imgAihan) holder.itemView.setOnClickListener { onItemClick(aihan) } } override fun getItemCount() = listAihan.size fun updateData(newList: List) { listAihan = newList notifyDataSetChanged() } }