@using RobotNet.WebApp.Scripts.Components.Dialogs @inject IDialogService DialogService @inject ISnackbar Snackbar @code { [CascadingParameter] private ScriptWorkspace Workspace { get; set; } = null!; private async Task OpenDialogCreateNewFile() { var parentPath = Workspace.SelectedFolder?.Path ?? ""; var parameters = new DialogParameters() { {x => x.FolderName, parentPath}, }; var dialog = await DialogService.ShowAsync("Create new file", parameters); var resultDialog = await dialog.Result; if (resultDialog is null || resultDialog.Canceled || resultDialog.Data is not string fileName) return; fileName = fileName.EndsWith(".cs") ? fileName : fileName + ".cs"; var result = await Workspace.CreateNewFile(fileName); if (!result.IsSuccess) { Snackbar.Add(result.Message, Severity.Error); } } private async Task OpenDialogCreateNewFolder() { var parentPath = Workspace.SelectedFolder?.Path ?? ""; var parameters = new DialogParameters() { {x => x.FolderName, parentPath}, {x => x.IsFolder, true }, }; var dialog = await DialogService.ShowAsync("Create new folder", parameters); var resultDialog = await dialog.Result; if (resultDialog is null || resultDialog.Canceled || resultDialog.Data is not string folderName) return; var result = await Workspace.CreateNewFolder(folderName); if (!result.IsSuccess) { Snackbar.Add(result.Message, Severity.Error); } } private async Task SaveAllFiles() { var results = await Workspace.SaveAllAsync(); foreach(var result in results) { if (!result.IsSuccess) { Snackbar.Add(result.Message, Severity.Error); } } } }