diff --git a/src/MASA.OfficialWebsite.WebApp/Components/App.razor b/src/MASA.OfficialWebsite.WebApp/Components/App.razor
index 7fe78c4..ebf01f4 100644
--- a/src/MASA.OfficialWebsite.WebApp/Components/App.razor
+++ b/src/MASA.OfficialWebsite.WebApp/Components/App.razor
@@ -8,6 +8,7 @@
+
@@ -24,7 +25,6 @@
-
diff --git a/src/MASA.OfficialWebsite.WebApp/Components/Layout/AppBar.razor b/src/MASA.OfficialWebsite.WebApp/Components/Layout/AppBar.razor
index 877dc1a..7be980e 100644
--- a/src/MASA.OfficialWebsite.WebApp/Components/Layout/AppBar.razor
+++ b/src/MASA.OfficialWebsite.WebApp/Components/Layout/AppBar.razor
@@ -1,10 +1,8 @@
-@inject MasaBlazor MasaBlazor
-@using Microsoft.AspNetCore.Components.Sections
+@using Microsoft.AspNetCore.Components.Sections
diff --git a/src/MASA.OfficialWebsite.WebApp/Components/Layout/DesktopAppBar.razor b/src/MASA.OfficialWebsite.WebApp/Components/Layout/DesktopAppBar.razor
index b9c4c7a..cfa9ecb 100644
--- a/src/MASA.OfficialWebsite.WebApp/Components/Layout/DesktopAppBar.razor
+++ b/src/MASA.OfficialWebsite.WebApp/Components/Layout/DesktopAppBar.razor
@@ -1,8 +1,27 @@
-
-
-
+
+
+
+
关于我们
@@ -13,4 +32,18 @@
[Parameter] public List StudyNavItems { get; set; } = new();
+ [SupplyParameterFromQuery(Name = "nav-menu")]
+ private string? QueryValue { get; set; }
+
+ private static string[] navMenuInteractiveValues = { "product", "study" };
+
+ private bool IsProductNavMenu => QueryValue?.Equals("product", StringComparison.OrdinalIgnoreCase) is true;
+
+ private Dictionary ProductNavMenuParameters => new()
+ {
+ { nameof(NavMenu.Items), IsProductNavMenu ? ProductNavItems : StudyNavItems },
+ };
+
+ private int NavMenuLeft => IsProductNavMenu ? -388 : -286;
+
}
diff --git a/src/MASA.OfficialWebsite.WebApp/Components/Layout/FollowUsBtn.razor b/src/MASA.OfficialWebsite.WebApp/Components/Layout/FollowUsBtn.razor
new file mode 100644
index 0000000..39952b9
--- /dev/null
+++ b/src/MASA.OfficialWebsite.WebApp/Components/Layout/FollowUsBtn.razor
@@ -0,0 +1,16 @@
+@rendermode @(new InteractiveServerRenderMode(prerender: false))
+@inherits MInteractivePopup
+
+
+
![](@Image)
+
+
+@code {
+
+ [Parameter] [EditorRequired] public string Image { get; set; } = null!;
+
+ [Parameter] public string? Style { get; set; }
+
+ [Parameter] public string? Class { get; set; }
+
+}
diff --git a/src/MASA.OfficialWebsite.WebApp/Components/Layout/MainLayout.razor b/src/MASA.OfficialWebsite.WebApp/Components/Layout/MainLayout.razor
index 6c752dd..8c17629 100644
--- a/src/MASA.OfficialWebsite.WebApp/Components/Layout/MainLayout.razor
+++ b/src/MASA.OfficialWebsite.WebApp/Components/Layout/MainLayout.razor
@@ -11,9 +11,9 @@
-
-
-
+
+
+
@@ -128,8 +128,20 @@