1
1
import React , { Component } from 'react' ;
2
2
import i18n from 'i18n' ;
3
+ import { inject } from 'lib/Injector' ;
3
4
import { UncontrolledTooltip } from 'reactstrap' ;
4
5
import formatWrittenNumber from 'lib/formatWrittenNumber' ;
5
6
import PropTypes from 'prop-types' ;
@@ -111,8 +112,10 @@ class CampaignAdminItem extends Component {
111
112
112
113
render ( ) {
113
114
let thumbnail = null ;
114
- const badge = { } ;
115
- const { campaign, item } = this . props ;
115
+ const badge = {
116
+ status : 'none' ,
117
+ } ;
118
+ const { campaign, item, VersionedBadgeComponent } = this . props ;
116
119
117
120
// @todo customise these status messages for already-published changesets
118
121
@@ -121,20 +124,20 @@ class CampaignAdminItem extends Component {
121
124
if ( campaign . State === 'open' ) {
122
125
switch ( item . ChangeType ) {
123
126
case 'created' :
124
- badge . className = 'badge badge-warning list-group-item__status ' ;
127
+ badge . status = 'draft ' ;
125
128
badge . Title = i18n . _t ( 'CampaignAdmin.DRAFT' , 'Draft' ) ;
126
129
break ;
127
130
case 'modified' :
128
- badge . className = 'badge badge-warning list-group-item__status ' ;
131
+ badge . status = 'modified ' ;
129
132
badge . Title = i18n . _t ( 'CampaignAdmin.MODIFIED' , 'Modified' ) ;
130
133
break ;
131
134
case 'deleted' :
132
- badge . className = 'badge badge-error list-group-item__status ' ;
135
+ badge . status = 'removed ' ;
133
136
badge . Title = i18n . _t ( 'CampaignAdmin.REMOVED' , 'Removed' ) ;
134
137
break ;
135
138
case 'none' :
136
139
default :
137
- badge . className = 'badge badge-success list-group-item__status ' ;
140
+ badge . status = 'live ' ;
138
141
badge . Title = i18n . _t ( 'CampaignAdmin.NO_CHANGES' , 'No changes' ) ;
139
142
break ;
140
143
}
@@ -157,7 +160,11 @@ class CampaignAdminItem extends Component {
157
160
< h4 className = "list-group-item__heading" title = { item . Title } > { item . Title } </ h4 >
158
161
{ links }
159
162
{ badge . className && badge . Title &&
160
- < span className = { badge . className } > { badge . Title } </ span >
163
+ < VersionedBadgeComponent
164
+ extraClass = "list-group-item__status"
165
+ status = { badge . status }
166
+ message = { badge . Title }
167
+ />
161
168
}
162
169
</ div >
163
170
</ div >
@@ -170,6 +177,15 @@ CampaignAdminItem.propTypes = {
170
177
item : PropTypes . object . isRequired ,
171
178
isLinked : PropTypes . bool ,
172
179
selected : PropTypes . bool ,
180
+ VersionedBadgeComponent : PropTypes . oneOfType ( [ PropTypes . node , PropTypes . func ] ) ,
173
181
} ;
174
182
175
- export default CampaignAdminItem ;
183
+ export { CampaignAdminItem as Component } ;
184
+
185
+ export default inject (
186
+ [ 'VersionedBadge' ] ,
187
+ ( VersionedBadgeComponent ) => ( {
188
+ VersionedBadgeComponent,
189
+ } ) ,
190
+ ( ) => 'CampaignAdmin.CampaignAdmin.ListItem'
191
+ ) ( CampaignAdminItem ) ;
0 commit comments