Files
blazor-saas-crm/Features/Pipeline/SalesRepresentative/Components/SalesRepresentativePage.razor
T
2026-07-21 14:14:44 +07:00

28 lines
1.3 KiB
Plaintext

@page "/pipeline/sales-representative"
@using Indotalent.Features.Pipeline.SalesRepresentative
@using Indotalent.Features.Pipeline.SalesRepresentative.Cqrs
@using Indotalent.Features.Pipeline.SalesRepresentative.Components
@using MudBlazor
@if (_currentView == ViewMode.Create)
{
<_SalesRepresentativeCreateForm OnCancel="BackToTable" OnSuccess="HandleSuccess" />
}
else if (_currentView == ViewMode.Update || _currentView == ViewMode.View)
{
<_SalesRepresentativeUpdateForm Data="_selectedData!" ReadOnly="@(_currentView == ViewMode.View)" OnCancel="BackToTable" OnSuccess="HandleSuccess" />
}
else
{
<_SalesRepresentativeDataTable OnAdd="() => ShowCreate()" OnEdit="(item) => ShowUpdate(item, false)" OnView="(item) => ShowUpdate(item, true)" />
}
@code {
private enum ViewMode { Table, Create, Update, View }
private ViewMode _currentView = ViewMode.Table;
private UpdateSalesRepresentativeRequest? _selectedData;
private void ShowCreate() => _currentView = ViewMode.Create;
private void ShowUpdate(UpdateSalesRepresentativeRequest data, bool isReadOnly) { _selectedData = data; _currentView = isReadOnly ? ViewMode.View : ViewMode.Update; }
private void BackToTable() { _currentView = ViewMode.Table; _selectedData = null; }
private void HandleSuccess() { _currentView = ViewMode.Table; _selectedData = null; }
}