Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions InfiniLore.InfiniBlazor.GitHubActions.Docs.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@
"src\\InfiniLore.InfiniBlazor.Extensions.ExtraComponents\\InfiniLore.InfiniBlazor.Extensions.ExtraComponents.csproj",

"src\\InfiniLore.InfiniBlazor\\InfiniLore.InfiniBlazor.csproj",
"src\\InfiniLore.InfiniBlazor.Contracts\\InfiniLore.InfiniBlazor.Contracts.csproj",
"src\\InfiniLore.InfiniBlazor.Shared\\InfiniLore.InfiniBlazor.Shared.csproj",
"src\\InfiniLore.InfiniBlazor.SourceGenerators\\InfiniLore.InfiniBlazor.SourceGenerators.csproj",

"docs\\Docs.InfiniBlazor\\Docs.InfiniBlazor.csproj"
]
Expand Down
2 changes: 0 additions & 2 deletions InfiniLore.InfiniBlazor.GitHubActions.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@
"src\\InfiniLore.InfiniBlazor.Extensions.ExtraComponents\\InfiniLore.InfiniBlazor.Extensions.ExtraComponents.csproj",

"src\\InfiniLore.InfiniBlazor\\InfiniLore.InfiniBlazor.csproj",
"src\\InfiniLore.InfiniBlazor.Contracts\\InfiniLore.InfiniBlazor.Contracts.csproj",
"src\\InfiniLore.InfiniBlazor.Shared\\InfiniLore.InfiniBlazor.Shared.csproj",
"src\\InfiniLore.InfiniBlazor.SourceGenerators\\InfiniLore.InfiniBlazor.SourceGenerators.csproj",

"tests\\Tests.InfiniBlazor.Core.Components\\Tests.InfiniBlazor.Core.Components.csproj",
"tests\\Tests.InfiniBlazor.Core.Markdown\\Tests.InfiniBlazor.Core.Markdown.csproj",
Expand Down
2 changes: 0 additions & 2 deletions InfiniLore.InfiniBlazor.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,7 @@
<Project Path="examples\Example.InfiniBlazor.Maui\Example.InfiniBlazor.Maui.csproj" Type="Classic C#" />
</Folder>
<Folder Name="/src/">
<Project Path="src\InfiniLore.InfiniBlazor.Contracts\InfiniLore.InfiniBlazor.Contracts.csproj" Type="Classic C#" />
<Project Path="src\InfiniLore.InfiniBlazor.Shared\InfiniLore.InfiniBlazor.Shared.csproj" Type="Classic C#" />
<Project Path="src\InfiniLore.InfiniBlazor.SourceGenerators\InfiniLore.InfiniBlazor.SourceGenerators.csproj" Type="Classic C#" />
<Project Path="src\InfiniLore.InfiniBlazor\InfiniLore.InfiniBlazor.csproj" Type="Classic C#" />
<File Path="src\Directory.Build.props" />
</Folder>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\InfiniLore.InfiniBlazor.Contracts\InfiniLore.InfiniBlazor.Contracts.csproj" />
<ProjectReference Include="..\..\src\InfiniLore.InfiniBlazor\InfiniLore.InfiniBlazor.csproj" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\InfiniLore.InfiniBlazor.Contracts\InfiniLore.InfiniBlazor.Contracts.csproj" />
<ProjectReference Include="..\..\src\InfiniLore.InfiniBlazor.Extensions.AutoDocumentation\InfiniLore.InfiniBlazor.Extensions.AutoDocumentation.csproj" />
<ProjectReference Include="..\..\src\InfiniLore.InfiniBlazor\InfiniLore.InfiniBlazor.csproj" />
<ProjectReference Include="..\Example.InfiniBlazor.Shared\Example.InfiniBlazor.Shared.csproj" />
Expand Down
2 changes: 0 additions & 2 deletions examples/Example.InfiniBlazor.Client/Program.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// ---------------------------------------------------------------------------------------------------------------------
// Imports
// ---------------------------------------------------------------------------------------------------------------------
using Example.InfiniBlazor.Shared.Themes;
using InfiniLore.InfiniBlazor.AutoDocumentation;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;

