Don't pass full game to action editor

This commit is contained in:
Pat Hartl 2023-03-20 19:09:22 -05:00
parent 503c77f9fe
commit 86f5479a11
2 changed files with 26 additions and 15 deletions

View file

@ -54,17 +54,21 @@
</Space> </Space>
@code { @code {
[Parameter] public Game Game { get; set; } [Parameter] public ICollection<Data.Models.Action> Value { get; set; }
[Parameter] public EventCallback<ICollection<Data.Models.Action>> ValueChanged { get; set; }
[Parameter] public Guid ArchiveId { get; set; }
private List<Data.Models.Action> OrderedActions { get; set; } private List<Data.Models.Action> OrderedActions { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
if (Game.Actions == null) if (Value == null)
Game.Actions = new List<Data.Models.Action>(); Value = new List<Data.Models.Action>();
OrderedActions = Game.Actions.OrderBy(a => a.SortOrder).ToList(); OrderedActions = Value.OrderBy(a => a.SortOrder).ToList();
FixSortOrder();
await FixSortOrder();
} }
private async Task AddAction() private async Task AddAction()
@ -77,11 +81,15 @@
PrimaryAction = OrderedActions.Count == 0, PrimaryAction = OrderedActions.Count == 0,
SortOrder = OrderedActions.Count SortOrder = OrderedActions.Count
}); });
await FixSortOrder();
} }
private async Task RemoveAction(Data.Models.Action action) private async Task RemoveAction(Data.Models.Action action)
{ {
OrderedActions.Remove(action); OrderedActions.Remove(action);
await FixSortOrder();
} }
private async Task MoveUp(Data.Models.Action action) private async Task MoveUp(Data.Models.Action action)
@ -89,7 +97,7 @@
if (action.SortOrder > 0) if (action.SortOrder > 0)
OrderedActions.Move(action, action.SortOrder - 1); OrderedActions.Move(action, action.SortOrder - 1);
FixSortOrder(); await FixSortOrder();
} }
private async Task MoveDown(Data.Models.Action action) private async Task MoveDown(Data.Models.Action action)
@ -97,7 +105,7 @@
if (action.SortOrder < OrderedActions.Count + 1) if (action.SortOrder < OrderedActions.Count + 1)
OrderedActions.Move(action, action.SortOrder + 1); OrderedActions.Move(action, action.SortOrder + 1);
FixSortOrder(); await FixSortOrder();
} }
private async void BrowseForActionPath(Data.Models.Action action) private async void BrowseForActionPath(Data.Models.Action action)
@ -112,11 +120,11 @@
}; };
var browserOptions = new ArchiveBrowserOptions() var browserOptions = new ArchiveBrowserOptions()
{ {
ArchiveId = Game.Archives.FirstOrDefault().Id, ArchiveId = ArchiveId,
Select = true, Select = true,
Multiple = false Multiple = false
}; };
var modalRef = await ModalService.CreateModalAsync<ArchiveBrowserDialog, ArchiveBrowserOptions, IEnumerable<ZipArchiveEntry>>(modalOptions, browserOptions); var modalRef = await ModalService.CreateModalAsync<ArchiveBrowserDialog, ArchiveBrowserOptions, IEnumerable<ZipArchiveEntry>>(modalOptions, browserOptions);
@ -137,7 +145,7 @@
}; };
} }
private void FixSortOrder() private async Task FixSortOrder()
{ {
int i = 0; int i = 0;
@ -148,6 +156,9 @@
i++; i++;
} }
Game.Actions = OrderedActions; Value = OrderedActions;
if (ValueChanged.HasDelegate)
await ValueChanged.InvokeAsync();
} }
} }

View file

@ -80,7 +80,7 @@
<SpaceItem> <SpaceItem>
<Card Title="Actions"> <Card Title="Actions">
<Body> <Body>
<ActionEditor Game="Game" /> <ActionEditor @bind-Value="Game.Actions" ArchiveId="Game.Archives.OrderByDescending(a => a.CreatedOn).FirstOrDefault().Id" />
</Body> </Body>
</Card> </Card>
</SpaceItem> </SpaceItem>