DataTransferForm.tsx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. import { useTranslation } from 'next-i18next';
  3. import { useGenerateTransferKey } from '~/client/services/g2g-transfer';
  4. import { useGrowiCloudUri, useGrowiAppIdForGrowiCloud } from '~/stores-universal/context';
  5. import CustomCopyToClipBoard from './Common/CustomCopyToClipBoard';
  6. const DataTransferForm = (): JSX.Element => {
  7. const { t } = useTranslation('commons');
  8. const { transferKey, generateTransferKey } = useGenerateTransferKey();
  9. const { data: growiCloudUri } = useGrowiCloudUri();
  10. const { data: growiAppIdForGrowiCloud } = useGrowiAppIdForGrowiCloud();
  11. const growiHelpUrl = growiCloudUri != null && growiAppIdForGrowiCloud != null ? 'growi.cloud/help' : 'docs.growi.org';
  12. return (
  13. <div data-testid="installerForm" className="py-3 px-4">
  14. <p className="text-white fs-5 mt-2">
  15. <strong>{ t('g2g_data_transfer.transfer_data_to_this_growi')}</strong>
  16. </p>
  17. <div className="row mt-3">
  18. <div className="col-md-12">
  19. <button type="button" className="btn btn-primary w-100" onClick={generateTransferKey}>
  20. {t('g2g_data_transfer.publish_transfer_key')}
  21. </button>
  22. </div>
  23. <div className="col-md-12 mt-2">
  24. <div className="d-flex">
  25. <input className="form-control" type="text" value={transferKey} readOnly />
  26. <CustomCopyToClipBoard textToBeCopied={transferKey} message="copied_to_clipboard" />
  27. </div>
  28. </div>
  29. </div>
  30. <div className="alert alert-warning mt-4">
  31. <p className="mb-1">{t('g2g_data_transfer.transfer_key_limit')}</p>
  32. <p className="mb-1">{t('g2g_data_transfer.once_transfer_key_used')}</p>
  33. {/* eslint-disable-next-line react/no-danger */}
  34. <p className="mb-0" dangerouslySetInnerHTML={{ __html: t('g2g_data_transfer.transfer_to_growi_cloud', { growiHelpUrl }) }} />
  35. </div>
  36. </div>
  37. );
  38. };
  39. export default DataTransferForm;