using Content.Shared.Administration.Notes; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; using static Robust.Client.UserInterface.Controls.BaseButton; namespace Content.Client.Administration.UI.Notes; [GenerateTypedNameReferences] public sealed partial class AdminNotesLinePopup : Popup { public event Action? OnEditPressed; public event Action? OnDeletePressed; public AdminNotesLinePopup(SharedAdminNote note, bool showDelete, bool showEdit) { RobustXamlLoader.Load(this); NoteId = note.Id; DeleteButton.Visible = showDelete; EditButton.Visible = showEdit; UserInterfaceManager.ModalRoot.AddChild(this); IdLabel.Text = Loc.GetString("admin-notes-id", ("id", note.Id)); RoundIdLabel.Text = note.Round == null ? Loc.GetString("admin-notes-round-id-unknown") : Loc.GetString("admin-notes-round-id", ("id", note.Round)); CreatedByLabel.Text = Loc.GetString("admin-notes-created-by", ("author", note.CreatedByName)); CreatedAtLabel.Text = Loc.GetString("admin-notes-created-at", ("date", note.CreatedAt.ToString("dd MMM yyyy HH:mm:ss"))); EditedByLabel.Text = Loc.GetString("admin-notes-last-edited-by", ("author", note.EditedByName)); EditedAtLabel.Text = Loc.GetString("admin-notes-last-edited-at", ("date", note.LastEditedAt.ToString("dd MMM yyyy HH:mm:ss"))); EditButton.OnPressed += EditPressed; DeleteButton.OnPressed += DeletePressed; } private int NoteId { get; } private bool ConfirmingDelete { get; set; } private void EditPressed(ButtonEventArgs args) { OnEditPressed?.Invoke(NoteId); Close(); } private void DeletePressed(ButtonEventArgs args) { if (!ConfirmingDelete) { ConfirmingDelete = true; DeleteButton.Text = Loc.GetString("admin-notes-delete-confirm"); DeleteButton.ModulateSelfOverride = Color.Red; return; } ConfirmingDelete = false; DeleteButton.ModulateSelfOverride = null; OnDeletePressed?.Invoke(NoteId); Close(); } protected override void Dispose(bool disposing) { base.Dispose(disposing); if (!disposing) { return; } EditButton.OnPressed -= EditPressed; DeleteButton.OnPressed -= DeletePressed; OnEditPressed = null; OnDeletePressed = null; } }