ApiErrorMessage.jsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. const ApiErrorMessage = (props) => {
  5. const { t, errorMessage, linkPath } = props;
  6. function renderMessage() {
  7. switch (errorMessage) {
  8. case 'Page exists':
  9. return (
  10. <span className="text-danger">
  11. <strong><i className="icon-fw icon-ban"></i>{ t('page_api_error.already_exists') }</strong>
  12. <small><a href={linkPath}>{linkPath} <i className="icon-login"></i></a></small>
  13. </span>
  14. );
  15. default:
  16. return null;
  17. }
  18. }
  19. return (
  20. <>
  21. {renderMessage()}
  22. </>
  23. );
  24. // TODO GW-79 Set according to error message
  25. // <div>
  26. // <span className="text-danger msg msg-notfound_or_forbidden">
  27. // <strong><i className="icon-fw icon-ban"></i>{ t('page_api_error.notfound_or_forbidden') }</strong>
  28. // </span>
  29. // <span className="text-danger msg msg-user_not_admin">
  30. // <strong><i className="icon-fw icon-ban"></i>{ t('page_api_error.user_not_admin') }</strong>
  31. // </span>
  32. // <span className="text-warning msg msg-outdated">
  33. // <strong><i className="icon-fw icon-bulb"></i> { t('page_api_error.outdated') }</strong>
  34. // {/* <a href="javascript:location.reload();"> */}
  35. // <i className="fa fa-angle-double-right"></i> { t('Load latest') }
  36. // {/* </a> */}
  37. // </span>
  38. // <span className="text-danger msg msg-invalid_path">
  39. // <strong><i className="icon-fw icon-ban"></i> Invalid path</strong>
  40. // </span>
  41. // <span className="text-danger msg msg-unknown">
  42. // <strong><i className="icon-fw icon-ban"></i> Unknown error occured</strong>
  43. // </span>
  44. // </div>
  45. };
  46. ApiErrorMessage.propTypes = {
  47. t: PropTypes.func.isRequired, // i18next
  48. errorMessage: PropTypes.string,
  49. linkPath: PropTypes.string,
  50. };
  51. export default withTranslation()(ApiErrorMessage);