feat(alerts): a Test alert button in the alert properties
Sits to the right of the Built-in video pill, labelled "Test alert". It enqueues one synthetic Super Chat through the real AlertOverlayLayer, so what plays is exactly what a viewer triggers — the custom clip when one is set, the built-in clip otherwise — and it goes through the same output path (preview and encoder) as a live alert. Local only: nothing reaches YouTube and no chat row is invented.
This commit is contained in:
@@ -119,6 +119,30 @@ public partial class MainViewModel : ViewModelBase
|
||||
set => SetProperty(ref _featureRequestEmail, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Properties-panel "Test alert" (creator ruling 2026-11-01): fire one synthetic Super Chat
|
||||
/// through the REAL alert layer, so what plays is exactly what a viewer would trigger — the
|
||||
/// custom clip if one is set, the built-in clip otherwise. Local only; nothing is sent to
|
||||
/// YouTube and no chat row is invented.
|
||||
/// </summary>
|
||||
public RelayCommand TestAlertCommand { get; private set; } = null!;
|
||||
|
||||
private void TestAlert()
|
||||
{
|
||||
_alertLayer.Enqueue(new Models.ChatMessage
|
||||
{
|
||||
AuthorName = "Test viewer",
|
||||
Message = "Test alert — this is what a Super Chat looks like.",
|
||||
Timestamp = System.DateTime.Now,
|
||||
IsSimulated = true,
|
||||
IsSuperChat = true,
|
||||
SuperChatAmount = 5.00,
|
||||
SuperChatCurrency = "$",
|
||||
SuperChatDisplayString = "$5.00",
|
||||
Kind = Models.ChatEventKind.SuperChat,
|
||||
});
|
||||
}
|
||||
|
||||
public ICommand OpenSettingsCommand { get; }
|
||||
public ICommand OpenBugCommand { get; }
|
||||
public ICommand OpenFeatureCommand { get; }
|
||||
|
||||
Reference in New Issue
Block a user