Files
blazor-hrm/Features/Payroll/Income/Components/IncomePage.razor
T
2026-07-21 14:08:10 +07:00

31 lines
1.1 KiB
Plaintext

@page "/payroll/income"
@using Indotalent.Features.Payroll.Income.Cqrs
@using MudBlazor
@if (_currentView == ViewMode.Create)
{
<_IncomeCreateForm OnCancel="BackToTable" OnSuccess="HandleSuccess" />
}
else if (_currentView == ViewMode.Update || _currentView == ViewMode.View)
{
<_IncomeUpdateForm Data="_selectedData!" ReadOnly="@(_currentView == ViewMode.View)" OnCancel="BackToTable" OnSuccess="HandleSuccess" />
}
else
{
<_IncomeDataTable 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 UpdateIncomeRequest? _selectedData;
private void ShowCreate() => _currentView = ViewMode.Create;
private void ShowUpdate(UpdateIncomeRequest data, bool readOnly)
{
_selectedData = data;
_currentView = readOnly ? ViewMode.View : ViewMode.Update;
}
private void BackToTable() => _currentView = ViewMode.Table;
private void HandleSuccess() => _currentView = ViewMode.Table;
}