Correction du bug de switch entre lore / campagne et la sidebar qui ne s'actualise pas en conséquence. Ajout d'un test playwright pour éviter toute régression à l'avenir

This commit is contained in:
2026-05-19 19:15:00 +02:00
parent 0e350142de
commit bc05b1536d
5 changed files with 102 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
import { Router } from '@angular/router';
import { LucideAngularModule, Map, Plus } from 'lucide-angular';
import { CampaignService } from '../services/campaign.service';
import { LayoutService } from '../services/layout.service';
import { Campaign } from '../services/campaign.model';
import { CampaignCreateComponent, CampaignCreatePayload } from './campaign/campaign-create/campaign-create.component';
@@ -22,10 +23,15 @@ export class CampaignsComponent implements OnInit {
constructor(
private router: Router,
private campaignService: CampaignService
private campaignService: CampaignService,
private layoutService: LayoutService
) {}
ngOnInit(): void {
// Liste racine de la section Campagnes : aucune sidebar secondaire ne
// doit subsister (ex: si on arrive depuis une page Lore qui en affichait
// une, elle persisterait sans ce hide() — cf. bug rapporte 2026-05-19).
this.layoutService.hide();
this.loadCampaigns();
}

View File

@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
import { Router } from '@angular/router';
import { LucideAngularModule, Dices, Plus, Pencil, Trash2 } from 'lucide-angular';
import { GameSystemService } from '../services/game-system.service';
import { LayoutService } from '../services/layout.service';
import { GameSystem } from '../services/game-system.model';
import { ConfirmDialogService } from '../shared/confirm-dialog/confirm-dialog.service';
@@ -24,10 +25,14 @@ export class GameSystemsComponent implements OnInit {
constructor(
private router: Router,
private gameSystemService: GameSystemService,
private confirmDialog: ConfirmDialogService
private confirmDialog: ConfirmDialogService,
private layoutService: LayoutService
) {}
ngOnInit(): void {
// Page racine : on s'assure de ne pas heriter de la sidebar d'une
// section precedente (cf. fix CampaignsComponent / LoreComponent).
this.layoutService.hide();
this.load();
}

View File

@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
import { Router } from '@angular/router';
import { LucideAngularModule, BookOpen, Folder, Plus } from 'lucide-angular';
import { LoreService } from '../services/lore.service';
import { LayoutService } from '../services/layout.service';
import { Lore } from '../services/lore.model';
import { LoreCreateComponent } from './lore-create/lore-create.component';
@@ -26,10 +27,15 @@ export class LoreComponent implements OnInit {
constructor(
private loreService: LoreService,
private layoutService: LayoutService,
private router: Router
) {}
ngOnInit(): void {
// Liste racine de la section Lore : aucune sidebar secondaire ne doit
// subsister (sinon elle persiste depuis la section precedente — bug
// symetrique a celui de CampaignsComponent).
this.layoutService.hide();
this.loadLores();
}

View File

@@ -7,6 +7,7 @@ import { LucideAngularModule, ArrowLeft, RefreshCw, Save, Check, AlertCircle, Do
import { SettingsService, AppSettings, AppSettingsUpdate, OneMinModelGroup, OllamaPullEvent } from '../services/settings.service';
import { UpdatesService, UpdateStatus } from '../services/updates.service';
import { ConfigService } from '../services/config.service';
import { LayoutService } from '../services/layout.service';
import { LicenseService, LicenseStatusDTO, BetaStatusDTO, ChannelStatusDTO, ChannelName } from '../services/license.service';
import { ConfirmDialogService } from '../shared/confirm-dialog/confirm-dialog.service';
@@ -133,10 +134,14 @@ export class SettingsComponent implements OnInit, OnDestroy {
private updatesService: UpdatesService,
public config: ConfigService,
private licenseService: LicenseService,
private confirmDialog: ConfirmDialogService
private confirmDialog: ConfirmDialogService,
private layoutService: LayoutService
) {}
ngOnInit(): void {
// Page racine : on s'assure de ne pas heriter de la sidebar d'une
// section precedente (cf. fix CampaignsComponent / LoreComponent).
this.layoutService.hide();
this.loadSettings();
if (this.config.updateCheckEnabled) {
this.checkUpdates();