CustomBotWithProxyIntegrationCard.jsx 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import React from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import PropTypes from 'prop-types';
  4. const CustomBotWithProxyIntegrationCard = (props) => {
  5. const { t } = useTranslation();
  6. return (
  7. <div className="d-flex justify-content-center my-5 bot-integration">
  8. <div className="card rounded shadow border-0 w-50 admin-bot-card">
  9. <h5 className="card-title font-weight-bold mt-3 ml-4">Slack</h5>
  10. <div className="card-body px-5">
  11. {props.slackWSNameInWithProxy != null && (
  12. <div className="card slack-work-space-name-card">
  13. <div className="m-2 text-center">
  14. <h5 className="font-weight-bold">{props.slackWSNameInWithProxy}</h5>
  15. <img width={20} height={20} src="/images/slack-integration/growi-bot-kun-icon.png" />
  16. </div>
  17. </div>
  18. )}
  19. </div>
  20. </div>
  21. <div className="text-center w-25">
  22. {props.isSlackScopeSet && (
  23. <p className="text-success small">
  24. <i className="fa fa-check mr-1" />
  25. {t('admin:slack_integration.integration_sentence.integration_successful')}
  26. </p>
  27. )}
  28. {!props.isSlackScopeSet && (
  29. <small
  30. className="text-secondary"
  31. // eslint-disable-next-line react/no-danger
  32. dangerouslySetInnerHTML={{ __html: t('admin:slack_integration.integration_sentence.integration_is_not_complete') }}
  33. />
  34. )}
  35. <div className="pt-2">
  36. <div className="position-relative mt-5">
  37. <div className="circle position-absolute bg-primary border-light">
  38. <p className="circle-inner text-light font-weight-bold">Proxy Server</p>
  39. </div>
  40. {props.isSlackScopeSet && (
  41. <hr className="align-self-center border-success admin-border-success"></hr>
  42. )}
  43. {!props.isSlackScopeSet && (
  44. <hr className="align-self-center border-danger admin-border-danger"></hr>
  45. )}
  46. </div>
  47. </div>
  48. </div>
  49. <div className="card rounded-lg shadow border-0 w-50 admin-bot-card">
  50. <div className="row">
  51. <h5 className="card-title font-weight-bold mt-3 ml-4 col">GROWI App</h5>
  52. <div className="pull-right mt-3 mr-3">
  53. <a className="icon-fw fa fa-repeat fa-2x"></a>
  54. </div>
  55. </div>
  56. <div className="card-body p-4 mb-5 text-center">
  57. <a className="btn btn-primary">{props.siteName}</a>
  58. </div>
  59. </div>
  60. </div>
  61. );
  62. };
  63. CustomBotWithProxyIntegrationCard.propTypes = {
  64. siteName: PropTypes.string.isRequired,
  65. slackWSNameInWithProxy: PropTypes.string,
  66. isSlackScopeSet: PropTypes.bool.isRequired,
  67. };
  68. export default CustomBotWithProxyIntegrationCard;