internal async void Load(FigmaBundle bundle, Projects.Project project) { this.mainBundle = bundle; this.project = project; bundlePopUp.RemoveAllItems(); bundlePopUp.AddItem(bundle.Manifest.DocumentTitle); //loads current versions versionPopUp.RemoveAllItems(); versionPopUp.AddItem("Latest"); ShowLoading(true); EnableViews(false); var versionTask = Task.Run(() => { try { var query = new FigmaFileVersionQuery(bundle.FileId); var figmaFileVersions = FigmaSharp.AppContext.Api.GetFileVersions(query) .versions; var result = figmaFileVersions .GroupByCreatedAt() .ToArray(); return(result); } catch (Exception ex) { Console.WriteLine(ex); return(null); } }); var figmaDirectory = Path.GetDirectoryName(bundle.DirectoryPath); var currentProjectBundles = GetFromFigmaDirectory(figmaDirectory); versions = await versionTask; bundlePopUp.RemoveAllItems(); foreach (var figmaNode in currentProjectBundles) { bundlePopUp.AddItem(figmaNode.Manifest.DocumentTitle); } ShowLoading(false); EnableViews(true); if (versions != null && versions.Length > 0) { foreach (var version in versions) { versionMenu.AddItem(version); } } versionMenu.Generate(versionPopUp.Menu); //select current version var menu = versionMenu.GetMenuItem(bundle.Version); versionPopUp.SelectItem(menu); }
bool UseAsVersionsMenu() { if (versionsMainMenu == null) { return(false); } menuManager.Generate(versionsMainMenu.Submenu); return(true); }
private async void FigmaUrlTextField_Changed(object sender, EventArgs e) { ShowLoading(true); SelectedFileVersion = null; //loads current versions versionPopUp.RemoveAllItems(); RefreshStates(); if (WebApiHelper.TryParseFileUrl(FileId, out string fileId)) { figmaUrlTextField.StringValue = fileId; } versions = await Task.Run(() => { try { var query = new FigmaFileVersionQuery(fileId); var figmaFileVersions = FigmaSharp.AppContext.Api.GetFileVersions(query).versions; var result = figmaFileVersions .GroupByCreatedAt() .ToArray(); return(result); } catch (Exception ex) { LoggingService.LogError("[FIGMA] Error", ex); return(null); } }); ShowLoading(false); versionMenu.Clear(); if (versions != null) { foreach (var item in versions) { versionMenu.AddItem(item); } versionMenu.Generate(versionPopUp.Menu); versionPopUp.SelectItem(versionMenu.CurrentMenu); SelectedFileVersion = versionMenu.CurrentVersion; } RefreshStates(); }