releases/VideoDownloader.Browser/Tabs/TabPreview.cs

25 lines
1.1 KiB
C#

namespace VideoDownloader.Browser.Tabs;
/// <summary>UC-B05 탭 호버 미리보기 모델 — 제목·URL·상태를 한 눈에 보여주는 툴팁 페이로드.</summary>
public sealed record TabPreview(string Title, string Url, bool IsSuspended, bool IsAudioPlaying, bool IsLocked, bool IsReader)
{
/// <summary>탭 상태에서 미리보기 생성.</summary>
public static TabPreview From(TabItem tab) => new(
tab.Title,
tab.Url,
tab.IsSuspended,
tab.IsAudioPlaying,
tab.IsLocked,
tab.IsReader);
/// <summary>낭독기·툴팁용 한 줄 요약(상태 배지). 예: "제목 — zzz 잠자기 · 오디오 재생 중".</summary>
public string BuildTooltipText()
{
var badges = new List<string>();
if (IsSuspended) badges.Add("잠자기");
if (IsAudioPlaying) badges.Add("오디오 재생 중");
if (IsLocked) badges.Add("잠금");
if (IsReader) badges.Add("리더 모드");
return badges.Count == 0 ? $"{Title}\n{Url}" : $"{Title} ({string.Join(" · ", badges)})\n{Url}";
}
}