using System.Globalization;
using Avalonia.Data.Converters;
using ClaudeDo.Data.Models;
using TaskStatus = ClaudeDo.Data.Models.TaskStatus;
namespace ClaudeDo.Ui.Converters;
///
/// Returns true when the bound TaskStatus equals the ConverterParameter string.
/// Usage: Classes.running="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=Running}"
///
public class EqStatusConverter : IValueConverter
{
public static EqStatusConverter Instance { get; } = new();
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is TaskStatus status && parameter is string name &&
Enum.TryParse(name, ignoreCase: true, out var target))
return status == target;
return false;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
=> throw new NotSupportedException();
}