using System;
using Xamarin.CommunityToolkit.UI.Views;
using Xamarin.Forms.Xaml;

namespace TINK.View
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class FeedbackPopup : Popup<FeedbackPopup.Result>
    {
        public FeedbackPopup()
        {
            InitializeComponent();
        }

        protected override FeedbackPopup.Result GetLightDismissResult()
        {
            return new Result
            {
                Message = feedbackMessage.Text,
                IsBikeBroken = brockenCheckBox.IsChecked
            };
        }

        private void OnOkClicked(object sender, EventArgs eventArgs)
        {
            var result = new Result
            {
                Message = feedbackMessage.Text,
                IsBikeBroken = brockenCheckBox.IsChecked
            };

            Dismiss(result);
        }

        /// <summary>
        /// Feedback given by user when returning bike.
        /// </summary>
#if USCSHARP9
		public class Result : IViewService.IUserFeedback
#else
        public new class Result : IUserFeedback
#endif
        {
            /// <summary>
            /// Holds whether bike is broken or not.
            /// </summary>
            public bool IsBikeBroken { get; set; }

            /// <summary>
            /// Holds either 
            /// - general feedback
            /// - error description of broken bike 
            /// or both.
            /// </summary>
            public string Message { get; set; }
        }
    }
}