diff --git a/src/EventHub.Web.Theme/Themes/EventHub/Components/MainNavbar/Default.cshtml b/src/EventHub.Web.Theme/Themes/EventHub/Components/MainNavbar/Default.cshtml
index 34186cd..1419209 100644
--- a/src/EventHub.Web.Theme/Themes/EventHub/Components/MainNavbar/Default.cshtml
+++ b/src/EventHub.Web.Theme/Themes/EventHub/Components/MainNavbar/Default.cshtml
@@ -33,13 +33,15 @@
+ Create an Event
-
+
@if (CurrentUser.IsAuthenticated)
{
-
@@ -67,7 +71,7 @@
@if (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "en")
{
- @CultureInfo.CurrentUICulture.DisplayName
+ @CultureInfo.CurrentUICulture.DisplayName
}
else
{
@@ -103,10 +107,34 @@
@functions{
-
public string GetPageActiveClassOrEmpty(ViewContext viewContext, string pageUrl)
{
- return (viewContext?.RouteData?.Values["page"]?.ToString()?.ToLowerInvariant() == pageUrl.ToLowerInvariant()) ? "active" : viewContext?.RouteData?.Values["page"]?.ToString().ToLowerInvariant();
+ var activeRoute = viewContext?.RouteData.Values["page"]?.ToString()?.ToLowerInvariant();
+ pageUrl = pageUrl.ToLowerInvariant();
+
+ if (activeRoute is null)
+ {
+ return "";
+ }
+
+ switch (pageUrl)
+ {
+ case "/index" when activeRoute == "/index":
+ return activeRoute == pageUrl ? "active" : activeRoute;
+ case "/index":
+ return "";
+ }
+
+ pageUrl = pageUrl.Replace("/index", "");
+ var highLevelActiveRoute = GetHighLevelRoute(activeRoute); // "/organizations/ng-coders" => "organizations"
+
+ return highLevelActiveRoute.Contains(pageUrl) ? "active" : highLevelActiveRoute;
+ }
+
+ private string GetHighLevelRoute(string route)
+ {
+ route.EnsureStartsWith('/');
+ return route.Split("/")[1].EnsureStartsWith('/').EnsureEndsWith('/');
}
}
\ No newline at end of file