using System; using System.Threading.Tasks; using ClaudeDo.Ui.ViewModels; using ClaudeDo.Ui.ViewModels.Conflicts; using ClaudeDo.Ui.ViewModels.Islands; using ClaudeDo.Ui.ViewModels.Modals; namespace ClaudeDo.Ui.Services; /// /// Single seam for opening modal dialogs. Replaces the per-modal Show*Modal /// Func callbacks that were previously wired separately on the shell and the lists /// island (and the Confirm/Error dialogs duplicated in both code-behinds). The view /// layer supplies the implementation (); /// callers build + initialize the VM and hand it here to be shown. /// public interface IDialogService { Task ShowAboutAsync(AboutModalViewModel vm); Task ShowWeeklyReportAsync(WeeklyReportModalViewModel vm); Task ShowSettingsAsync(SettingsModalViewModel vm); Task ShowListSettingsAsync(ListSettingsModalViewModel vm); Task ShowRepoImportAsync(RepoImportModalViewModel vm); Task ShowWorktreesOverviewAsync(WorktreesOverviewModalViewModel vm); Task ShowWorkerConnectionAsync(WorkerConnectionModalViewModel vm); Task ShowConflictResolverAsync(ConflictResolverViewModel vm); Task ShowLogVisualizerAsync(LogVisualizerViewModel vm); /// Modal yes/no confirmation. Returns true only when confirmed. Task ConfirmAsync(string message); /// Modal error notice with a single dismiss button. Task ShowErrorAsync(string message); /// Show (or re-show + focus) the modeless Mission Control window. Lazily created; hides on close. void ShowMissionControl(MissionControlViewModel vm); /// Show a detached monitor in its own window; re-docks it when that window closes. void ShowDetachedMonitor(TaskMonitorViewModel monitor, Action onClosed); }