require-accept-screen.tsx 2.1 KB

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