diff --git a/GEmojiSharp.sln b/GEmojiSharp.sln index 7644cbe..4cd6c00 100644 --- a/GEmojiSharp.sln +++ b/GEmojiSharp.sln @@ -21,8 +21,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GEmojiSharp.Blazor", "src\G EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GEmojiSharp.Sample.BlazorWebAssembly", "samples\GEmojiSharp.Sample.BlazorWebAssembly\GEmojiSharp.Sample.BlazorWebAssembly.csproj", "{1BF0F93F-AEEC-4F49-84C8-CD88FA7E8239}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GEmojiSharp.Sample.BlazorServer", "samples\GEmojiSharp.Sample.BlazorServer\GEmojiSharp.Sample.BlazorServer.csproj", "{BD90A65E-9F61-48BF-8885-3505B8C0D299}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GEmojiSharp.DotnetTool", "src\GEmojiSharp.DotnetTool\GEmojiSharp.DotnetTool.csproj", "{D6294653-E1A0-4F02-B97D-9E3149D7A462}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GEmojiSharp.PowerToysRun", "src\GEmojiSharp.PowerToysRun\GEmojiSharp.PowerToysRun.csproj", "{F587ED51-27F6-47EE-AF43-70B82BC8D3ED}" @@ -31,6 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GEmojiSharp.PowerToysRun.Te EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GEmojiSharp.Benchmark", "tests\GEmojiSharp.Benchmark\GEmojiSharp.Benchmark.csproj", "{FDED188E-B80B-475D-9ECA-09A8A2BE091F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GEmojiSharp.Sample.BlazorWeb", "samples\GEmojiSharp.Sample.BlazorWeb\GEmojiSharp.Sample.BlazorWeb.csproj", "{3389CA47-8F04-4666-84DD-FAE7A1E2A032}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -61,10 +61,6 @@ Global {1BF0F93F-AEEC-4F49-84C8-CD88FA7E8239}.Debug|Any CPU.Build.0 = Debug|Any CPU {1BF0F93F-AEEC-4F49-84C8-CD88FA7E8239}.Release|Any CPU.ActiveCfg = Release|Any CPU {1BF0F93F-AEEC-4F49-84C8-CD88FA7E8239}.Release|Any CPU.Build.0 = Release|Any CPU - {BD90A65E-9F61-48BF-8885-3505B8C0D299}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BD90A65E-9F61-48BF-8885-3505B8C0D299}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BD90A65E-9F61-48BF-8885-3505B8C0D299}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BD90A65E-9F61-48BF-8885-3505B8C0D299}.Release|Any CPU.Build.0 = Release|Any CPU {D6294653-E1A0-4F02-B97D-9E3149D7A462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D6294653-E1A0-4F02-B97D-9E3149D7A462}.Debug|Any CPU.Build.0 = Debug|Any CPU {D6294653-E1A0-4F02-B97D-9E3149D7A462}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -81,6 +77,10 @@ Global {FDED188E-B80B-475D-9ECA-09A8A2BE091F}.Debug|Any CPU.Build.0 = Debug|Any CPU {FDED188E-B80B-475D-9ECA-09A8A2BE091F}.Release|Any CPU.ActiveCfg = Release|Any CPU {FDED188E-B80B-475D-9ECA-09A8A2BE091F}.Release|Any CPU.Build.0 = Release|Any CPU + {3389CA47-8F04-4666-84DD-FAE7A1E2A032}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3389CA47-8F04-4666-84DD-FAE7A1E2A032}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3389CA47-8F04-4666-84DD-FAE7A1E2A032}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3389CA47-8F04-4666-84DD-FAE7A1E2A032}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -92,11 +92,11 @@ Global {FBC5D0FB-ECAE-471C-9447-91DB023D0B0E} = {6938AF53-C5C7-478A-9554-6E7A02509432} {748078D9-2705-44E7-A6D9-30976F03D102} = {08210849-A04E-459A-907D-980E559710E6} {1BF0F93F-AEEC-4F49-84C8-CD88FA7E8239} = {6938AF53-C5C7-478A-9554-6E7A02509432} - {BD90A65E-9F61-48BF-8885-3505B8C0D299} = {6938AF53-C5C7-478A-9554-6E7A02509432} {D6294653-E1A0-4F02-B97D-9E3149D7A462} = {08210849-A04E-459A-907D-980E559710E6} {F587ED51-27F6-47EE-AF43-70B82BC8D3ED} = {08210849-A04E-459A-907D-980E559710E6} {F7B52BE0-D70B-4859-84C5-464E009C1799} = {01434E7A-C27D-4094-A3E9-0C322136EFF7} {FDED188E-B80B-475D-9ECA-09A8A2BE091F} = {01434E7A-C27D-4094-A3E9-0C322136EFF7} + {3389CA47-8F04-4666-84DD-FAE7A1E2A032} = {6938AF53-C5C7-478A-9554-6E7A02509432} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4EE2F45B-9E7D-46BE-A6C1-A1ACC12A0DCA} diff --git a/README.md b/README.md index 0ed1a3f..f130396 100644 --- a/README.md +++ b/README.md @@ -262,6 +262,21 @@ Update the `_Imports.razor` file, to enable the component in all Razor views: @using GEmojiSharp.Blazor ``` +> [!NOTE] +> In a Blazor Web App (.NET 8 or later), the component requires an interactive render mode applied either globally to the app or to the component definition. + +Set the global render mode in `App.razor`: + +```cshtml + +``` + +or per page/component: + +```cshtml +@rendermode InteractiveServer +``` + Use the `` component to render emojis: ```html @@ -679,9 +694,9 @@ Change action keyword: The [`samples`](/samples) folder contains... -- `GEmojiSharp.Sample.BlazorServer`, a Blazor Server app -- `GEmojiSharp.Sample.BlazorWebAssembly`, a Blazor WebAssembly app -- `GEmojiSharp.Sample.Web`, a ASP.NET Core web site +- `GEmojiSharp.Sample.BlazorWeb`, a Blazor Web App (InteractiveServer render mode) +- `GEmojiSharp.Sample.BlazorWebAssembly`, a Blazor WebAssembly App +- `GEmojiSharp.Sample.Web`, a ASP.NET Core Web App (Razor Pages) The Blazor WebAssembly app is showcased here: diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Routes.razor b/samples/GEmojiSharp.Sample.BlazorServer/Components/Routes.razor deleted file mode 100644 index d0df781..0000000 --- a/samples/GEmojiSharp.Sample.BlazorServer/Components/Routes.razor +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/App.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/App.razor similarity index 82% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/App.razor rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/App.razor index 73f0b91..d1cb5ee 100644 --- a/samples/GEmojiSharp.Sample.BlazorServer/Components/App.razor +++ b/samples/GEmojiSharp.Sample.BlazorWeb/Components/App.razor @@ -1,4 +1,4 @@ - + @@ -7,7 +7,7 @@ - + diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/MainLayout.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/MainLayout.razor similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/MainLayout.razor rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/MainLayout.razor diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/MainLayout.razor.css b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/MainLayout.razor.css similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/MainLayout.razor.css rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/MainLayout.razor.css diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/NavMenu.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/NavMenu.razor similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/NavMenu.razor rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/NavMenu.razor diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/NavMenu.razor.css b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/NavMenu.razor.css similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/Layout/NavMenu.razor.css rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/Layout/NavMenu.razor.css diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/All.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/All.razor similarity index 97% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/All.razor rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/All.razor index e88bdf1..b5eaa8f 100644 --- a/samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/All.razor +++ b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/All.razor @@ -1,4 +1,5 @@ @page "/all" +@rendermode InteractiveServer All diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/Error.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/Error.razor similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/Error.razor rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/Error.razor diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/Home.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/Home.razor similarity index 97% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/Home.razor rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/Home.razor index 8bba4d2..1efa8b9 100644 --- a/samples/GEmojiSharp.Sample.BlazorServer/Components/Pages/Home.razor +++ b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Pages/Home.razor @@ -1,4 +1,5 @@ @page "/" +@rendermode InteractiveServer Home diff --git a/samples/GEmojiSharp.Sample.BlazorWeb/Components/Routes.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Routes.razor new file mode 100644 index 0000000..f756e19 --- /dev/null +++ b/samples/GEmojiSharp.Sample.BlazorWeb/Components/Routes.razor @@ -0,0 +1,6 @@ + + + + + + diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Components/_Imports.razor b/samples/GEmojiSharp.Sample.BlazorWeb/Components/_Imports.razor similarity index 80% rename from samples/GEmojiSharp.Sample.BlazorServer/Components/_Imports.razor rename to samples/GEmojiSharp.Sample.BlazorWeb/Components/_Imports.razor index 3a175f8..572e74c 100644 --- a/samples/GEmojiSharp.Sample.BlazorServer/Components/_Imports.razor +++ b/samples/GEmojiSharp.Sample.BlazorWeb/Components/_Imports.razor @@ -6,6 +6,6 @@ @using static Microsoft.AspNetCore.Components.Web.RenderMode @using Microsoft.AspNetCore.Components.Web.Virtualization @using Microsoft.JSInterop -@using GEmojiSharp.Sample.BlazorServer -@using GEmojiSharp.Sample.BlazorServer.Components +@using GEmojiSharp.Sample.BlazorWeb +@using GEmojiSharp.Sample.BlazorWeb.Components @using GEmojiSharp.Blazor diff --git a/samples/GEmojiSharp.Sample.BlazorServer/GEmojiSharp.Sample.BlazorServer.csproj b/samples/GEmojiSharp.Sample.BlazorWeb/GEmojiSharp.Sample.BlazorWeb.csproj similarity index 77% rename from samples/GEmojiSharp.Sample.BlazorServer/GEmojiSharp.Sample.BlazorServer.csproj rename to samples/GEmojiSharp.Sample.BlazorWeb/GEmojiSharp.Sample.BlazorWeb.csproj index 59ae145..2817be5 100644 --- a/samples/GEmojiSharp.Sample.BlazorServer/GEmojiSharp.Sample.BlazorServer.csproj +++ b/samples/GEmojiSharp.Sample.BlazorWeb/GEmojiSharp.Sample.BlazorWeb.csproj @@ -2,8 +2,6 @@ net8.0 - enable - enable false diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Program.cs b/samples/GEmojiSharp.Sample.BlazorWeb/Program.cs similarity index 92% rename from samples/GEmojiSharp.Sample.BlazorServer/Program.cs rename to samples/GEmojiSharp.Sample.BlazorWeb/Program.cs index ec2daa6..1f6eac3 100644 --- a/samples/GEmojiSharp.Sample.BlazorServer/Program.cs +++ b/samples/GEmojiSharp.Sample.BlazorWeb/Program.cs @@ -1,4 +1,4 @@ -using GEmojiSharp.Sample.BlazorServer.Components; +using GEmojiSharp.Sample.BlazorWeb.Components; var builder = WebApplication.CreateBuilder(args); diff --git a/samples/GEmojiSharp.Sample.BlazorServer/Properties/launchSettings.json b/samples/GEmojiSharp.Sample.BlazorWeb/Properties/launchSettings.json similarity index 51% rename from samples/GEmojiSharp.Sample.BlazorServer/Properties/launchSettings.json rename to samples/GEmojiSharp.Sample.BlazorWeb/Properties/launchSettings.json index f51cd68..0b082ed 100644 --- a/samples/GEmojiSharp.Sample.BlazorServer/Properties/launchSettings.json +++ b/samples/GEmojiSharp.Sample.BlazorWeb/Properties/launchSettings.json @@ -1,18 +1,28 @@ { + "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "http://localhost:59657", - "sslPort": 44368 + "applicationUrl": "http://localhost:12000", + "sslPort": 44343 } }, "profiles": { - "GEmojiSharp.Sample.BlazorServer": { + "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "https://localhost:5001;http://localhost:5000", + "applicationUrl": "http://localhost:5084", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7225;http://localhost:5084", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/samples/GEmojiSharp.Sample.BlazorServer/appsettings.Development.json b/samples/GEmojiSharp.Sample.BlazorWeb/appsettings.Development.json similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/appsettings.Development.json rename to samples/GEmojiSharp.Sample.BlazorWeb/appsettings.Development.json diff --git a/samples/GEmojiSharp.Sample.BlazorServer/appsettings.json b/samples/GEmojiSharp.Sample.BlazorWeb/appsettings.json similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/appsettings.json rename to samples/GEmojiSharp.Sample.BlazorWeb/appsettings.json diff --git a/samples/GEmojiSharp.Sample.BlazorServer/wwwroot/app.css b/samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/app.css similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/wwwroot/app.css rename to samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/app.css diff --git a/samples/GEmojiSharp.Sample.BlazorServer/wwwroot/bootstrap/bootstrap.min.css b/samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/bootstrap/bootstrap.min.css similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/wwwroot/bootstrap/bootstrap.min.css rename to samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/bootstrap/bootstrap.min.css diff --git a/samples/GEmojiSharp.Sample.BlazorServer/wwwroot/bootstrap/bootstrap.min.css.map b/samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/bootstrap/bootstrap.min.css.map similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/wwwroot/bootstrap/bootstrap.min.css.map rename to samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/bootstrap/bootstrap.min.css.map diff --git a/samples/GEmojiSharp.Sample.BlazorServer/wwwroot/favicon.png b/samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/favicon.png similarity index 100% rename from samples/GEmojiSharp.Sample.BlazorServer/wwwroot/favicon.png rename to samples/GEmojiSharp.Sample.BlazorWeb/wwwroot/favicon.png diff --git a/samples/GEmojiSharp.Sample.BlazorWebAssembly/GEmojiSharp.Sample.BlazorWebAssembly.csproj b/samples/GEmojiSharp.Sample.BlazorWebAssembly/GEmojiSharp.Sample.BlazorWebAssembly.csproj index c83462d..f67ddbf 100644 --- a/samples/GEmojiSharp.Sample.BlazorWebAssembly/GEmojiSharp.Sample.BlazorWebAssembly.csproj +++ b/samples/GEmojiSharp.Sample.BlazorWebAssembly/GEmojiSharp.Sample.BlazorWebAssembly.csproj @@ -2,15 +2,13 @@ net8.0 - enable - enable false - - + + diff --git a/samples/GEmojiSharp.Sample.BlazorWebAssembly/Properties/launchSettings.json b/samples/GEmojiSharp.Sample.BlazorWebAssembly/Properties/launchSettings.json index 9e6fef4..6fe531c 100644 --- a/samples/GEmojiSharp.Sample.BlazorWebAssembly/Properties/launchSettings.json +++ b/samples/GEmojiSharp.Sample.BlazorWebAssembly/Properties/launchSettings.json @@ -1,19 +1,30 @@ { + "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "http://localhost:57516", - "sslPort": 44322 + "applicationUrl": "http://localhost:36558", + "sslPort": 44320 } }, "profiles": { - "GEmojiSharp.Sample.BlazorWebAssembly": { + "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:5001;http://localhost:5000", + "applicationUrl": "http://localhost:5127", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "https://localhost:7220;http://localhost:5127", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/samples/GEmojiSharp.Sample.Web/GEmojiSharp.Sample.Web.csproj b/samples/GEmojiSharp.Sample.Web/GEmojiSharp.Sample.Web.csproj index 6c43dc6..67a9af3 100644 --- a/samples/GEmojiSharp.Sample.Web/GEmojiSharp.Sample.Web.csproj +++ b/samples/GEmojiSharp.Sample.Web/GEmojiSharp.Sample.Web.csproj @@ -2,14 +2,12 @@ net8.0 - enable - enable false - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/samples/GEmojiSharp.Sample.Web/Pages/Error.cshtml.cs b/samples/GEmojiSharp.Sample.Web/Pages/Error.cshtml.cs index d2b9dc5..8cd7368 100644 --- a/samples/GEmojiSharp.Sample.Web/Pages/Error.cshtml.cs +++ b/samples/GEmojiSharp.Sample.Web/Pages/Error.cshtml.cs @@ -1,6 +1,6 @@ +using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; -using System.Diagnostics; namespace GEmojiSharp.Sample.Web.Pages { diff --git a/samples/GEmojiSharp.Sample.Web/Properties/launchSettings.json b/samples/GEmojiSharp.Sample.Web/Properties/launchSettings.json index f216f3d..a0b2111 100644 --- a/samples/GEmojiSharp.Sample.Web/Properties/launchSettings.json +++ b/samples/GEmojiSharp.Sample.Web/Properties/launchSettings.json @@ -1,18 +1,28 @@ { + "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "http://localhost:57240", - "sslPort": 44351 + "applicationUrl": "http://localhost:43525", + "sslPort": 44345 } }, "profiles": { - "GEmojiSharp.Sample.Web": { + "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "https://localhost:5001;http://localhost:5000", + "applicationUrl": "http://localhost:5141", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7068;http://localhost:5141", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }