namespace HellionChat.Util;

// Pure predicates for the TempTab pin lifecycle. Extracted from the strip
// sites in Plugin.cs and Configuration.cs so they stay in lockstep — a
// load-time strip that disagrees with the save-time strip is exactly how
// pinned tabs would silently fall out of the JSON.
internal static class TabLifecycleHelpers
{
    public static bool IsInUnpinnedPool(Tab t) => t.IsTempTab && !t.IsPinned;

    public static bool IsInPinnedPool(Tab t) => t.IsTempTab && t.IsPinned;

    public static bool ShouldStripOnLoad(Tab t) => IsInUnpinnedPool(t);

    public static bool ShouldStripOnSave(Tab t) => IsInUnpinnedPool(t);
}
