11import React , { Component } from 'react' ;
22import PropTypes from 'prop-types' ;
33import { connect } from 'react-redux' ;
4- import { FormattedMessage } from 'react-intl' ;
4+ import { FormattedMessage , injectIntl , intlShape } from 'react-intl' ;
55
66import Button from '../../components/widgets/FlatButton' ;
77import PageContent from '../../components/layout/PageContent' ;
@@ -64,7 +64,13 @@ class SystemMessages extends Component {
6464 }
6565
6666 render ( ) {
67- const { fetchStatus, createMessage, editMessage, systemMessages } = this . props ;
67+ const {
68+ fetchStatus,
69+ createMessage,
70+ editMessage,
71+ systemMessages,
72+ intl : { locale } ,
73+ } = this . props ;
6874
6975 return (
7076 < FetchManyResourceRenderer
@@ -114,33 +120,43 @@ class SystemMessages extends Component {
114120 < React . Fragment >
115121 < Box
116122 title = { < FormattedMessage id = "app.systemMessages.listTitle" defaultMessage = "System Messages" /> }
117- unlimitedHeight
118- footer = {
123+ unlimitedHeight >
124+ < React . Fragment >
125+ < MessagesList
126+ systemMessages = { systemMessages }
127+ renderActions = { message => (
128+ < React . Fragment >
129+ < Button
130+ bsSize = "xs"
131+ bsStyle = "warning"
132+ onClick = { ( ) => {
133+ this . setState ( {
134+ isOpen : true ,
135+ createNew : false ,
136+ message : getMessageInitialValues ( message ) ,
137+ } ) ;
138+ } } >
139+ < EditIcon gapRight />
140+ < FormattedMessage id = "generic.edit" defaultMessage = "Edit" />
141+ </ Button >
142+ < DeleteSystemMessageButtonContainer
143+ id = { message . id }
144+ bsSize = "xs"
145+ locale = { locale /* Hack to force re-rendering when locale changes */ }
146+ />
147+ </ React . Fragment >
148+ ) }
149+ />
150+ < hr className = "no-margin" />
119151 < p className = "em-margin-top text-center" >
120152 < Button onClick = { ( ) => this . setState ( { isOpen : true , createNew : true } ) } bsStyle = "success" >
121153 < AddIcon gapRight />
122154 < FormattedMessage id = "app.systemMessages.newSystemMessage" defaultMessage = "New System Message" />
123155 </ Button >
124156 </ p >
125- } >
126- < MessagesList
127- systemMessages = { systemMessages }
128- renderActions = { message => (
129- < React . Fragment >
130- < Button
131- bsSize = "xs"
132- bsStyle = "warning"
133- onClick = { ( ) => {
134- this . setState ( { isOpen : true , createNew : false , message : getMessageInitialValues ( message ) } ) ;
135- } } >
136- < EditIcon gapRight />
137- < FormattedMessage id = "generic.edit" defaultMessage = "Edit" />
138- </ Button >
139- < DeleteSystemMessageButtonContainer id = { message . id } bsSize = "xs" />
140- </ React . Fragment >
141- ) }
142- />
157+ </ React . Fragment >
143158 </ Box >
159+
144160 < EditSystemMessageForm
145161 createNew = { this . state . createNew }
146162 initialValues = { this . state . message }
@@ -166,6 +182,7 @@ SystemMessages.propTypes = {
166182 createMessage : PropTypes . func ,
167183 editMessage : PropTypes . func ,
168184 systemMessages : PropTypes . array . isRequired ,
185+ intl : intlShape . isRequired ,
169186} ;
170187
171188export default connect (
@@ -178,4 +195,4 @@ export default connect(
178195 createMessage : data => dispatch ( createMessage ( transformMessageFormData ( data ) ) ) ,
179196 editMessage : ( id , data ) => dispatch ( editMessage ( id , transformMessageFormData ( data ) ) ) ,
180197 } )
181- ) ( SystemMessages ) ;
198+ ) ( injectIntl ( SystemMessages ) ) ;
0 commit comments