Files
taxbaik/TaxBaik.Web/Components/Admin/InquiryTable.razor
kjh2064 1b173376ee
TaxBaik CI/CD / build-and-deploy (push) Failing after 1m53s
refactor: admin ui를 fluent v5와 html 기반으로 전환
2026-06-29 22:37:40 +09:00

79 lines
2.3 KiB
Plaintext

<div class="admin-table-wrap">
<table class="admin-table mt-4">
<thead>
<tr>
<th>이름</th>
<th>전화</th>
<th>분야</th>
<th>상태</th>
<th>메시지</th>
<th>날짜</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var inquiry in filteredInquiries)
{
<tr>
<td>@inquiry.Name</td>
<td>@inquiry.Phone</td>
<td>@inquiry.ServiceType</td>
<td>
<span class="status-pill @GetStatusClass(inquiry.Status)">@GetStatusLabel(inquiry.Status)</span>
</td>
<td>@GetPreview(inquiry.Message)</td>
<td>@inquiry.CreatedAt.ToString("yyyy-MM-dd")</td>
<td>
<a class="site-button secondary" href="@($"/taxbaik/admin/inquiries/{inquiry.Id}")">보기</a>
<a class="site-button secondary" href="@($"/taxbaik/admin/inquiries/{inquiry.Id}/edit")">수정</a>
</td>
</tr>
}
</tbody>
</table>
</div>
@code {
[Parameter, EditorRequired]
public IReadOnlyList<Domain.Entities.Inquiry> Inquiries { get; set; } = [];
[Parameter]
public string Status { get; set; } = "";
private IReadOnlyList<Domain.Entities.Inquiry> filteredInquiries = [];
protected override void OnParametersSet()
{
if (Inquiries == null || Inquiries.Count == 0)
{
filteredInquiries = [];
return;
}
filteredInquiries = string.IsNullOrEmpty(Status)
? Inquiries
: Inquiries.Where(x => x.Status == Status).ToList();
}
private static string GetPreview(string message)
{
if (string.IsNullOrWhiteSpace(message))
return "-";
var trimmed = message.Trim();
return trimmed.Length <= 30 ? trimmed : $"{trimmed[..30]}...";
}
private static string GetStatusClass(string status) => status switch
{
"new" => "warning",
"consulting" => "info",
"contracted" => "success",
"rejected" => "danger",
"closed" => "muted",
_ => "muted"
};
private static string GetStatusLabel(string status) => InquiryStatusMapper.Labels.GetValueOrDefault(status, status);
}