Expand All @@ -14,7 +13,6 @@ public static async Task Main(string[] args) {
var builder = WebAssemblyHostBuilder.CreateDefault(args);

builder.Services.AddInfiniBlazor(config => {
config.Theming.RegisterTheme<PrideThemeCollection>();
config.AddAutoDocumentation(static config =>
config.RegisterAutoDocumentationData<AutoDocumenterData_ExampleInfiniBlazorShared>()
);
Expand Down
5 changes: 1 addition & 4 deletions examples/Example.InfiniBlazor.Maui/MauiProgram.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// ---------------------------------------------------------------------------------------------------------------------
// Imports
// ---------------------------------------------------------------------------------------------------------------------
using Example.InfiniBlazor.Shared.Themes;
using InfiniLore.InfiniBlazor.Config;
using Microsoft.Extensions.Logging;
using Serilog;
Expand Down Expand Up @@ -29,9 +28,7 @@ public static MauiApp CreateMauiApp() {
builder.Services.AddMauiBlazorWebView();

builder.Services.AddHttpClient();
builder.AddInfiniBlazor(config => {
config.Theming.RegisterTheme<PrideThemeCollection>();
});
builder.AddInfiniBlazor();

builder.Logging.ClearProviders();
builder.Logging.AddSerilog();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
@* ------------------------------------------------------------------------------------------------------------------ *@
@* Imports
@* ------------------------------------------------------------------------------------------------------------------ *@
@using Example.InfiniBlazor.Shared.Themes
@using InfiniLore.InfiniBlazor
@using InfiniLore.InfiniBlazor.Theming
@using InfiniLore.InfiniBlazor.Theming.ThemeCollections
@using InfiniLore.InfiniBlazor.Toasting
@using Microsoft.Extensions.Logging

@* ------------------------------------------------------------------------------------------------------------------ *@
@* Descriptors
@* ------------------------------------------------------------------------------------------------------------------ *@
@rendermode InfiniRenderModeProvider.InfiniRenderMode
@inherits InfiniNavBarBase
@inject IThemeStateProvider ThemeStateProvider
@inject IThemeProvider ThemeProvider
@inject IToastingProvider ToastingProvider
@inject IVisualDebuggerProvider DebuggerProvider
@inject ILogger<NavBarLeft> Logger
@inject IDialogProvider DialogProvider
@* ------------------------------------------------------------------------------------------------------------------ *@
@* Html
Expand Down Expand Up @@ -139,7 +135,7 @@
/>


@if (ThemeStateProvider.GetState().IsBinaryCollection) {
@if (ThemeProvider.LastKnownThemeEntryData is { CssData.Length: 2 }) {
<InfiniNavToggleButton
Value="@(ToggleState)"
ValueChanged="@OnThemeModeChanged"
Expand Down Expand Up @@ -182,17 +178,19 @@
// Methods
// -----------------------------------------------------------------------------------------------------------------
private async Task SwitchTheme() {
IThemeState state = ThemeStateProvider.GetState();

string? themeCollectionName = state.CollectionName;
(string collectionName, string _) = ThemeProvider.LastKnownThemeSelection;
string themeCollectionName = collectionName;
themeCollectionName = themeCollectionName switch {
DefaultThemeCollection.Name => PrideThemeCollection.Name,
_ => DefaultThemeCollection.Name
"Default" => "Pride",
_ => "Default"
};
Logger.Information("{a}", themeCollectionName);

await ThemeStateProvider.TrySelectCollectionAsync(themeCollectionName);
ToggleState = state.ModeName != state.FirstModeInCollectionName;

ThemeCollectionData? collection = await ThemeProvider.GetThemeCollectionData(themeCollectionName);
if (collection is null) return;

await ThemeProvider.InvokeThemeChangeRequestedAsync(collection.Name, collection.Entries[0].EntryName);
ToggleState = false;

StateHasChanged();
}
Expand Down Expand Up @@ -226,15 +224,27 @@
}

private async Task OnThemeModeChanged() {
if (!await ThemeStateProvider.TrySelectNextModeAsync()) {
Logger.Warning("Could not activate next theme mode");
}
else {
Logger.Information("Activated next theme mode");
}
(string collectionName, string themeName) = ThemeProvider.LastKnownThemeSelection;

ThemeCollectionData? collection = await ThemeProvider.GetThemeCollectionData(collectionName);
ThemeEntryData? entry = await ThemeProvider.GetThemeEntryData(collectionName, themeName);
if (collection is null) return;
if (entry is null) return;

IThemeState state = ThemeStateProvider.GetState();
ToggleState = state.ModeName != state.FirstModeInCollectionName;
int newIndex = -1;
for (int index = 0; index < collection.Entries.Length; index++) {
ThemeEntryData? currentEntry = collection.Entries.ElementAtOrDefault(index);
if (currentEntry != entry) continue;

if (index == collection.Entries.Length - 1) {
newIndex = 0;
break;
}
newIndex = index + 1;
}
if (newIndex == -1) return;
ThemeEntryData newEntry = collection.Entries[newIndex];
await ThemeProvider.InvokeThemeChangeRequestedAsync(collection.Name, newEntry.EntryName);

StateHasChanged();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@
<InfiniTabContent TabName="Tags">
<SectionTags/>
</InfiniTabContent>
<InfiniTabContent TabName="Avatars">
<SectionAvatars/>
</InfiniTabContent>
</InfiniTabContainer>
</InfiniSection>
</InfiniPage>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
@* ------------------------------------------------------------------------------------------------------------------ *@
@* Imports
@* ------------------------------------------------------------------------------------------------------------------ *@
@using InfiniLore.InfiniBlazor
@using InfiniLore.InfiniBlazor.Components.Avatars
@* ------------------------------------------------------------------------------------------------------------------ *@
@* Descriptors
@* ------------------------------------------------------------------------------------------------------------------ *@
@rendermode InfiniRenderModeProvider.InfiniRenderMode
@* ------------------------------------------------------------------------------------------------------------------ *@
@* Html
@* ------------------------------------------------------------------------------------------------------------------ *@

<InfiniHeading3>Avatars</InfiniHeading3>

<div class="flex flex-row flex-wrap gap-2">
<div>
<InfiniAvatar AvatarData="@AvatarData" Size="Size.Xxs"/>
<InfiniAvatar AvatarData="@AvatarData" Size="Size.Xs"/>
<InfiniAvatar AvatarData="@AvatarData" Size="Size.S"/>
<InfiniAvatar AvatarData="@AvatarData" Size="Size.M"/>
<InfiniAvatar AvatarData="@AvatarData" Size="Size.L"/>
<InfiniAvatar AvatarData="@AvatarData" Size="Size.Xl"/>
<InfiniAvatar AvatarData="@AvatarData" Size="Size.Xxl"/>
</div>
<div>
<InfiniAvatar AvatarData="@AvatarOnline" Size="Size.Xxs"/>
<InfiniAvatar AvatarData="@AvatarOnline" Size="Size.Xs"/>
<InfiniAvatar AvatarData="@AvatarOnline" Size="Size.S"/>
<InfiniAvatar AvatarData="@AvatarOnline" Size="Size.M"/>
<InfiniAvatar AvatarData="@AvatarOnline" Size="Size.L"/>
<InfiniAvatar AvatarData="@AvatarOnline" Size="Size.Xl"/>
<InfiniAvatar AvatarData="@AvatarOnline" Size="Size.Xxl"/>
</div>
<div>
<InfiniAvatar AvatarData="@AvatarCustom" Size="Size.Xxs"/>
<InfiniAvatar AvatarData="@AvatarCustom" Size="Size.Xs"/>
<InfiniAvatar AvatarData="@AvatarCustom" Size="Size.S"/>
<InfiniAvatar AvatarData="@AvatarCustom" Size="Size.M"/>
<InfiniAvatar AvatarData="@AvatarCustom" Size="Size.L"/>
<InfiniAvatar AvatarData="@AvatarCustom" Size="Size.Xl"/>
<InfiniAvatar AvatarData="@AvatarCustom" Size="Size.Xxl"/>
</div>
</div>

@* ------------------------------------------------------------------------------------------------------------------ *@
@* Code
@* ------------------------------------------------------------------------------------------------------------------ *@
@code {
private AvatarData AvatarData => new(AvatarStatus.Undefined, null, "/icon.png");
private AvatarData AvatarOnline => new(AvatarStatus.Online, null, "/icon.png");
private AvatarData AvatarCustom => new(AvatarStatus.Custom, null, "/icon.png", "🏳️‍⚧️");
}
Loading