require-accept-screen.tsx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import { FC } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import getMeta from '@/utils/meta'
  4. import { useFeatureFlag } from '@/shared/context/split-test-context'
  5. import Invite from '@/features/share-project/invite'
  6. export type RequireAcceptData = {
  7. projectName?: string
  8. }
  9. export const RequireAcceptScreen: FC<{
  10. requireAcceptData: RequireAcceptData
  11. sendPostRequest: (confirmedByUser: boolean) => void
  12. }> = ({ requireAcceptData, sendPostRequest }) => {
  13. const { t } = useTranslation()
  14. const user = getMeta('ol-user')
  15. const isSharingUpdatesEnabled = useFeatureFlag('sharing-updates')
  16. if (isSharingUpdatesEnabled) {
  17. return (
  18. <Invite
  19. projectName={requireAcceptData.projectName || 'This project'}
  20. email={user?.email || ''}
  21. submitHandler={() => sendPostRequest(true)}
  22. />
  23. )
  24. }
  25. return (
  26. <div className="container">
  27. <div className="row">
  28. <div className="col-md-12">
  29. <div className="card">
  30. <div className="card-body">
  31. <div className="text-center link-sharing-invite">
  32. <div className="link-sharing-invite-header">
  33. <p>
  34. {t('youre_joining')}
  35. <br />
  36. <em>
  37. <strong>
  38. {requireAcceptData.projectName || 'This project'}
  39. </strong>
  40. </em>
  41. {user && (
  42. <>
  43. <br />
  44. {t('as_email', { email: user.email })}
  45. </>
  46. )}
  47. </p>
  48. </div>
  49. </div>
  50. <div className="row row-spaced text-center">
  51. <div className="col-md-12">
  52. <p>
  53. {t(
  54. 'your_name_and_email_address_will_be_visible_to_the_project_owner_and_other_editors'
  55. )}
  56. </p>
  57. </div>
  58. </div>
  59. <div className="row row-spaced text-center">
  60. <div className="col-md-12">
  61. <button
  62. className="btn btn-lg btn-primary"
  63. type="submit"
  64. onClick={() => sendPostRequest(true)}
  65. >
  66. {t('ok_join_project')}
  67. </button>
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. )
  76. }