Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
fa63b1a
fix: _ci.yaml
panoukos41 May 27, 2024
7be8a69
update: Dependencies and root files
panoukos41 Jun 2, 2024
587dffd
refactor: Button component
panoukos41 Jun 2, 2024
4695c97
add: ShellContext with Title and use it
panoukos41 Jun 2, 2024
6fa432c
add: Annular.Translate
panoukos41 Jun 2, 2024
58ab712
add: Dropdown component
panoukos41 Jun 2, 2024
2181fa3
add: Settings and About pages + home links
panoukos41 Jun 2, 2024
a31239c
add: NotFound component
panoukos41 Jun 2, 2024
6fe1641
add: LottiePlayter component
panoukos41 Jun 2, 2024
8b938a4
update: Index.html to include lottie-player
panoukos41 Jun 2, 2024
f15277c
refactor: TabPage.razor
panoukos41 Jun 2, 2024
11104e1
update(module): core
panoukos41 Jun 15, 2024
171a15e
update: dependencies
panoukos41 Jun 15, 2024
9ffba65
tailwind(css): input updates
panoukos41 Jun 15, 2024
fca3935
use: Annular Translate and new forms
panoukos41 Jun 15, 2024
752f410
add: Directory.Packages.props
panoukos41 Jul 27, 2024
a009d0b
update npm dependenceis
panoukos41 Jul 27, 2024
8ea0a92
add: Theme support
panoukos41 Jul 27, 2024
6e734ef
fix: navigation lings
panoukos41 Jul 27, 2024
09a7fa6
implement settings page
panoukos41 Jul 27, 2024
f4acd14
update: Core submodule
panoukos41 Jul 28, 2024
499a33f
chore: refactor usings and pages from Core update
panoukos41 Jul 28, 2024
c0b688f
fix(TabPage): overflowing number in bar
panoukos41 Jul 28, 2024
68a6e72
add(index.html): meta color-scheme
panoukos41 Jul 28, 2024
5261faa
fix(index.html): meta tag
panoukos41 Jul 28, 2024
9088b0f
refactor(tailwind): change color scheme
panoukos41 Jul 28, 2024
bbc5a17
update: core sub-module
panoukos41 Aug 9, 2024
0e31fcf
update dependencies
panoukos41 Aug 9, 2024
311b141
refactor: Tabs and People data and ViewModels
panoukos41 Aug 9, 2024
b46e02d
add: IndexedDb support and Migration
panoukos41 Aug 9, 2024
d3ba008
refactor: Home and Tab layouts
panoukos41 Aug 9, 2024
e132a69
update: IndexedDb dependency
panoukos41 Aug 9, 2024
8dc10be
updates
panoukos41 Aug 10, 2024
a0ef599
refactor(TabPage): Product Details Modal
panoukos41 Aug 10, 2024
4590c28
fix(TabProductViewModel): participate method to return correct observ…
panoukos41 Aug 10, 2024
fd8a983
chore: remove unused code
panoukos41 Aug 10, 2024
0ae1302
refactor(TabPage): Person Details Modal
panoukos41 Aug 10, 2024
05b2ad2
update: core submodule
panoukos41 Aug 17, 2024
b229330
chore: update dependencies
panoukos41 Aug 17, 2024
a3fb6d2
minor UI changes
panoukos41 Aug 17, 2024
2f3e92b
refactor: root project files
panoukos41 Oct 14, 2024
dfbf9c4
fix: Dropdown colors
panoukos41 Nov 3, 2024
ff31502
refactor(home): remove buttons and make list item an a tag
panoukos41 Nov 3, 2024
a6a86d5
update dependencies
panoukos41 Nov 3, 2024
ebb26b0
refactor: tailwind config
panoukos41 Nov 3, 2024
edd1031
fix: lang localstorage item
panoukos41 Nov 3, 2024
339d1ca
update translations
panoukos41 Nov 3, 2024
26275e8
refactor(settings): Implement new preferences API
panoukos41 Nov 3, 2024
2ef8972
refactor: launchSettings.json
panoukos41 Nov 3, 2024
e574f74
refactor(workflow): to use global.json file instead of hardcoded value
panoukos41 Nov 5, 2024
569018e
update(workflows): to use latest dotnet setup action
panoukos41 Nov 5, 2024
6f6bfa1
fix(global.json): version
panoukos41 Nov 6, 2024
31bc238
refactor: pipeline with global.json version
panoukos41 Nov 7, 2024
debc77f
fix(ci)
panoukos41 Nov 7, 2024
e1871ea
fix(ci)
panoukos41 Nov 7, 2024
73e723a
update dependencies
panoukos41 Nov 9, 2024
f778a6c
update slnx with workflow files
panoukos41 Nov 9, 2024
5617728
Refactor root project files
panoukos41 Feb 28, 2025
e3062bb
Full refactor of UI and Settings page
panoukos41 Feb 28, 2025
0d6691e
Refactor of tests to build for now
panoukos41 Feb 28, 2025
f89ea29
Refactor Workflows
panoukos41 Feb 28, 2025
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
58 changes: 58 additions & 0 deletions .github/workflows/_.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: CI/CD
env: { DOTNET_NOLOGO: true }
on:
workflow_call:
inputs:
publish: { type: boolean, default: false, description: Publish application }
environment: { type: string, default: dev, description: Choose publish environment <dev|staging|prod> }
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: 'true'

