@using BlazorLottoPicker.Utilities;

<div>
    <select class="form-control" @bind="_selectedColor" style="display:flex;justify-content:center;text-align:center">
        @foreach (var color in _colorPallets)
        {
            <option value="@color">
                @color
            </option>
        }
    </select>

    <Ball BallColor="@this.SelectedHexColor" Value="@_value"></Ball>
</div>

@code {
    List<string> _colorPallets = Utils.ColorPallets;
    string _selectedColor = Utils.ColorPallets[0];
    int _selectedIndex = 0;
    int _value = 0;

    string SelectedHexColor
    {
        get 
        {
            _selectedIndex = _colorPallets.IndexOf(_selectedColor);

            _value = Pick(_selectedIndex);
            return Utils.HexColorPallets[_selectedIndex];
        }
    }

    int Pick(int index)
    {
        return Utils.GetNumber(index);
    }

    void Shuffle()
    {
        _selectedColor = Utils.ColorPallets[new Random().Next(_value, Utils.ColorPallets.Count)];
    }

    protected override void OnInitialized()
    {
        base.OnInitialized();

        Shuffle();
        StateHasChanged();
    }
}
