From 087f8dacdb2c6ffc49f0313f91a3952f40bd30bd Mon Sep 17 00:00:00 2001 From: Jason Jackson Date: Sat, 16 Nov 2024 08:45:23 -0500 Subject: [PATCH] Initial sort is by age (serialized ID). Hooked up next and previous dweller on Dweller_Info dialog. --- .../Dwellers/DwellerInfo_Dialog.razor | 35 +++++++++++++++++-- ShelterViewer/Pages/Dwellers.razor | 5 +-- ShelterViewer/Services/VaultService.cs | 7 ++-- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/ShelterViewer/Components/Dwellers/DwellerInfo_Dialog.razor b/ShelterViewer/Components/Dwellers/DwellerInfo_Dialog.razor index 51241c4..5cde8fc 100644 --- a/ShelterViewer/Components/Dwellers/DwellerInfo_Dialog.razor +++ b/ShelterViewer/Components/Dwellers/DwellerInfo_Dialog.razor @@ -56,8 +56,8 @@ - Previous - Next + Previous + Next @@ -87,7 +87,36 @@ private MudDialogInstance MudDialog { get; set; } = null!; [Parameter, EditorRequired] - public Dweller Dweller { get; set; } = null!; + public int DwellerId { get; set; } + + [Parameter, EditorRequired] + public Dweller[] Dwellers { get; set; } = null!; + + private int _current = 0; + private Dweller Dweller { get { return Dwellers[_current]; }} + + protected override void OnInitialized() + { + _current = Array.FindIndex(Dwellers, i => i.serializeId == DwellerId); + } + + private void NextDweller() + { + if (_current < Dwellers.Length) + { + _current++; + StateHasChanged(); + } + } + + private void PreviousDweller() + { + if (_current > 0) + { + _current--; + StateHasChanged(); + } + } private void CloseDialog() => MudDialog.Close(DialogResult.Ok(true)); } diff --git a/ShelterViewer/Pages/Dwellers.razor b/ShelterViewer/Pages/Dwellers.razor index 1b1ad4f..bdef97e 100644 --- a/ShelterViewer/Pages/Dwellers.razor +++ b/ShelterViewer/Pages/Dwellers.razor @@ -10,10 +10,10 @@ - + @@ -80,7 +80,8 @@ var options = new DialogOptions() { MaxWidth = MaxWidth.Large, FullWidth = true }; var parameters = new DialogParameters { - { "Dweller", selectedDweller } + { "DwellerId", selectedDweller.serializeId }, + { "Dwellers", DwellerList.ToArray() } }; return DialogService.ShowAsync("Dweller Info", parameters, options); } diff --git a/ShelterViewer/Services/VaultService.cs b/ShelterViewer/Services/VaultService.cs index d883f96..7476d53 100644 --- a/ShelterViewer/Services/VaultService.cs +++ b/ShelterViewer/Services/VaultService.cs @@ -155,10 +155,9 @@ public void InitializeVault(string vaultJsonString) _vaultData = JsonConvert.DeserializeObject(VaultString, settings); VaultData = System.Text.Json.JsonSerializer.Deserialize(VaultString, new JsonSerializerOptions()); - - //_dwellers = GetDwellers(); - //_rooms = GetRooms(); - _items = GetItems(); + VaultData!.dwellers.dwellers = VaultData!.dwellers.dwellers.ToList().OrderBy(x => x.serializeId).ToArray(); // Order by ID initially. + + _items = GetItems(); // Items are spread across users. ProcessDwellers(); // Do this on the first click of dwellers? NotifyPropertyChanged();