Iceshrimp.NET/Iceshrimp.Frontend/Core/Services/StateServicePatterns/VirtualScrollerState.cs
2024-07-04 18:02:00 +02:00

28 lines
No EOL
781 B
C#

using Iceshrimp.Shared.Schemas.Web;
namespace Iceshrimp.Frontend.Core.Services.StateServicePatterns;
public class VirtualScroller
{
private Dictionary<string, VirtualScrollerState> States { get; } = new();
public void SetState(string id, VirtualScrollerState state)
{
States[id] = state;
}
public VirtualScrollerState GetState(string id)
{
States.TryGetValue(id, out var state);
return state ?? throw new ArgumentException($"Requested state '{id}' does not exist.");
}
}
public class VirtualScrollerState
{
public Dictionary<string, int> Height = new();
public int PadBottom = 0;
public int PadTop = 0;
public List<NoteResponse> RenderedList = [];
public float ScrollTop = 0;
}