Decouple dialog refocus from PanelsService via FocusService

Dialogs only needed refocus(); injecting PanelsService boots a whole
workspace, which secondary windows must not do.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jokin
2026-07-13 23:02:25 +02:00
co-authored by Claude Fable 5
parent 93a9b07722
commit 62ff845944
6 changed files with 33 additions and 15 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
import { Component, computed, inject, input, signal } from '@angular/core';
import { DialogsService, type ChmodRequest } from '../dialogs.service';
import { PanelsService } from '../panels.service';
import { FocusService } from '../focus.service';
const ROLES = ['Owner', 'Group', 'Others'] as const;
const PERMS = ['r', 'w', 'x'] as const;
@@ -81,7 +81,7 @@ export class ChmodDialog {
readonly perms = PERMS;
private readonly dialogs = inject(DialogsService);
private readonly panels = inject(PanelsService);
private readonly focus = inject(FocusService);
// mode is initialized lazily from the request on first read
private readonly modeOverride = signal<number | null>(null);
@@ -120,6 +120,6 @@ export class ChmodDialog {
private close(): void {
this.dialogs.chmod.set(null);
this.panels.refocus();
this.focus.bump();
}
}