diff --git a/Iceshrimp.Frontend/Core/Services/EmojiService.cs b/Iceshrimp.Frontend/Core/Services/EmojiService.cs new file mode 100644 index 00000000..dad5d76f --- /dev/null +++ b/Iceshrimp.Frontend/Core/Services/EmojiService.cs @@ -0,0 +1,29 @@ +using Iceshrimp.Frontend.Core.Miscellaneous; +using Iceshrimp.Shared.Schemas; +using Microsoft.AspNetCore.Components; + +namespace Iceshrimp.Frontend.Core.Services; + +internal class EmojiService(ApiService api) +{ + [Inject] private ApiService Api { get; set; } = api; + private List? Emojis { get; set; } + + public async Task> GetEmoji() + { + if (Emojis is not null) return Emojis; + try + { + var emoji = await Api.Emoji.GetAllEmoji(); + Emojis = emoji; + return Emojis; + } + catch (ApiException) + { + // FIXME: Implement connection error handling + throw new Exception("Failed to fetch emoji"); + } + } + + +} \ No newline at end of file diff --git a/Iceshrimp.Frontend/Startup.cs b/Iceshrimp.Frontend/Startup.cs index b8e2c286..47f2bb30 100644 --- a/Iceshrimp.Frontend/Startup.cs +++ b/Iceshrimp.Frontend/Startup.cs @@ -22,6 +22,7 @@ builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddAuthorizationCore(); builder.Services.AddCascadingAuthenticationState(); builder.Services.AddBlazoredLocalStorageAsSingleton();