You've already forked linux-packaging-mono
Imported Upstream version 6.6.0.89
Former-commit-id: b39a328747c2f3414dc52e009fb6f0aa80ca2492
This commit is contained in:
parent
cf815e07e0
commit
95fdb59ea6
92
external/illinker-test-assets/wasm/BlazingPizza.Client/Shared/ConfigurePizzaDialog.razor
vendored
Normal file
92
external/illinker-test-assets/wasm/BlazingPizza.Client/Shared/ConfigurePizzaDialog.razor
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
@inject HttpClient HttpClient
|
||||
|
||||
<div class="dialog-title">
|
||||
<h2>@Pizza.Special.Name</h2>
|
||||
@Pizza.Special.Description
|
||||
</div>
|
||||
<form class="dialog-body">
|
||||
<div>
|
||||
<label>Size:</label>
|
||||
<input type="range" min="@Pizza.MinimumSize" max="@Pizza.MaximumSize" step="1" @bind-value="@Pizza.Size" @bind-value:event="oninput" />
|
||||
<span class="size-label">
|
||||
@(Pizza.Size)" (£@(Pizza.GetFormattedTotalPrice()))
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<label>Extra Toppings:</label>
|
||||
@if (toppings == null)
|
||||
{
|
||||
<select class="custom-select" disabled>
|
||||
<option>(loading...)</option>
|
||||
</select>
|
||||
}
|
||||
else if (Pizza.Toppings.Count >= 6)
|
||||
{
|
||||
<div>(maximum reached)</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<select class="custom-select" @onchange="@ToppingSelected">
|
||||
<option value="-1" disabled selected>(select)</option>
|
||||
@for (var i = 0; i < toppings.Count; i++)
|
||||
{
|
||||
<option value="@i">@toppings[i].Name - (£@(toppings[i].GetFormattedPrice()))</option>
|
||||
}
|
||||
</select>
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="toppings">
|
||||
@foreach (var topping in Pizza.Toppings)
|
||||
{
|
||||
<div class="topping">
|
||||
@topping.Topping.Name
|
||||
<span class="topping-price">@topping.Topping.GetFormattedPrice()</span>
|
||||
<button type="button" class="delete-topping" @onclick="@(() => RemoveTopping(topping.Topping))">x</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="dialog-buttons">
|
||||
<button class="btn btn-secondary mr-auto" @onclick="@OnCancel">Cancel</button>
|
||||
<span class="mr-center">
|
||||
Price: <span class="price">@(Pizza.GetFormattedTotalPrice())</span>
|
||||
</span>
|
||||
<button class="btn btn-success ml-auto" @onclick="@OnConfirm">Order ></button>
|
||||
</div>
|
||||
|
||||
@functions {
|
||||
List<Topping> toppings;
|
||||
|
||||
[Parameter] Pizza Pizza { get; set; }
|
||||
[Parameter] EventCallback OnCancel { get; set; }
|
||||
[Parameter] EventCallback OnConfirm { get; set; }
|
||||
|
||||
protected async override Task OnInitAsync()
|
||||
{
|
||||
toppings = await HttpClient.GetJsonAsync<List<Topping>>("toppings");
|
||||
}
|
||||
|
||||
void ToppingSelected(UIChangeEventArgs e)
|
||||
{
|
||||
if (int.TryParse((string)e.Value, out var index) && index >= 0)
|
||||
{
|
||||
AddTopping(toppings[index]);
|
||||
}
|
||||
}
|
||||
|
||||
void AddTopping(Topping topping)
|
||||
{
|
||||
if (Pizza.Toppings.Find(pt => pt.Topping == topping) == null)
|
||||
{
|
||||
Pizza.Toppings.Add(new PizzaTopping() { Topping = topping });
|
||||
}
|
||||
}
|
||||
|
||||
void RemoveTopping(Topping topping)
|
||||
{
|
||||
Pizza.Toppings.RemoveAll(pt => pt.Topping == topping);
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user