Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import PropTypes from 'prop-types';
  2. import React, { Component } from 'react';
  3. import { translate } from '../../base/i18n';
  4. /**
  5. * A React Component for displaying the conference lock state.
  6. */
  7. class LockStatePanel extends Component {
  8. /**
  9. * {@code LockStatePanel}'s property types.
  10. *
  11. * @static
  12. */
  13. static propTypes = {
  14. /**
  15. * Whether or not the conference is currently locked.
  16. */
  17. locked: PropTypes.bool,
  18. /**
  19. * Invoked to obtain translated strings.
  20. */
  21. t: PropTypes.func
  22. };
  23. /**
  24. * Implements React's {@link Component#render()}.
  25. *
  26. * @inheritdoc
  27. * @returns {ReactElement}
  28. */
  29. render() {
  30. let iconClass;
  31. let stateClass;
  32. let textKey;
  33. if (this.props.locked) {
  34. iconClass = 'icon-security-locked';
  35. stateClass = 'is-locked';
  36. textKey = 'invite.locked';
  37. } else {
  38. iconClass = 'icon-security';
  39. stateClass = 'is-unlocked';
  40. textKey = 'invite.unlocked';
  41. }
  42. return (
  43. <div className = { `lock-state ${stateClass}` }>
  44. <span className = { iconClass } />
  45. <span>
  46. { this.props.t(textKey) }
  47. </span>
  48. </div>
  49. );
  50. }
  51. }
  52. export default translate(LockStatePanel);