AdminFaxEui.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Content.Client.Eui;
  2. using Content.Shared.Eui;
  3. using Content.Shared.Fax;
  4. using JetBrains.Annotations;
  5. namespace Content.Client.Fax.AdminUI;
  6. [UsedImplicitly]
  7. public sealed class AdminFaxEui : BaseEui
  8. {
  9. private readonly AdminFaxWindow _window;
  10. public AdminFaxEui()
  11. {
  12. _window = new AdminFaxWindow();
  13. _window.OnClose += () => SendMessage(new AdminFaxEuiMsg.Close());
  14. _window.OnFollowFax += entity => SendMessage(new AdminFaxEuiMsg.Follow(entity));
  15. _window.OnMessageSend += args => SendMessage(new AdminFaxEuiMsg.Send(args.entity, args.title,
  16. args.stampedBy, args.message, args.stampSprite, args.stampColor, args.locked));
  17. }
  18. public override void Opened()
  19. {
  20. _window.OpenCentered();
  21. }
  22. public override void Closed()
  23. {
  24. _window.Close();
  25. }
  26. public override void HandleState(EuiStateBase state)
  27. {
  28. if (state is not AdminFaxEuiState cast)
  29. return;
  30. _window.PopulateFaxes(cast.Entries);
  31. }
  32. }