forked from Eauldane/SnowcloakClient
50 lines
1.8 KiB
C#
50 lines
1.8 KiB
C#
using Dalamud.Bindings.ImGui;
|
|
using Dalamud.Interface;
|
|
using MareSynchronos.API.Dto.Group;
|
|
using MareSynchronos.PlayerData.Pairs;
|
|
using MareSynchronos.Services.Mediator;
|
|
using MareSynchronos.WebAPI;
|
|
using System.Numerics;
|
|
|
|
namespace MareSynchronos.UI.Components.Popup;
|
|
|
|
public class BanUserPopupHandler : IPopupHandler
|
|
{
|
|
private readonly ApiController _apiController;
|
|
private readonly UiSharedService _uiSharedService;
|
|
private string _banReason = string.Empty;
|
|
private GroupFullInfoDto _group = null!;
|
|
private Pair _reportedPair = null!;
|
|
|
|
public BanUserPopupHandler(ApiController apiController, UiSharedService uiSharedService)
|
|
{
|
|
_apiController = apiController;
|
|
_uiSharedService = uiSharedService;
|
|
}
|
|
|
|
public Vector2 PopupSize => new(500, 250);
|
|
|
|
public bool ShowClose => true;
|
|
|
|
public void DrawContent()
|
|
{
|
|
UiSharedService.TextWrapped("User " + (_reportedPair.UserData.AliasOrUID) + " will be banned and removed from this Syncshell.");
|
|
ImGui.InputTextWithHint("##banreason", "Ban Reason", ref _banReason, 255);
|
|
|
|
if (_uiSharedService.IconTextButton(FontAwesomeIcon.UserSlash, "Ban User"))
|
|
{
|
|
ImGui.CloseCurrentPopup();
|
|
var reason = _banReason;
|
|
_ = _apiController.GroupBanUser(new GroupPairDto(_group.Group, _reportedPair.UserData), reason);
|
|
_banReason = string.Empty;
|
|
}
|
|
UiSharedService.TextWrapped("The reason will be displayed in the banlist. The current server-side alias if present (Vanity ID) will automatically be attached to the reason.");
|
|
}
|
|
|
|
public void Open(OpenBanUserPopupMessage message)
|
|
{
|
|
_reportedPair = message.PairToBan;
|
|
_group = message.GroupFullInfoDto;
|
|
_banReason = string.Empty;
|
|
}
|
|
} |