Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

Watermarks.web.js 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /* @flow */
  2. import React, { Component } from 'react';
  3. import { translate } from '../../i18n';
  4. declare var APP: Object;
  5. declare var interfaceConfig: Object;
  6. /**
  7. * The CSS style of the element with CSS class <tt>rightwatermark</tt>.
  8. *
  9. * @private
  10. */
  11. const _RIGHT_WATERMARK_STYLE = {
  12. backgroundImage: 'url(images/rightwatermark.png)'
  13. };
  14. /**
  15. * A Web Component which renders watermarks such as Jits, brand, powered by,
  16. * etc.
  17. */
  18. class Watermarks extends Component {
  19. state = {
  20. brandWatermarkLink: String,
  21. jitsiWatermarkLink: String,
  22. showBrandWatermark: Boolean,
  23. showJitsiWatermark: Boolean,
  24. showJitsiWatermarkForGuests: Boolean,
  25. showPoweredBy: Boolean
  26. };
  27. /**
  28. * Initializes a new Watermarks instance.
  29. *
  30. * @param {Object} props - The read-only properties with which the new
  31. * instance is to be initialized.
  32. */
  33. constructor(props: Object) {
  34. super(props);
  35. let showBrandWatermark;
  36. let showJitsiWatermark;
  37. let showJitsiWatermarkForGuests;
  38. if (interfaceConfig.filmStripOnly) {
  39. showBrandWatermark = false;
  40. showJitsiWatermark = false;
  41. showJitsiWatermarkForGuests = false;
  42. } else {
  43. showBrandWatermark = interfaceConfig.SHOW_BRAND_WATERMARK;
  44. showJitsiWatermark = interfaceConfig.SHOW_JITSI_WATERMARK;
  45. showJitsiWatermarkForGuests
  46. = interfaceConfig.SHOW_WATERMARK_FOR_GUESTS;
  47. }
  48. this.state = {
  49. brandWatermarkLink:
  50. showBrandWatermark ? interfaceConfig.BRAND_WATERMARK_LINK : '',
  51. jitsiWatermarkLink:
  52. showJitsiWatermark || showJitsiWatermarkForGuests
  53. ? interfaceConfig.JITSI_WATERMARK_LINK : '',
  54. showBrandWatermark,
  55. showJitsiWatermark,
  56. showJitsiWatermarkForGuests,
  57. showPoweredBy: interfaceConfig.SHOW_POWERED_BY
  58. };
  59. }
  60. /**
  61. * Implements React's {@link Component#render()}.
  62. *
  63. * @inheritdoc
  64. * @returns {ReactElement}
  65. */
  66. render() {
  67. return (
  68. <div>
  69. {
  70. this._renderJitsiWatermark()
  71. }
  72. {
  73. this._renderBrandWatermark()
  74. }
  75. {
  76. this._renderPoweredBy()
  77. }
  78. </div>
  79. );
  80. }
  81. /**
  82. * Renders a brand watermark if it is enabled.
  83. *
  84. * @private
  85. * @returns {ReactElement|null} Watermark element or null.
  86. */
  87. _renderBrandWatermark() {
  88. if (this.state.showBrandWatermark) {
  89. return (
  90. <a
  91. href = { this.state.brandWatermarkLink }
  92. target = '_new'>
  93. <div
  94. className = 'watermark rightwatermark'
  95. style = { _RIGHT_WATERMARK_STYLE } />
  96. </a>
  97. );
  98. }
  99. return null;
  100. }
  101. /**
  102. * Renders a Jitsi watermark if it is enabled.
  103. *
  104. * @private
  105. * @returns {ReactElement|null}
  106. */
  107. _renderJitsiWatermark() {
  108. if (this.state.showJitsiWatermark
  109. || (APP.tokenData.isGuest
  110. && this.state.showJitsiWatermarkForGuests)) {
  111. return (
  112. <a
  113. href = { this.state.jitsiWatermarkLink }
  114. target = '_new'>
  115. <div className = 'watermark leftwatermark' />
  116. </a>
  117. );
  118. }
  119. return null;
  120. }
  121. /**
  122. * Renders a powered by block if it is enabled.
  123. *
  124. * @private
  125. * @returns {ReactElement|null}
  126. */
  127. _renderPoweredBy() {
  128. if (this.state.showPoweredBy) {
  129. const { t } = this.props;
  130. return (
  131. <a
  132. className = 'poweredby'
  133. href = 'http://jitsi.org'
  134. target = '_new'>
  135. <span>{ t('poweredby') } jitsi.org</span>
  136. </a>
  137. );
  138. }
  139. return null;
  140. }
  141. }
  142. export default translate(Watermarks);