CustomBotWithoutProxyConnectionStatus.tsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import React from 'react';
  2. import type { ConnectionStatus } from '@growi/slack';
  3. import Image from 'next/image';
  4. import { Bridge } from './Bridge';
  5. type CustomBotWithoutProxyConnectionStatusProps = {
  6. siteName: string,
  7. connectionStatuses: any,
  8. }
  9. export const CustomBotWithoutProxyConnectionStatus = (props: CustomBotWithoutProxyConnectionStatusProps): JSX.Element => {
  10. const { siteName, connectionStatuses } = props;
  11. const connectionStatusValues: ConnectionStatus[] = Object.values(connectionStatuses);
  12. const totalCount = connectionStatusValues.length;
  13. const errorCount = connectionStatusValues.filter(connectionStatus => connectionStatus.error != null).length;
  14. const workspaceName = connectionStatusValues[0]?.workspaceName;
  15. return (
  16. <div className="row justify-content-center my-5 bot-integration">
  17. <div className="card rounded shadow col-4 border-0 admin-bot-card mb-0">
  18. <h5 className="card-title fw-bold mt-3 text-center">Slack</h5>
  19. <div className="card-body px-4 text-center mx-md-5">
  20. {totalCount > 0 ? (
  21. <div className="card slack-work-space-name-card">
  22. <div className="m-2 text-center">
  23. <h5 className="fw-bold">
  24. {workspaceName != null ? workspaceName : 'Settings #1'}
  25. </h5>
  26. <Image width={20} height={20} src="/images/slack-integration/growi-bot-kun-icon.png" alt="" />
  27. </div>
  28. </div>
  29. ) : ''}
  30. </div>
  31. </div>
  32. <div className="col-3 text-center">
  33. <Bridge errorCount={errorCount} totalCount={totalCount} />
  34. </div>
  35. <div className="card rounded-3 shadow col-4 border-0 admin-bot-card mb-0">
  36. <h5 className="card-title fw-bold mt-3 text-center">GROWI App</h5>
  37. <div className="card-body p-4 text-center">
  38. <div className="border p-2 bg-primary text-light mx-md-5">
  39. {siteName}
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. );
  45. };
  46. CustomBotWithoutProxyConnectionStatus.displayName = 'CustomBotWithoutProxyConnectionStatus';