4
4
*--------------------------------------------------------------------------------------------*/
5
5
6
6
import './media/extension.css' ;
7
- import { append , $ , addDisposableListener } from '../../../../base/browser/dom.js' ;
7
+ import { append , $ } from '../../../../base/browser/dom.js' ;
8
8
import { IDisposable , dispose , combinedDisposable } from '../../../../base/common/lifecycle.js' ;
9
9
import { IAction } from '../../../../base/common/actions.js' ;
10
10
import { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js' ;
@@ -14,7 +14,7 @@ import { IPagedRenderer } from '../../../../base/browser/ui/list/listPaging.js';
14
14
import { IExtension , ExtensionContainers , ExtensionState , IExtensionsWorkbenchService , IExtensionsViewState } from '../common/extensions.js' ;
15
15
import { ManageExtensionAction , ExtensionRuntimeStateAction , ExtensionStatusLabelAction , RemoteInstallAction , ExtensionStatusAction , LocalInstallAction , ButtonWithDropDownExtensionAction , InstallDropdownAction , InstallingLabelAction , ButtonWithDropdownExtensionActionViewItem , DropDownExtensionAction , WebInstallAction , MigrateDeprecatedExtensionAction , SetLanguageAction , ClearLanguageAction , UpdateAction } from './extensionsActions.js' ;
16
16
import { areSameExtensions } from '../../../../platform/extensionManagement/common/extensionManagementUtil.js' ;
17
- import { RatingsWidget , InstallCountWidget , RecommendationWidget , RemoteBadgeWidget , ExtensionPackCountWidget as ExtensionPackBadgeWidget , SyncIgnoredWidget , ExtensionHoverWidget , ExtensionRuntimeStatusWidget , PreReleaseBookmarkWidget , PublisherWidget , ExtensionKindIndicatorWidget } from './extensionsWidgets.js' ;
17
+ import { RatingsWidget , InstallCountWidget , RecommendationWidget , RemoteBadgeWidget , ExtensionPackCountWidget as ExtensionPackBadgeWidget , SyncIgnoredWidget , ExtensionHoverWidget , ExtensionRuntimeStatusWidget , PreReleaseBookmarkWidget , PublisherWidget , ExtensionKindIndicatorWidget , ExtensionIconWidget } from './extensionsWidgets.js' ;
18
18
import { IExtensionService } from '../../../services/extensions/common/extensions.js' ;
19
19
import { IWorkbenchExtensionEnablementService } from '../../../services/extensionManagement/common/extensionManagement.js' ;
20
20
import { INotificationService } from '../../../../platform/notification/common/notification.js' ;
@@ -31,7 +31,6 @@ const EXTENSION_LIST_ELEMENT_HEIGHT = 72;
31
31
export interface ITemplateData {
32
32
root : HTMLElement ;
33
33
element : HTMLElement ;
34
- icon : HTMLImageElement ;
35
34
name : HTMLElement ;
36
35
description : HTMLElement ;
37
36
installCount : HTMLElement ;
@@ -73,7 +72,7 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
73
72
const preReleaseWidget = this . instantiationService . createInstance ( PreReleaseBookmarkWidget , append ( root , $ ( '.extension-bookmark-container' ) ) ) ;
74
73
const element = append ( root , $ ( '.extension-list-item' ) ) ;
75
74
const iconContainer = append ( element , $ ( '.icon-container' ) ) ;
76
- const icon = append ( iconContainer , $ < HTMLImageElement > ( 'img.icon' , { alt : '' } ) ) ;
75
+ const iconWidget = this . instantiationService . createInstance ( ExtensionIconWidget , iconContainer ) ;
77
76
const iconRemoteBadgeWidget = this . instantiationService . createInstance ( RemoteBadgeWidget , iconContainer , false ) ;
78
77
const extensionPackBadgeWidget = this . instantiationService . createInstance ( ExtensionPackBadgeWidget , iconContainer ) ;
79
78
const details = append ( element , $ ( '.details' ) ) ;
@@ -85,7 +84,6 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
85
84
const syncIgnore = append ( header , $ ( 'span.sync-ignored' ) ) ;
86
85
const extensionKindIndicator = append ( header , $ ( 'span' ) ) ;
87
86
const activationStatus = append ( header , $ ( 'span.activation-status' ) ) ;
88
- const headerRemoteBadgeWidget = this . instantiationService . createInstance ( RemoteBadgeWidget , header , false ) ;
89
87
const description = append ( details , $ ( '.description.ellipsis' ) ) ;
90
88
const footer = append ( details , $ ( '.footer' ) ) ;
91
89
const publisherWidget = this . instantiationService . createInstance ( PublisherWidget , append ( footer , $ ( '.publisher-container' ) ) , true ) ;
@@ -132,11 +130,11 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
132
130
const extensionHoverWidget = this . instantiationService . createInstance ( ExtensionHoverWidget , { target : root , position : this . options . hoverOptions . position } , extensionStatusIconAction ) ;
133
131
134
132
const widgets = [
133
+ iconWidget ,
135
134
recommendationWidget ,
136
135
preReleaseWidget ,
137
136
iconRemoteBadgeWidget ,
138
137
extensionPackBadgeWidget ,
139
- headerRemoteBadgeWidget ,
140
138
publisherWidget ,
141
139
extensionHoverWidget ,
142
140
this . instantiationService . createInstance ( SyncIgnoredWidget , syncIgnore ) ,
@@ -151,7 +149,7 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
151
149
const disposable = combinedDisposable ( ...actions , ...widgets , actionbar , actionBarListener , extensionContainers ) ;
152
150
153
151
return {
154
- root, element, icon , name, installCount, ratings, description, disposables : [ disposable ] , actionbar,
152
+ root, element, name, installCount, ratings, description, disposables : [ disposable ] , actionbar,
155
153
extensionDisposables : [ ] ,
156
154
set extension ( extension : IExtension ) {
157
155
extensionContainers . extension = extension ;
@@ -165,7 +163,6 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
165
163
data . root . removeAttribute ( 'aria-label' ) ;
166
164
data . root . removeAttribute ( 'data-extension-id' ) ;
167
165
data . extensionDisposables = dispose ( data . extensionDisposables ) ;
168
- data . icon . src = '' ;
169
166
data . name . textContent = '' ;
170
167
data . description . textContent = '' ;
171
168
data . installCount . style . display = 'none' ;
@@ -193,16 +190,6 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
193
190
updateEnablement ( ) ;
194
191
this . extensionService . onDidChangeExtensions ( ( ) => updateEnablement ( ) , this , data . extensionDisposables ) ;
195
192
196
- data . extensionDisposables . push ( addDisposableListener ( data . icon , 'error' , ( ) => data . icon . src = extension . iconUrlFallback , { once : true } ) ) ;
197
- data . icon . src = extension . iconUrl ;
198
-
199
- if ( ! data . icon . complete ) {
200
- data . icon . style . visibility = 'hidden' ;
201
- data . icon . onload = ( ) => data . icon . style . visibility = 'inherit' ;
202
- } else {
203
- data . icon . style . visibility = 'inherit' ;
204
- }
205
-
206
193
data . name . textContent = extension . displayName ;
207
194
data . description . textContent = extension . description ;
208
195
0 commit comments