Cleanup campaign management ux
This commit is contained in:
@@ -136,7 +136,7 @@ public partial class Workspace : IAsyncDisposable
|
||||
|
||||
private async Task ReloadCampaignsAsync(Guid? preferredCampaignId)
|
||||
{
|
||||
var campaigns = await ApiClient.RequestAsync<IReadOnlyList<CampaignSummary>>("GET", "/api/campaigns");
|
||||
var campaigns = await ApiClient.RequestAsync<IReadOnlyList<CampaignDetails>>("GET", "/api/campaigns");
|
||||
Campaigns = campaigns.OrderBy(c => c.Name, StringComparer.OrdinalIgnoreCase).ToList();
|
||||
|
||||
if (Campaigns.Count == 0)
|
||||
@@ -191,30 +191,6 @@ public partial class Workspace : IAsyncDisposable
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ManualRefreshAsync()
|
||||
{
|
||||
if (IsMutating)
|
||||
return;
|
||||
|
||||
IsMutating = true;
|
||||
try
|
||||
{
|
||||
await CheckHealthAsync();
|
||||
var reloaded = await ReloadAuthenticatedSessionAsync(SelectedCampaignId);
|
||||
if (!reloaded)
|
||||
{
|
||||
await LoggedOut.InvokeAsync("Session expired. Please log in again.");
|
||||
return;
|
||||
}
|
||||
|
||||
SetStatus("Campaign data refreshed.", false);
|
||||
}
|
||||
finally
|
||||
{
|
||||
IsMutating = false;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LogoutAsync()
|
||||
{
|
||||
if (IsMutating)
|
||||
@@ -435,23 +411,10 @@ public partial class Workspace : IAsyncDisposable
|
||||
return;
|
||||
}
|
||||
|
||||
var selectedSkill = SelectedCampaign.Skills.FirstOrDefault(skill => skill.Id == skillId);
|
||||
if (selectedSkill is null)
|
||||
{
|
||||
SetStatus("Skill is no longer available. Refresh campaign data.", true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!CanRollSkill(selectedSkill))
|
||||
{
|
||||
SetStatus("You are not allowed to roll this skill.", true);
|
||||
return;
|
||||
}
|
||||
|
||||
IsMutating = true;
|
||||
try
|
||||
{
|
||||
LastRoll = await ApiClient.RequestAsync<RollResult>("POST", $"/api/skills/{selectedSkill.Id}/roll", new RollSkillRequest(RollVisibility));
|
||||
LastRoll = await ApiClient.RequestAsync<RollResult>("POST", $"/api/skills/{skillId}/roll", new RollSkillRequest(RollVisibility));
|
||||
|
||||
await RefreshCampaignScopeAsync();
|
||||
SetStatus("Roll recorded.", false);
|
||||
@@ -487,11 +450,6 @@ public partial class Workspace : IAsyncDisposable
|
||||
return character is not null && CanEditCharacter(character);
|
||||
}
|
||||
|
||||
private bool CanRollSkill(SkillSummary skill)
|
||||
{
|
||||
return CanEditSkill(skill);
|
||||
}
|
||||
|
||||
[JSInvokable]
|
||||
public async Task OnStateEventReceived(long _)
|
||||
{
|
||||
@@ -736,7 +694,7 @@ public partial class Workspace : IAsyncDisposable
|
||||
private Guid? ActiveCharacterId { get; set; }
|
||||
private Guid? SelectedCampaignId { get; set; }
|
||||
private CampaignDetails? SelectedCampaign { get; set; }
|
||||
private List<CampaignSummary> Campaigns { get; set; } = [];
|
||||
private List<CampaignDetails> Campaigns { get; set; } = [];
|
||||
private List<CampaignLogEntry> CampaignLog { get; set; } = [];
|
||||
private List<RulesetDefinition> Rulesets { get; set; } = [];
|
||||
private Guid? SelectedCharacterId { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user