From 5309f461a2f636fb061a759fc64b3181e889f642 Mon Sep 17 00:00:00 2001 From: "Johnny.Ratton" Date: Wed, 13 Dec 2023 15:23:19 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20de=20l'ajout=20de=20la=20globalisa?= =?UTF-8?q?tion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BlazorProject/Pages/LanguageSelector.razor | 8 +++++ BlazorProject/Pages/LanguageSelector.razor.cs | 36 +++++++++++++++++++ BlazorProject/Pages/List.razor.cs | 11 ++++-- BlazorProject/Program.cs | 2 ++ BlazorProject/_Imports.razor | 3 +- 5 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 BlazorProject/Pages/LanguageSelector.razor create mode 100644 BlazorProject/Pages/LanguageSelector.razor.cs diff --git a/BlazorProject/Pages/LanguageSelector.razor b/BlazorProject/Pages/LanguageSelector.razor new file mode 100644 index 0000000..6023e21 --- /dev/null +++ b/BlazorProject/Pages/LanguageSelector.razor @@ -0,0 +1,8 @@ +
+ +
\ No newline at end of file diff --git a/BlazorProject/Pages/LanguageSelector.razor.cs b/BlazorProject/Pages/LanguageSelector.razor.cs new file mode 100644 index 0000000..164f84c --- /dev/null +++ b/BlazorProject/Pages/LanguageSelector.razor.cs @@ -0,0 +1,36 @@ +using System.Globalization; +using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; + +namespace BlazorProject.Pages; + +public partial class LanguageSelector +{ + private CultureInfo[] supportedLanguages = new [] + { + new CultureInfo("en-US"), + new CultureInfo("fr-FR"), + new CultureInfo("ar-AE"), + }; + + [Inject] + private NavigationManager NavigationManager { get; set; } + + [Inject] + private JSRuntime JsRuntime { get; set; } + + private CultureInfo Culture + { + get => CultureInfo.CurrentCulture; + set + { + if (CultureInfo.CurrentCulture != value) + { + var js = (IJSInProcessRuntime)JsRuntime; + js.InvokeVoid("appCulture.set", value.Name); + NavigationManager.NavigateTo(NavigationManager.Uri, forceLoad: true); + + } + } + } +} \ No newline at end of file diff --git a/BlazorProject/Pages/List.razor.cs b/BlazorProject/Pages/List.razor.cs index 7f5412d..4d13e5f 100644 --- a/BlazorProject/Pages/List.razor.cs +++ b/BlazorProject/Pages/List.razor.cs @@ -68,15 +68,20 @@ public partial class List } } - private void OnDelete(int id) + private async void OnDelete(int id) { var parameters = new ModalParameters(); parameters.Add(nameof(Item.Id), id); var modal = Modal.Show("Delete Confirmation", parameters); - var result = modal.Result; + var result = await modal.Result; - DataService.Delete(id); + if (result.Cancelled) + { + return; + } + + await DataService.Delete(id); // Reload the page NavigationManager.NavigateTo("list", true); diff --git a/BlazorProject/Program.cs b/BlazorProject/Program.cs index 1672370..407b7ca 100644 --- a/BlazorProject/Program.cs +++ b/BlazorProject/Program.cs @@ -1,3 +1,4 @@ +using System.Globalization; using Blazored.LocalStorage; using Blazored.Modal; using Blazorise; @@ -13,6 +14,7 @@ var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.Services.AddBlazoredLocalStorage(); builder.Services.AddBlazoredModal(); builder.Services.AddScoped(); + builder.Services .AddBlazorise() .AddBootstrapProviders() diff --git a/BlazorProject/_Imports.razor b/BlazorProject/_Imports.razor index 1fc356d..35cfc74 100644 --- a/BlazorProject/_Imports.razor +++ b/BlazorProject/_Imports.razor @@ -10,4 +10,5 @@ @using BlazorProject.Layout @using Blazorise.DataGrid @using Blazored.Modal -@using Blazored.Modal.Services \ No newline at end of file +@using Blazored.Modal.Services +@using Microsoft.Extensions.Localization \ No newline at end of file