您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

DialInDialog.js 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. // @flow
  2. import React from 'react';
  3. import { translate } from '../../../base/i18n';
  4. import { Icon, IconArrowLeft } from '../../../base/icons';
  5. import { ActionButton } from '../../../base/premeeting';
  6. import { getCountryCodeFromPhone } from '../../utils';
  7. import Label from '../Label';
  8. type Props = {
  9. /**
  10. * The number to call in order to join the conference.
  11. */
  12. number: string,
  13. /**
  14. * Handler used when clicking the back button.
  15. */
  16. onBack: Function,
  17. /**
  18. * Click handler for the text button.
  19. */
  20. onTextButtonClick: Function,
  21. /**
  22. * Click handler for primary button.
  23. */
  24. onPrimaryButtonClick: Function,
  25. /**
  26. * Click handler for the small additional text.
  27. */
  28. onSmallTextClick: Function,
  29. /**
  30. * The passCode of the conference.
  31. */
  32. passCode: string,
  33. /**
  34. * Used for translation.
  35. */
  36. t: Function,
  37. };
  38. /**
  39. * This component displays the dialog with all the information
  40. * to join a meeting by calling it.
  41. *
  42. * @param {Props} props - The props of the component.
  43. * @returns {React$Element}
  44. */
  45. function DialinDialog(props: Props) {
  46. const {
  47. number,
  48. onBack,
  49. onPrimaryButtonClick,
  50. onSmallTextClick,
  51. onTextButtonClick,
  52. passCode,
  53. t
  54. } = props;
  55. const flagClassName = `prejoin-dialog-flag iti-flag ${getCountryCodeFromPhone(
  56. number,
  57. )}`;
  58. return (
  59. <div className = 'prejoin-dialog-dialin'>
  60. <div className = 'prejoin-dialog-dialin-header'>
  61. <Icon
  62. className = 'prejoin-dialog-icon prejoin-dialog-dialin-icon'
  63. onClick = { onBack }
  64. role = 'button'
  65. size = { 24 }
  66. src = { IconArrowLeft } />
  67. <div className = 'prejoin-dialog-title'>
  68. {t('prejoin.dialInMeeting')}
  69. </div>
  70. </div>
  71. <Label number = { 1 }>{ t('prejoin.dialInPin') }</Label>
  72. <div className = 'prejoin-dialog-dialin-num-container'>
  73. <div className = 'prejoin-dialog-dialin-num'>
  74. <div className = { flagClassName } />
  75. <span>{number}</span>
  76. </div>
  77. <div className = 'prejoin-dialog-dialin-num'>{passCode}</div>
  78. </div>
  79. <div>
  80. <span
  81. className = 'prejoin-dialog-dialin-link'
  82. onClick = { onSmallTextClick }>
  83. {t('prejoin.viewAllNumbers')}
  84. </span>
  85. </div>
  86. <div className = 'prejoin-dialog-delimiter' />
  87. <Label
  88. className = 'prejoin-dialog-dialin-spaced-label'
  89. number = { 2 }>
  90. {t('prejoin.connectedWithAudioQ')}
  91. </Label>
  92. <div className = 'prejoin-dialog-dialin-btns'>
  93. <ActionButton
  94. className = 'prejoin-dialog-btn'
  95. onClick = { onPrimaryButtonClick }
  96. type = 'primary'>
  97. {t('prejoin.joinMeeting')}
  98. </ActionButton>
  99. <ActionButton
  100. className = 'prejoin-dialog-btn'
  101. onClick = { onTextButtonClick }
  102. type = 'text'>
  103. {t('dialog.Cancel')}
  104. </ActionButton>
  105. </div>
  106. </div>
  107. );
  108. }
  109. export default translate(DialinDialog);