
* Refactoring * Refactoring * Check for a valid email. * Fixed missing character. * Moved logic to the Utilities class. * Rename template .sql file * Modified null and empty string check. * Check for a valid email. * Fixed missing character. * Moved logic to the Utilities class. * Added Favicon support, Progressive Web App support, page title and url support, and private/public user registration options * Refactoring * Refactoring * Check for a valid email. * Moved logic to the Utilities class. Co-authored-by: Aubrey <aubrey.b@treskcow.tech> Co-authored-by: MIchael Atwood <matwood@dragonmastery.com> Co-authored-by: Shaun Walker <shaun.walker@siliqon.com>
45 lines
1.1 KiB
Plaintext
45 lines
1.1 KiB
Plaintext
@namespace Oqtane.Modules.Controls
|
|
@inherits ModuleBase
|
|
|
|
<CascadingValue Value="this">
|
|
<div>
|
|
@foreach (TabPanel tabPanel in _tabPanels)
|
|
{
|
|
<button type="button"
|
|
class="btn @GetButtonClass(tabPanel)"
|
|
@onclick=@( () => ActivateTabPanel(tabPanel) )>
|
|
@tabPanel.Text
|
|
</button>
|
|
}
|
|
</div>
|
|
@ChildContent
|
|
</CascadingValue>
|
|
|
|
@code {
|
|
private List<TabPanel> _tabPanels = new List<TabPanel>();
|
|
|
|
// Next line is needed so we are able to add <TabPanel> components inside
|
|
[Parameter]
|
|
public RenderFragment ChildContent { get; set; }
|
|
|
|
public TabPanel ActiveTabPanel { get; set; }
|
|
|
|
internal void AddTabPanel(TabPanel tabPanel)
|
|
{
|
|
_tabPanels.Add(tabPanel);
|
|
if (_tabPanels.Count == 1)
|
|
ActiveTabPanel = tabPanel;
|
|
StateHasChanged();
|
|
}
|
|
|
|
private string GetButtonClass(TabPanel tabPanel)
|
|
=> tabPanel == ActiveTabPanel
|
|
? "btn-primary"
|
|
: "btn-secondary";
|
|
|
|
private void ActivateTabPanel(TabPanel tabPanel)
|
|
{
|
|
ActiveTabPanel = tabPanel;
|
|
}
|
|
}
|