ReconnectControls.jsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { createSubscribedElement } from '../../UnstatedUtils';
  5. class ReconnectControls extends React.PureComponent {
  6. render() {
  7. const { t, isConfigured, isConnected } = this.props;
  8. const isEnabled = (isConfigured == null || isConfigured === true) && isConnected === false;
  9. return (
  10. <>
  11. <button
  12. type="submit"
  13. className={`btn btn-outline ${isEnabled ? 'btn-success' : 'btn-default'}`}
  14. onClick={() => { this.props.onReconnectingRequested() }}
  15. disabled={!isEnabled}
  16. >
  17. { t('full_text_search_management.reconnect_button') }
  18. </button>
  19. <p className="help-block">
  20. { t('full_text_search_management.reconnect_description') }<br />
  21. </p>
  22. </>
  23. );
  24. }
  25. }
  26. /**
  27. * Wrapper component for using unstated
  28. */
  29. const ReconnectControlsWrapper = (props) => {
  30. return createSubscribedElement(ReconnectControls, props, []);
  31. };
  32. ReconnectControls.propTypes = {
  33. t: PropTypes.func.isRequired, // i18next
  34. isConfigured: PropTypes.bool,
  35. isConnected: PropTypes.bool,
  36. onReconnectingRequested: PropTypes.func.isRequired,
  37. };
  38. export default withTranslation()(ReconnectControlsWrapper);