using inutralia.Models;
using inutralia.ViewModels;
using System;
using Xamarin.Forms;


namespace inutralia.Views.NutriQuestion
{
    public partial class NutriQuestionListView : ContentPage
    {

        protected NutriQuestionListViewModel ViewModel => BindingContext as NutriQuestionListViewModel;

        public NutriQuestionListView()
        {
            InitializeComponent();
            BindingContext = new NutriQuestionListViewModel();


        }

        /// <summary>
        /// Método llamado al hacer tap en un elemento de la lista. Navega a la página de detalle
        /// de la notificación seleccionada
        /// </summary>
        /// <param name="sender">La ListView</param>
        /// <param name="e">Argumentos del evento</param>
        void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            // e.Item apunta a la notificación seleccionada. A partir de ella se crea su ViewModel
            // y con él se crea la página de detalle y se navega a ella
            Navigation.PushAsync(
                 new DetailsNutriQuestionListView()
                 {
                     BindingContext = new DetailsNutriQuestionListViewModel(e.Item as Conversation)
                 }
            );

            // Deselecciona el item para que no le cambie el color de fondo
            ((ListView)sender).SelectedItem = null;
        }



        //click button create question

        private void NewQuestion_Clicked(object sender, EventArgs e)
        {
            (App.Current.MainPage as RootPage).Navigate<CreateNutriQuestion>();
        }


        /// <summary>
        /// Método llamado cada vez que una página pasa a ser visible
        /// </summary>
        protected override async void OnAppearing()
        {
            base.OnAppearing();

            // Le decimos al ViewModel que realice la primera carga del listado
            await ViewModel.ExecuteLoadConversationsCommand();
        }


    }
}
