@@ -114,38 +114,24 @@ class Header extends Component {
114
114
) ;
115
115
}
116
116
117
- renderStatusBadge ( ) {
118
- const {
119
- element : { isLiveVersion, isPublished } ,
120
- } = this . props ;
121
-
122
- // No indication required for published elements
123
- if ( isPublished && isLiveVersion ) {
117
+ renderStatusFlagBadges ( ) {
118
+ const statusFlags = this . props . element . statusFlags ;
119
+ if ( ! statusFlags ) {
124
120
return null ;
125
121
}
126
-
127
- let versionStateTitle = '' ;
128
- let versionStateButtonTitle = '' ;
129
- const stateClassNames = [ 'badge' ] ;
130
-
131
- if ( ! isPublished ) {
132
- versionStateTitle = i18n . _t ( 'ElementHeader.BADGE_DRAFT' , 'Draft' ) ;
133
- versionStateButtonTitle = i18n . _t ( 'ElementHeader.STATE_DRAFT' , 'Item has not been published yet' ) ;
134
- stateClassNames . push ( 'status-addedtodraft' ) ;
135
- } else if ( ! isLiveVersion ) {
136
- versionStateTitle = i18n . _t ( 'ElementHeader.BADGE_MODIFIED' , 'Modified' ) ;
137
- versionStateButtonTitle = i18n . _t ( 'ElementHeader.STATE_MODIFIED' , 'Item has unpublished changes' ) ;
138
- stateClassNames . push ( 'status-modified' ) ;
122
+ const badges = [ ] ;
123
+ // eslint-disable-next-line no-restricted-syntax
124
+ for ( let [ cssClasses , data ] of Object . entries ( statusFlags ) ) {
125
+ cssClasses = `badge status-${ cssClasses } ` ;
126
+ if ( typeof data === 'string' ) {
127
+ data = { text : data } ;
128
+ }
129
+ if ( ! data . title ) {
130
+ data . title = '' ;
131
+ }
132
+ badges . push ( < span key = { cssClasses } className = { cssClasses } title = { data . title } > { data . text } </ span > ) ;
139
133
}
140
-
141
- return (
142
- < span
143
- className = { classNames ( stateClassNames ) }
144
- title = { versionStateButtonTitle }
145
- >
146
- { versionStateTitle }
147
- </ span >
148
- ) ;
134
+ return badges ;
149
135
}
150
136
151
137
render ( ) {
@@ -209,7 +195,7 @@ class Header extends Component {
209
195
</ Tooltip > }
210
196
</ div >
211
197
< h3 className = { titleClasses } > { title } </ h3 >
212
- { this . renderStatusBadge ( ) }
198
+ { this . renderStatusFlagBadges ( ) }
213
199
</ div >
214
200
{ ! simple && < div className = "element-editor-header__actions" >
215
201
< div role = "none" onClick = { ( event ) => event . stopPropagation ( ) } >
0 commit comments