public override void Refresh(IPackageVersion version)
        {
            m_Version = version;
            var package = version.package;

            ClearImages();

            if (s_LoadingTexture == null)
            {
                s_LoadingTexture = (Texture2D)EditorGUIUtility.LoadRequired("Icons/UnityLogo.png");
            }

            if (long.TryParse(package.uniqueId, out long id))
            {
                m_MainImage.image = s_LoadingTexture;
                foreach (var packageImage in package.images)
                {
                    var thumbnail = new Image()
                    {
                        classList = { "thumbnail", "image" }
                    };
                    thumbnail.image     = s_LoadingTexture;
                    thumbnail.scaleMode = ScaleMode.ScaleAndCrop;
                    m_ThumbnailsContainer.Add(thumbnail);
                    m_AssetStoreCache.DownloadImageAsync(id, packageImage.thumbnailUrl, (retId, texture) =>
                    {
                        if (texture != null)
                        {
                            m_ImageTextures.Add(texture);
                            texture.hideFlags = HideFlags.HideAndDontSave;
                        }

                        if (retId.ToString() == m_Version.package?.uniqueId)
                        {
                            thumbnail.image = texture ?? s_LoadingTexture;
                            thumbnail.OnLeftClick(() => OnImageClicked(thumbnail, packageImage));
                        }
                    });

                    // We run `OnImageClicked` at the beginning to make sure the selection is set properly
                    if (packageImage.type == PackageImage.ImageType.Main)
                    {
                        OnImageClicked(thumbnail, packageImage);
                    }
                }
            }
        }
        public void Refresh(IPackage package)
        {
            m_Package = package;

            var visible = m_Package?.images.Any() ?? false;

            UIUtils.SetElementDisplay(this, visible);
            ClearSupportingImages();

            if (!visible)
            {
                return;
            }

            if (s_LoadingTexture == null)
            {
                s_LoadingTexture = (Texture2D)EditorGUIUtility.LoadRequired("Icons/UnityLogo.png");
            }

            if (long.TryParse(m_Package.uniqueId, out long id))
            {
                foreach (var packageImage in m_Package.images)
                {
                    var image = new Label {
                        classList = { "image" }
                    };
                    image.OnLeftClick(() => { m_Application.OpenURL(packageImage.url); });
                    image.style.backgroundImage = s_LoadingTexture;
                    m_ImagesContainer.Add(image);

                    m_AssetStoreCache.DownloadImageAsync(id, packageImage.thumbnailUrl, (retId, texture) =>
                    {
                        if (retId.ToString() == m_Package?.uniqueId)
                        {
                            texture.hideFlags           = HideFlags.HideAndDontSave;
                            image.style.backgroundImage = texture;
                        }
                    });
                }
            }

            m_MoreLink.clicked += OnMoreImagesClicked;
        }