- name: Read .NET Version
shell: pwsh
id: dotnet-version
run: |
$version = (Get-Content .\global.json -Raw | ConvertFrom-Json).sdk.version.TrimEnd('0') + 'x'
"version=$version" | Out-File -FilePath $env:GITHUB_OUTPUT -Append

- name: Setup .NET
uses: actions/setup-dotnet@v4
with: { dotnet-version: "${{ steps.dotnet-version.outputs.version }}" }

- name: Setup tools
run: |
dotnet workload install wasm-tools
npm install -g tailwindcss

- name: Restore
working-directory: src/TabKeeper.UI.Wasm
run: |
npm install
dotnet restore

- name: Build
working-directory: src/TabKeeper.UI.Wasm
run: dotnet build -c Release --no-restore

- name: Publish
if: ${{ inputs.publish }}
working-directory: src/TabKeeper.UI.Wasm
shell: pwsh
run: |
.\css.ps1 -publish
dotnet publish --no-restore --no-build

- name: Publish to Cloudflare Pages
if: ${{ inputs.publish }}
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy artifacts/src/publish/TabKeeper.UI.Wasm/release/wwwroot --project-name=tab-keeper --branch ${{ inputs.environment }}
65 changes: 0 additions & 65 deletions .github/workflows/_ci.yaml

This file was deleted.

25 changes: 12 additions & 13 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
name: Build

env:
DOTNET_NOLOGO: true

name: build
env: { DOTNET_NOLOGO: true }
on:
workflow_dispatch:
pull_request:
branches: [main, dev]
branches:
- main
paths:
- "version.json"
- "src/**/*.cs"
- "src/**/*.csproj"

- src/**
- test/**
types:
- opened
- ready_for_review
- review_requested
jobs:
Build:
uses: panoukos41/TabKeeper/.github/workflows/_ci.yaml@dev
pipeline:
uses: panoukos41/TabKeeper/.github/workflows/_.yaml@main
39 changes: 24 additions & 15 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
name: Publish

env:
DOTNET_NOLOGO: true

name: publish
env: { DOTNET_NOLOGO: true }
on:
workflow_dispatch:
push:
branches: [main, dev]
branches:
- main
tags:
- v[0-9]+.[0-9]+.[0-9]+ # Only matches vX.X.X where X is a number
paths:
- "version.json"
- "src/**/*.cs"
- "src/**/*.csproj"

