41 lines
1.9 KiB
C#
41 lines
1.9 KiB
C#
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;
|
|
|
|
/// <summary>
|
|
/// Single seam for opening modal dialogs. Replaces the per-modal <c>Show*Modal</c>
|
|
/// 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 (<see cref="ClaudeDo.Ui.Views.WindowDialogService"/>);
|
|
/// callers build + initialize the VM and hand it here to be shown.
|
|
/// </summary>
|
|
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);
|
|
|
|
/// <summary>Modal yes/no confirmation. Returns true only when confirmed.</summary>
|
|
Task<bool> ConfirmAsync(string message);
|
|
|
|
/// <summary>Modal error notice with a single dismiss button.</summary>
|
|
Task ShowErrorAsync(string message);
|
|
|
|
/// <summary>Show (or re-show + focus) the modeless Mission Control window. Lazily created; hides on close.</summary>
|
|
void ShowMissionControl(MissionControlViewModel vm);
|
|
|
|
/// <summary>Show a detached monitor in its own window; <paramref name="onClosed"/> re-docks it when that window closes.</summary>
|
|
void ShowDetachedMonitor(TaskMonitorViewModel monitor, Action onClosed);
|
|
}
|