using Xamarin.Forms;

namespace Billing.Themes
{
    public class Dark : BaseTheme
    {
        private static Dark _instance;

        public static Dark Instance => _instance ??= new Dark();

        protected override Color PrimaryMauiColor => Color.White;
        protected override Color SecondaryMauiColor => Color.LightGray;

        public Dark()
        {
            InitColors();
            InitResources();
        }

        private void InitColors()
        {
            Add(WindowBackgroundColor, Color.Black);
            Add(OptionTintColor, Color.FromRgb(28, 28, 28));
            Add(PromptBackgroundColor, Color.FromRgb(0x1f, 0x1f, 0x1f));
            Add(TabBarBackgroundColor, Color.Black);
            Add(TabBarUnselectedColor, Color.FromRgb(0x82, 0x82, 0x82));
            Add(OutRangeDayColor, Color.DarkGray);
            Add(TextColor, Color.FromRgb(0xcc, 0xcc, 0xcc));
            Add(SecondaryTextColor, Color.LightGray);
            Add(RedColor, Color.FromRgb(211, 5, 5));

            Add(new Style(typeof(TabBar))
            {
                Setters =
                {
                    new Setter { Property = Shell.TabBarBackgroundColorProperty, Value = Color.Black },
                    new Setter { Property = Shell.TabBarTitleColorProperty, Value = PrimaryMauiColor },
                    new Setter { Property = Shell.TabBarUnselectedColorProperty, Value = Color.FromRgb(0x82, 0x82, 0x82) }
                }
            });
            Add(new Style(typeof(TableView))
            {
                Setters =
                {
                    new Setter { Property = VisualElement.BackgroundColorProperty, Value = Color.Black }
                }
            });
        }
    }
}