private async Task CreateTabAsync() { if (string.IsNullOrWhiteSpace(this.newTab)) { this.TerminateTabCreating(); return; } // TODO: Abstract to not use "code file" stuff var normalizedTab = CodeFilesHelper.NormalizeCodeFilePath(this.newTab, out var error); if (!string.IsNullOrWhiteSpace(error) || this.Tabs.Contains(normalizedTab)) { if (this.previousInvalidTab != this.newTab) { this.GetPageNotificationsComponent().AddNotification(NotificationType.Error, error ?? "File already exists."); this.previousInvalidTab = this.newTab; } await this.newTabInput.FocusAsync(); return; } this.previousInvalidTab = null; this.Tabs.Add(normalizedTab); this.TerminateTabCreating(); var newTabIndex = this.Tabs.Count - 1; await this.OnTabCreate.InvokeAsync(normalizedTab); await this.ActivateTabAsync(newTabIndex); }
private async Task CreateTabAsync() { if (string.IsNullOrWhiteSpace(this.newTab)) { this.TerminateTabCreating(); return; } var normalizedTab = CodeFilesHelper.NormalizeCodeFilePath(this.newTab, out var error); if (!string.IsNullOrWhiteSpace(error) || this.Tabs.Contains(normalizedTab)) { if (this.previousInvalidTab != this.newTab) { Snackbar.Add("File already exists.", Severity.Warning); this.previousInvalidTab = this.newTab; } await this.newTabInput.FocusAsync(); return; } this.previousInvalidTab = null; this.Tabs.Add(normalizedTab); this.TerminateTabCreating(); var newTabIndex = this.Tabs.Count - 1; await this.OnTabCreate.InvokeAsync(normalizedTab); await this.ActivateTabAsync(newTabIndex); }