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.

PageReloadOverlay.js 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // @flow
  2. import React from 'react';
  3. import { translate } from '../../../base/i18n';
  4. import { connect } from '../../../base/redux';
  5. import AbstractPageReloadOverlay, {
  6. abstractMapStateToProps,
  7. type Props
  8. } from '../AbstractPageReloadOverlay';
  9. import OverlayFrame from './OverlayFrame';
  10. /**
  11. * Implements a React Component for page reload overlay. Shown before the
  12. * conference is reloaded. Shows a warning message and counts down towards the
  13. * reload.
  14. */
  15. class PageReloadOverlay extends AbstractPageReloadOverlay<Props> {
  16. /**
  17. * Implements React's {@link Component#render()}.
  18. *
  19. * @inheritdoc
  20. * @returns {ReactElement}
  21. */
  22. render() {
  23. const { isNetworkFailure, t } = this.props;
  24. const { message, timeLeft, title } = this.state;
  25. return (
  26. <OverlayFrame isLightOverlay = { isNetworkFailure }>
  27. <div
  28. aria-describedby = 'reload_overlay_text'
  29. aria-labelledby = 'reload_overlay_title'
  30. className = 'inlay'
  31. role = 'dialog'>
  32. <span
  33. className = 'reload_overlay_title'
  34. id = 'reload_overlay_title'
  35. role = 'heading'>
  36. { t(title) }
  37. </span>
  38. <span
  39. className = 'reload_overlay_text'
  40. id = 'reload_overlay_text'>
  41. { t(message, { seconds: timeLeft }) }
  42. </span>
  43. { this._renderProgressBar() }
  44. { this._renderButton() }
  45. </div>
  46. </OverlayFrame>
  47. );
  48. }
  49. _renderButton: () => React$Element<*>
  50. _renderProgressBar: () => React$Element<*>
  51. }
  52. export default translate(connect(abstractMapStateToProps)(PageReloadOverlay));