PageStatusAlert.jsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { translate } from 'react-i18next';
  4. /**
  5. *
  6. * @author Yuki Takei <yuki@weseek.co.jp>
  7. *
  8. * @export
  9. * @class PageStatusAlert
  10. * @extends {React.Component}
  11. */
  12. class PageStatusAlert extends React.Component {
  13. constructor(props) {
  14. super(props);
  15. this.state = {
  16. pageRevisionId: this.props.pageRevisionId,
  17. lastUpdateUsername: undefined,
  18. };
  19. }
  20. setPageRevisionId(pageRevisionId) {
  21. this.setState({pageRevisionId});
  22. }
  23. setLastUpdateUsername(lastUpdateUsername) {
  24. this.setState({lastUpdateUsername});
  25. }
  26. render() {
  27. const { t } = this.props;
  28. const label1 = t('edited this page');
  29. const label2 = t('Load latest');
  30. return (
  31. <div className="myadmin-alert alert-warning myadmin-alert-bottom alertbottom2">
  32. <i className="icon-fw icon-bulb"></i><span>{this.state.lastUpdateUsername}</span>
  33. {label1}
  34. <a href="javascript:location.reload();">
  35. <i className="fa fa-angle-double-right"></i> {label2}
  36. </a>
  37. </div>
  38. );
  39. }
  40. }
  41. PageStatusAlert.propTypes = {
  42. t: PropTypes.func.isRequired, // i18next
  43. crowi: PropTypes.object.isRequired,
  44. pageRevisionId: PropTypes.string,
  45. };
  46. PageStatusAlert.defaultProps = {
  47. };
  48. export default translate()(PageStatusAlert);