From 64aecec4afb189721105323b3899e5292210b016 Mon Sep 17 00:00:00 2001 From: Florian THIERRY Date: Tue, 3 Feb 2026 14:28:50 +0100 Subject: [PATCH] Fix publication update component. --- .../publication-edition.component.ts | 2 +- .../publication-update.component.ts | 42 ++++++++++--------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/frontend/src/app/components/publication-edition/publication-edition.component.ts b/frontend/src/app/components/publication-edition/publication-edition.component.ts index b266dc6..5e722c7 100644 --- a/frontend/src/app/components/publication-edition/publication-edition.component.ts +++ b/frontend/src/app/components/publication-edition/publication-edition.component.ts @@ -55,7 +55,7 @@ export class PublicationEditionComponent { const publicationInEdition = this.publicationInEdition(); if (!publicationInEdition || publicationInEdition !== publication) { this.publicationInEdition.set(publication); - this.#publicationEditionService.init(publicationInEdition); + this.#publicationEditionService.init(publication); } }); } diff --git a/frontend/src/app/pages/publication-update/publication-update.component.ts b/frontend/src/app/pages/publication-update/publication-update.component.ts index 25c729b..80e6d2d 100644 --- a/frontend/src/app/pages/publication-update/publication-update.component.ts +++ b/frontend/src/app/pages/publication-update/publication-update.component.ts @@ -13,6 +13,7 @@ import {PublicationEditionComponent} from '../../components/publication-edition/ import {Publication} from '../../core/rest-services/publications/model/publication'; import {PublicationRestService} from '../../core/rest-services/publications/publication.rest-service'; import {toSignal} from "@angular/core/rxjs-interop"; +import {map} from "rxjs"; @Component({ selector: 'app-publication-update', @@ -40,6 +41,10 @@ export class PublicationUpdateComponent { #isSavingSubject = signal(false); publication = signal(undefined); + #publicationId$ = this.#activatedRoute.params + .pipe(map(queryParams => queryParams['publicationId'])); + #publicationId = toSignal(this.#publicationId$, { initialValue: undefined }); + get isLoading(): Signal { return this.#isLoading.asReadonly(); } @@ -49,29 +54,26 @@ export class PublicationUpdateComponent { } constructor() { - const queryParams = toSignal(this.#activatedRoute.queryParamMap); effect(() => { - let params = queryParams(); this.#isLoading.set(true); - if (params) { - const publicationId = params.get('publicationId'); - if (publicationId == undefined) { - this.#snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, {duration: 5000}); - this.#location.back(); - } else { - this.#publicationRestService.getById(publicationId) - .then(publication => { - this.publication.set(publication); - }) - .catch(error => { - const errorMessage = $localize`A technical error occurred while loading publication data.`; - this.#snackBar.open(errorMessage, $localize`Close`, {duration: 5000}); - console.error(errorMessage, error) - }) - .finally(() => this.#isLoading.set(false)); - } + + const publicationId = this.#publicationId(); + if (publicationId) { + this.#publicationRestService.getById(publicationId) + .then(publication => { + this.publication.set(publication); + }) + .catch(error => { + const errorMessage = $localize`A technical error occurred while loading publication data.`; + this.#snackBar.open(errorMessage, $localize`Close`, {duration: 5000}); + console.error(errorMessage, error) + }) + .finally(() => this.#isLoading.set(false)); + } else { + this.#snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, {duration: 5000}); + this.#location.back(); } - }) + }); } onPublicationSave(publication: Publication): void {