- src/**
- test/**
jobs:
Build:
uses: panoukos41/TabKeeper/.github/workflows/_ci.yaml@dev
with:
publish: true
secrets: inherit
pipeline:
runs-on: ubuntu-latest
steps:
- name: Determine if prod
if: startsWith(github.ref, 'refs/tags/v')
run: echo "environment=main" >> $GITHUB_ENV

- name: Determine if dev
if: startsWith(github.ref, 'refs/heads/main')
run: echo "environment=dev" >> $GITHUB_ENV

- name: Publish
uses: panoukos41/TabKeeper/.github/workflows/_.yaml@main
with:
publish: true
environment: $environment
31 changes: 13 additions & 18 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,36 +1,31 @@
<Project>
<!--Build-->

<PropertyGroup>
<LangVersion>preview</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>true</ImplicitUsings>
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
<Configuration Condition="$(Configuration) == ''">Debug</Configuration>
<NoWarn>$(NoWarn);CS8509;IDE0039;IDE0130;IDE0290;IDE0060;RZ10012</NoWarn>
<EnablePreviewFeatures>True</EnablePreviewFeatures>
<NoWarn>$(NoWarn);CS8509;IDE0039;IDE0130;IDE0290;IDE0060;RZ10012;IDE0052;BL0007;CA1816</NoWarn>
<WarningsAsErrors>$(WarningsAsErrors);RZ2012;</WarningsAsErrors>

<ArtifactsPath>$(MSBuildThisFileDirectory)artifacts/default</ArtifactsPath>
<ArtifactsPath Condition="$(MSBuildProjectDirectory.Contains('tests'))">$(MSBuildThisFileDirectory)artifacts/tests</ArtifactsPath>
<ArtifactsPath Condition="$(MSBuildProjectDirectory.Contains('tools'))">$(MSBuildThisFileDirectory)artifacts/tools</ArtifactsPath>
<ArtifactsPath Condition="$(MSBuildProjectDirectory.Contains('samples'))">$(MSBuildThisFileDirectory)artifacts/samples</ArtifactsPath>
<ArtifactsPath Condition="$(MSBuildProjectDirectory.Contains('src'))">$(MSBuildThisFileDirectory)artifacts/src</ArtifactsPath>
<ArtifactsPath>$([System.IO.Path]::Combine(
$(MSBuildThisFileDirectory),
"artifacts",
$([MSBuild]::MakeRelative($(MSBuildThisFileDirectory),$(MSBuildProjectDirectory)).Replace("$(MSBuildProjectName)", '').TrimEnd('/'))
))</ArtifactsPath>
<UseArtifactsOutput>true</UseArtifactsOutput>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IsPackable>false</IsPackable>
</PropertyGroup>

<!-- Repository -->
<PropertyGroup>
<Authors>Panagiotis Athanasiou</Authors>
<Owners>panoukos41</Owners>
<Copyright>Copyright (c) 2023 $(Authors)</Copyright>
<RepositoryUrl></RepositoryUrl>
<Copyright>Copyright (c) $([System.DateTimeOffset]::UtcNow.ToString("yyyy")) $(Authors)</Copyright>
<RepositoryUrl>https://www.github.com/panoukos41/TabKeeper</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<RepositoryLicense>MIT</RepositoryLicense>
<RepositoryDescription></RepositoryDescription>
<RepositoryTags></RepositoryTags>
</PropertyGroup>

<ItemGroup>
<!-- Versioning -->
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.133" PrivateAssets="All" />
</ItemGroup>

</Project>
41 changes: 41 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<Project>
<!---->
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<!---->
<!-- Packagges -->
<ItemGroup>
<PackageVersion Include="Annular.Translate" Version="0.1.7-dev" />
<PackageVersion Include="Blazored.LocalStorage" Version="4.5.0" />
<PackageVersion Include="DynamicData" Version="9.1.2" />
<PackageVersion Include="Flurl" Version="4.0.0" />
<PackageVersion Include="Ignis.Components.HeadlessUI" Version="1.4.0" />
<PackageVersion Include="Ignis.Components.Reactivity" Version="1.4.0" />
<PackageVersion Include="Ignis.Components.WebAssembly" Version="1.4.0" />
<PackageVersion Include="Ignis.Utils" Version="1.4.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.2" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.2" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
<PackageVersion Include="OneOf" Version="3.0.271" />
<PackageVersion Include="P41.FontAwesome" Version="6.6.0.2" />
<PackageVersion Include="System.Reactive" Version="6.0.1" />
</ItemGroup>
<!---->
<!-- Testing -->
<ItemGroup>
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.13.1" />
<PackageVersion Include="TUnit" Version="0.10.28" />
<PackageVersion Include="Verify.SourceGenerators" Version="2.5.0" />
<PackageVersion Include="Verify.TUnit" Version="28.10.1" />
</ItemGroup>
<!---->
<!-- Versioning & SourceLink -->
<ItemGroup>
<GlobalPackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<GlobalPackageReference Include="GitVersion.MSBuild" Version="6.1.0" />
</ItemGroup>
<!---->
</Project>
8 changes: 8 additions & 0 deletions GitVersion.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
workflow: GitHubFlow/v1
branches:
main:
label: beta
increment: Patch
feature:
label: alpha
increment: Minor
2 changes: 1 addition & 1 deletion TabKeeper.sln
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "root", "root", "{689C1AA2-E
.gitignore = .gitignore
.gitmodules = .gitmodules
Directory.Build.props = Directory.Build.props
Directory.Packages.props = Directory.Packages.props
global.json = global.json
LICENSE = LICENSE
publish.ps1 = publish.ps1
Expand Down Expand Up @@ -94,4 +95,3 @@ Global
SolutionGuid = {26EECD34-43C6-4F7A-A567-0F8AC7F82094}
EndGlobalSection
EndGlobal
bal
41 changes: 11 additions & 30 deletions TabKeeper.slnx
Original file line number Diff line number Diff line change
@@ -1,35 +1,16 @@
<Solution>
<Folder Name="/tests/">
<Project Path="tests\TabKeeper.UI.UnitTests\TabKeeper.UI.UnitTests.csproj" />
</Folder>
<Folder Name="/src/">
<Project Path="src\TabKeeper.UI.Wasm\TabKeeper.UI.Wasm.csproj" />
<Project Path="src\TabKeeper.UI\TabKeeper.UI.csproj" />
<Project Path="src\TabKeeper\TabKeeper.csproj" />
</Folder>
<Folder Name="/src-modules/">
<Project Path="src-modules\Core\src\Core.App\Core.App.csproj" />
<Project Path="src-modules\Core\src\Core.Blazor\Core.Blazor.csproj" />
<Project Path="src-modules\Core\src\Core.Web\Core.Web.csproj" />
<Project Path="src-modules\Core\src\Core\Core.csproj" />
<Project Path="src-modules/Core/src/Core.App/Core.App.csproj" />
<Project Path="src-modules/Core/src/Core.Blazor/Core.Blazor.csproj" />
<Project Path="src-modules/Core/src/Core.Web/Core.Web.csproj" />
<Project Path="src-modules/Core/src/Core/Core.csproj" />
</Folder>
<Folder Name="/root/">
<File Path=".editorconfig" />
<File Path=".gitattributes" />
<File Path=".gitignore" />
<File Path=".gitmodules" />
<File Path="Directory.Build.props" />
<File Path="global.json" />
<File Path="LICENSE" />
<File Path="publish.ps1" />
<File Path="README.md" />
<File Path="version.json" />
<Folder Name="/src/">
<Project Path="src/TabKeeper.UI.Wasm/TabKeeper.UI.Wasm.csproj" />
<Project Path="src/TabKeeper.UI/TabKeeper.UI.csproj" />
<Project Path="src/TabKeeper/TabKeeper.csproj" />
</Folder>
</Solution>th="Directory.Build.props" />
<File Path="global.json" />
<File Path="LICENSE" />
<File Path="publish.ps1" />
<File Path="README.md" />
<File Path="version.json" />
<Folder Name="/tests/">
<Project Path="tests/TabKeeper.UI.UnitTests/TabKeeper.UI.UnitTests.csproj" />
</Folder>
</Solution>
</Solution>
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "8.0.0",
"version": "9.0.0",
"rollForward": "latestMinor",
"allowPrerelease": false
}
Expand Down
2 changes: 1 addition & 1 deletion src-modules/Core
Submodule Core updated 99 files
+1 −0 Core.sln
+1 −8 Directory.Build.props
+41 −0 Directory.Packages.props
+1 −1 src/Core.App.MongoDb/Core.App.MongoDb.csproj
+3 −3 src/Core.App/Core.App.csproj
+40 −0 src/Core.Blazor/Abstractions/CoreComponent.cs
+32 −0 src/Core.Blazor/Abstractions/CoreRxComponent.cs
+12 −0 src/Core.Blazor/Abstractions/IComponentWithAttributes.cs
+60 −0 src/Core.Blazor/Abstractions/IComponentWithAttributesMixins.cs
+38 −0 src/Core.Blazor/Common/Mixins/IJSInProcessRuntimeExtensions.cs
+0 −73 src/Core.Blazor/Components/CoreComponent.cs
+0 −58 src/Core.Blazor/Components/CoreRxComponent.cs
+53 −0 src/Core.Blazor/Components/Forms/RxFormGroup.cs
+52 −0 src/Core.Blazor/Components/Forms/RxInput.razor
+148 −0 src/Core.Blazor/Components/Forms/RxInputBase.cs
+33 −0 src/Core.Blazor/Components/Forms/RxInputCheckbox.razor
+89 −0 src/Core.Blazor/Components/Forms/RxOutputErrors.razor
+3 −4 src/Core.Blazor/Core.Blazor.csproj
+0 −35 src/Core.Blazor/ExampleJsInterop.cs
+37 −0 src/Core.Blazor/Preferences/Abstract/EditNumberPreferenceComponentBase.razor
+7 −0 src/Core.Blazor/Preferences/Abstract/EditNumberPreferenceComponentBase.razor.cs
+36 −0 src/Core.Blazor/Preferences/Abstract/PreferenceCollectionComponentBase.cs
+23 −0 src/Core.Blazor/Preferences/Abstract/PreferenceComponentBase.cs
+22 −0 src/Core.Blazor/Preferences/Abstract/PreferenceValueComponentBase.cs
+7 −0 src/Core.Blazor/Preferences/Components/EditDecimalPreferenceComponent.razor.cs
+7 −0 src/Core.Blazor/Preferences/Components/EditDoublePreferenceComponent.razor.cs
+7 −0 src/Core.Blazor/Preferences/Components/EditIntPreferenceComponent.razor.cs
+7 −0 src/Core.Blazor/Preferences/Components/EditLongPreferenceComponent.razor.cs
+23 −0 src/Core.Blazor/Preferences/Components/EditTextPreferenceComponent.razor
+29 −0 src/Core.Blazor/Preferences/Components/ListBoxPreferenceComponent.razor
+23 −0 src/Core.Blazor/Preferences/Components/PreferenceCategoryComponent.razor
+1 −0 src/Core.Blazor/Preferences/Components/SwitchPreferenceComponent.razor
+19 −0 src/Core.Blazor/Preferences/Pages/PreferenceScreenPage.razor
+6 −0 src/Core.Blazor/Preferences/_imports.razor
+562 −0 src/Core.Blazor/Reactive/Forms/Abstract/AbstractControl.cs
+10 −0 src/Core.Blazor/Reactive/Forms/Abstract/IValidationError.cs
+16 −0 src/Core.Blazor/Reactive/Forms/Events/ControlEvent.cs
+16 −0 src/Core.Blazor/Reactive/Forms/Events/PristineChangeEvent.cs
+17 −0 src/Core.Blazor/Reactive/Forms/Events/StatusChangeEvent.cs
+16 −0 src/Core.Blazor/Reactive/Forms/Events/TouchedChangeEvent.cs
+27 −0 src/Core.Blazor/Reactive/Forms/Events/ValueChangeEvent.cs
+9 −0 src/Core.Blazor/Reactive/Forms/Extensions/IObservableExtensions.cs
+204 −0 src/Core.Blazor/Reactive/Forms/FormArray.cs
+54 −0 src/Core.Blazor/Reactive/Forms/FormControl.cs
+248 −0 src/Core.Blazor/Reactive/Forms/FormGroup.cs
+132 −0 src/Core.Blazor/Reactive/Forms/FormGroupMixins.cs
+50 −0 src/Core.Blazor/Reactive/Forms/Primitives/AbstractControlEntry.cs
+28 −0 src/Core.Blazor/Reactive/Forms/Primitives/ControlStatus.cs
+91 −0 src/Core.Blazor/Reactive/Forms/Primitives/ValidationError.cs
+55 −0 src/Core.Blazor/Reactive/Forms/Primitives/ValidationErrorCollection.cs
+83 −0 src/Core.Blazor/Reactive/Forms/Primitives/ValidatorEntry.cs
+54 −0 src/Core.Blazor/Reactive/Forms/Validators.cs
+ src/Core.Blazor/wwwroot/background.png
+0 −6 src/Core.Blazor/wwwroot/exampleJsInterop.js
+3 −3 src/Core.Web/Core.Web.csproj
+71 −0 src/Core/Abstractions/DictionaryCollection.cs
+12 −0 src/Core/Abstractions/IDisposeWith.cs
+6 −0 src/Core/Abstractions/ISnapshot.cs
+14 −0 src/Core/Abstractions/ISnapshotCode.cs
+12 −1 src/Core/Common/JsonConverters/UuidJsonConverter.cs
+18 −0 src/Core/Common/Mixins/EnumerableMixins.cs
+10 −1 src/Core/Common/Mixins/IDisposableMixins.cs
+12 −0 src/Core/Common/Mixins/KeyedCollectionMixins.cs
+30 −0 src/Core/Common/Mixins/SystemMixins.cs
+7 −6 src/Core/Core.csproj
+112 −0 src/Core/Nothing.cs
+171 −0 src/Core/Option.cs
+4 −1 src/Core/Options.cs
+29 −0 src/Core/Preferences/Abstract/PreferenceBase.cs
+98 −0 src/Core/Preferences/Abstract/PreferenceCollectionBase.cs
+129 −0 src/Core/Preferences/Abstract/PreferenceValueBase.cs
+38 −0 src/Core/Preferences/Builders/Abstract/PreferenceBuilderBase.cs
+18 −0 src/Core/Preferences/Builders/Abstract/PreferenceCollectionBuilderBase.cs
+28 −0 src/Core/Preferences/Builders/Abstract/PreferenceValueBuilderBase.cs
+44 −0 src/Core/Preferences/Builders/EditNumberPreferenceBuilder.cs
+33 −0 src/Core/Preferences/Builders/EditTextPreferenceBuilder.cs
+53 −0 src/Core/Preferences/Builders/ListBoxPreferenceBuilder.cs
+35 −0 src/Core/Preferences/Builders/PagePreferenceBuilder.cs
+43 −0 src/Core/Preferences/Builders/PreferenceCategoryBuilder.cs
+20 −0 src/Core/Preferences/Builders/PreferenceScreenBuilder.cs
+33 −0 src/Core/Preferences/Builders/SwitchPreferenceBuilder.cs
+23 −0 src/Core/Preferences/Controls/EditNumberPreference.cs
+13 −0 src/Core/Preferences/Controls/EditTextPreference.cs
+53 −0 src/Core/Preferences/Controls/ListBoxPreference.cs
+14 −0 src/Core/Preferences/Controls/PagePreference.cs
+11 −0 src/Core/Preferences/Controls/PreferenceCategory.cs
+90 −0 src/Core/Preferences/Controls/PreferenceScreen.cs
+13 −0 src/Core/Preferences/Controls/SwitchPreference.cs
+97 −0 src/Core/Preferences/PreferenceManager.cs
+74 −23 src/Core/Problem.cs
+34 −6 src/Core/Reactive/RxObject.cs
+139 −33 src/Core/Result.cs
+11 −0 src/Core/Void.cs
+2 −1 tests/Core.UnitTests/Abstractions/IValidTests.cs
+5 −11 tests/Core.UnitTests/Core.UnitTests.csproj
+0 −67 tests/Core.UnitTests/Reactive/ProductViewModelTests.cs
+67 −0 tests/Core.UnitTests/Reactive/RxObjectTests.cs
+57 −0 tests/Core.UnitTests/ResultTests.cs
+0 −1 tests/Core.UnitTests/_usings.cs
10 changes: 6 additions & 4 deletions src/TabKeeper.UI.Wasm/App.razor
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
@using TabKeeper.Layout
@using System.Runtime.InteropServices.JavaScript
@using TabKeeper.Layout

@inject TranslateService translate

<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(ShellLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
<NotFound>
<PageTitle>Not found</PageTitle>
<PageTitle>@("general.not-found.title" | translate)</PageTitle>
<LayoutView Layout="@typeof(ShellLayout)">
<p role="alert">Sorry, there's nothing at this address.</p>
<p role="alert">@("general.not-found.description" | translate)</p>
</LayoutView>
</NotFound>
</Router>
Loading