From cfc38557d149dc9bfba0a6a650336d1f161e2bc6 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Wed, 24 Jul 2024 18:28:12 +0200 Subject: [PATCH] Fix previous URL. --- .../Json/System/PolymorphicConverter.cs | 6 +++-- .../Schemas/SchemasChatToolTests.cs | 6 ++--- .../services/previous-url.service.ts | 24 +++++++++++++------ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/backend/src/Squidex.Infrastructure/Json/System/PolymorphicConverter.cs b/backend/src/Squidex.Infrastructure/Json/System/PolymorphicConverter.cs index 82e11f9d7..a268be7bb 100644 --- a/backend/src/Squidex.Infrastructure/Json/System/PolymorphicConverter.cs +++ b/backend/src/Squidex.Infrastructure/Json/System/PolymorphicConverter.cs @@ -10,6 +10,8 @@ using System.Text.Json.Serialization; using System.Text.Json.Serialization.Metadata; using Squidex.Infrastructure.Reflection; +#pragma warning disable MA0084 // Local variables should not hide other symbols + namespace Squidex.Infrastructure.Json.System; public sealed class PolymorphicConverter : JsonConverter where T : class @@ -38,8 +40,8 @@ public sealed class PolymorphicConverter : JsonConverter where T : class { if (typeRegistry.TryGetConfig(baseType, out var config) && config.TryGetName(typeInfo.Type, out var typeName)) { - var discriminiatorName = config.DiscriminatorProperty ?? Constants.DefaultDiscriminatorProperty; - var discriminatorField = typeInfo.CreateJsonPropertyInfo(typeof(string), discriminiatorName); + var discriminatorName = config.DiscriminatorProperty ?? Constants.DefaultDiscriminatorProperty; + var discriminatorField = typeInfo.CreateJsonPropertyInfo(typeof(string), discriminatorName); discriminatorField.Get = x => { diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/SchemasChatToolTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/SchemasChatToolTests.cs index 061d17086..34750d050 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/SchemasChatToolTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/SchemasChatToolTests.cs @@ -31,13 +31,13 @@ public class SchemasChatToolTests : GivenContext BaseContext = CreateContext(PermissionIds.ForApp(PermissionIds.AppSchemasRead, App.Name).Id) }; - var tool = await sut.GetToolsAsync(chatContext, default).FirstOrDefaultAsync(); + var tool = await sut.GetToolsAsync(chatContext, CancellationToken).FirstOrDefaultAsync(CancellationToken); Assert.NotNull(tool); Assert.Equal("schemas", tool.Spec.Name); Assert.Equal("Schemas", tool.Spec.DisplayName); - var result = await tool.ExecuteAsync(Activator.CreateInstance(), default); + var result = await tool.ExecuteAsync(Activator.CreateInstance(), CancellationToken); Assert.Contains(Schema.Name, result, StringComparison.Ordinal); @@ -56,7 +56,7 @@ public class SchemasChatToolTests : GivenContext BaseContext = FrontendContext }; - var tool = await sut.GetToolsAsync(chatContext, default).FirstOrDefaultAsync(); + var tool = await sut.GetToolsAsync(chatContext, CancellationToken).FirstOrDefaultAsync(CancellationToken); Assert.Null(tool); } diff --git a/frontend/src/app/framework/services/previous-url.service.ts b/frontend/src/app/framework/services/previous-url.service.ts index 96e77ac79..c4acfc7fd 100644 --- a/frontend/src/app/framework/services/previous-url.service.ts +++ b/frontend/src/app/framework/services/previous-url.service.ts @@ -6,18 +6,28 @@ */ import { Injectable } from '@angular/core'; +import { Router, RoutesRecognized } from '@angular/router'; +import { filter, pairwise } from 'rxjs/operators'; @Injectable({ providedIn: 'root', }) export class PreviousUrl { - public pathStartsWith(path: string) { - try { - const url = new URL(document.referrer); + private previousPath = ''; + + constructor( + private readonly router: Router, + ) { + this.previousPath = router.url; - return url.pathname.startsWith(path); - } catch { - return false; - } + this.router.events + .pipe(filter(e => e instanceof RoutesRecognized), pairwise()) + .subscribe((event: any[]) => { + this.previousPath = event[0].urlAfterRedirects; + }); + } + + public pathStartsWith(path: string) { + return this.previousPath && this.previousPath.startsWith(path); } } \ No newline at end of file