Generalised datetime picker into component for reuse
continuous-integration/drone/pr Build is passing
continuous-integration/drone/pr Build is passing
This commit is contained in:
@@ -42,10 +42,37 @@
|
||||
<ValidationMessage For="@(() => ProductModel.Summary)" style="color: #ff5722; font-size: 0.75rem;" />
|
||||
</div>
|
||||
|
||||
<div class="console-field-row">
|
||||
<div class="console-field-group">
|
||||
<label class="console-field-label">Base Ledger Price (ZAR)</label>
|
||||
<InputNumber @bind-Value="ProductModel.Price" class="console-input" placeholder="0.00" />
|
||||
<ValidationMessage For="@(() => ProductModel.Price)" style="color: #ff5722; font-size: 0.75rem;" />
|
||||
</div>
|
||||
|
||||
<div class="console-field-group">
|
||||
<label class="console-field-label">ISBN Reference</label>
|
||||
<InputText @bind-Value="ProductModel.Isbn" class="console-input" placeholder="e.g., 978-0393312836" />
|
||||
<ValidationMessage For="@(() => ProductModel.Isbn)" style="color: #ff5722; font-size: 0.75rem;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="console-field-row">
|
||||
<div class="console-field-group">
|
||||
<label class="console-field-label">Author / Creator</label>
|
||||
<InputText @bind-Value="ProductModel.Author" class="console-input" placeholder="e.g., William Gibson" />
|
||||
<ValidationMessage For="@(() => ProductModel.Author)" style="color: #ff5722; font-size: 0.75rem;" />
|
||||
</div>
|
||||
|
||||
<div class="console-field-group">
|
||||
<label class="console-field-label">Date of Publication</label>
|
||||
<ConsoleDatePicker @bind-Value="ProductModel.PublishDate" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="console-field-group">
|
||||
<label class="console-field-label">Base Ledger Price (ZAR)</label>
|
||||
<InputNumber @bind-Value="ProductModel.Price" class="console-input" placeholder="0.00" />
|
||||
<ValidationMessage For="@(() => ProductModel.Price)" style="color: #ff5722; font-size: 0.75rem;" />
|
||||
<label class="console-field-label">Copyright Information</label>
|
||||
<InputText @bind-Value="ProductModel.CopyrightInfo" class="console-input" placeholder="e.g., © 1984 William Gibson. All rights reserved." />
|
||||
<ValidationMessage For="@(() => ProductModel.CopyrightInfo)" style="color: #ff5722; font-size: 0.75rem;" />
|
||||
</div>
|
||||
|
||||
<div class="console-field-group">
|
||||
@@ -69,7 +96,6 @@
|
||||
|
||||
@if (string.IsNullOrEmpty(ProductModel.ImageUrl))
|
||||
{
|
||||
/* Clicking anywhere inside this label launches the file system picker */
|
||||
<label for="main-image-file" class="dropzone-interactive-layer">
|
||||
<div class="empty-slot-blueprint">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
||||
@@ -120,7 +146,6 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Clean hidden execution context matched back to label action surfaces */
|
||||
<InputFile OnChange="@(e => HandleThumbnailUpload(e, index))" accept=".png,.jpg,.jpeg,.webp" class="hidden-file-input" id="@($"thumb-file-{index}")" />
|
||||
<label for="@($"thumb-file-{index}")" class="empty-slot-blueprint">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
||||
|
||||
Reference in New Issue
Block a user