dragon-iso/src/TeamsISO.App/Converters/NullToCollapsedConverter.cs
Zac Gaetano d282e1b0f8
Some checks failed
CI / build-and-test (push) Failing after 30s
feat(wpf): v2 task 39+40 - studio table redesign + Ctrl+K command palette
Task 39: 5-column participants table - state LED, name+codec caption, 5-bar audio meter, mono output name, ISO pill. Row height 52, full-row active-speaker tint (no left stripe). New converter LevelThresholdConverter, OutputName property on ParticipantViewModel.

Task 40: Ctrl+K / Ctrl+P command palette - chromeless centered floating window, fuzzy Contains match across Label/Category/Keywords, arrow nav, Enter invoke, Esc close. Quick/Teams/Network/App categories cover top operator verbs and theme switching.

Also: log startup exceptions to Serilog before the modal MessageBox fires - much better triage signal than user-pasted dialog text.
2026-05-15 11:15:00 -04:00

24 lines
901 B
C#

using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace TeamsISO.App.Converters;
/// <summary>
/// Tiny utility converter — null or empty string ⇒ Collapsed, otherwise
/// Visible. Used by the v2 command palette's optional shortcut chip
/// (e.g. "Ctrl+R") so rows without a bound shortcut don't render the
/// empty pill outline.
/// </summary>
public sealed class NullToCollapsedConverter : IValueConverter
{
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
if (value is null) return Visibility.Collapsed;
if (value is string s && string.IsNullOrEmpty(s)) return Visibility.Collapsed;
return Visibility.Visible;
}
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) =>
System.Windows.Data.Binding.DoNothing;
}