feat(integrations): add IsApiVersionCompatible and ShouldRenderSlot helpers
This commit is contained in:
@@ -28,4 +28,35 @@ internal sealed class HonorificService
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Honorific has been on major version 3 since the IPC was introduced.
|
||||||
|
// We treat anything else as incompatible because a major bump from
|
||||||
|
// upstream signals a breaking IPC contract change, and rendering a
|
||||||
|
// title against the wrong shape is worse than rendering nothing.
|
||||||
|
// If Honorific later ships a non-breaking 4.x major, we relax this
|
||||||
|
// by extending the accepted-major set rather than removing the check.
|
||||||
|
internal static bool IsApiVersionCompatible((uint Major, uint Minor) apiVersion)
|
||||||
|
{
|
||||||
|
return apiVersion.Major == 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Single source of truth for whether the chat header should draw the
|
||||||
|
// Honorific slot in the current frame. Returning a single bool keeps
|
||||||
|
// the render call branch-free; all skip conditions are evaluated here.
|
||||||
|
// The IsOriginal short-circuit means: when the user has Honorific
|
||||||
|
// installed but is using the original FFXIV title, we render nothing —
|
||||||
|
// matches the design decision in the spec ("Empty-State A: silent
|
||||||
|
// auto-hide").
|
||||||
|
internal static bool ShouldRenderSlot(
|
||||||
|
bool toggleEnabled,
|
||||||
|
bool isAvailable,
|
||||||
|
HonorificTitleData? title)
|
||||||
|
{
|
||||||
|
if (!toggleEnabled) return false;
|
||||||
|
if (!isAvailable) return false;
|
||||||
|
if (title is null) return false;
|
||||||
|
if (title.IsOriginal) return false;
|
||||||
|
if (string.IsNullOrEmpty(title.Title)) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user