You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Filmstrip.web.js 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* @flow */
  2. import React, { Component } from 'react';
  3. /**
  4. * Implements a React {@link Component} which represents the filmstrip on
  5. * Web/React.
  6. *
  7. * @extends Component
  8. */
  9. export default class Filmstrip extends Component {
  10. /**
  11. * Implements React's {@link Component#render()}.
  12. *
  13. * @inheritdoc
  14. * @returns {ReactElement}
  15. */
  16. render() {
  17. return (
  18. <div className = 'filmstrip'>
  19. <div
  20. className = 'filmstrip__videos'
  21. id = 'remoteVideos'>
  22. <div
  23. className = 'filmstrip__videos'
  24. id = 'filmstripLocalVideo'>
  25. <span
  26. className = 'videocontainer'
  27. id = 'localVideoContainer'>
  28. <div className = 'videocontainer__background' />
  29. <span id = 'localVideoWrapper' />
  30. <audio
  31. autoPlay = { true }
  32. id = 'localAudio'
  33. muted = { true } />
  34. <div className = 'videocontainer__toolbar' />
  35. <div className = 'videocontainer__toptoolbar' />
  36. <div className = 'videocontainer__hoverOverlay' />
  37. </span>
  38. </div>
  39. <div
  40. className = 'filmstrip__videos'
  41. id = 'filmstripRemoteVideos'>
  42. {/*
  43. * This extra video container is needed for scrolling
  44. * thumbnails in Firefox; otherwise, the flex
  45. * thumbnails resize instead of causing overflow.
  46. */}
  47. <div
  48. className = 'remote-videos-container'
  49. id = 'filmstripRemoteVideosContainer' />
  50. </div>
  51. <audio
  52. id = 'userJoined'
  53. preload = 'auto'
  54. src = 'sounds/joined.wav' />
  55. <audio
  56. id = 'userLeft'
  57. preload = 'auto'
  58. src = 'sounds/left.wav' />
  59. </div>
  60. </div>
  61. );
  62. }
  63. }