using System.ComponentModel;
using Avalonia.Svg.Skia;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;

namespace InABox.Avalonia.Components;

public partial class AvaloniaModule : ObservableObject
{
    public event PropertyChangedEventHandler? PropertyChanged;
    
    [ObservableProperty] private string? _alert;

    [ObservableProperty] private string? _description;

    [ObservableProperty] private SvgImage? _image;

    [ObservableProperty] private bool? _isEnabled = true;

    [ObservableProperty] private bool? _isVisible = true;

    [ObservableProperty] private RelayCommand? _tapCommand;

    [ObservableProperty] private string? _title;

    protected override void OnPropertyChanged(PropertyChangedEventArgs e)
    {
        PropertyChanged?.Invoke(this,e);
        base.OnPropertyChanged(e);
    }
}