| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- // FULLSCREEN
 
- // -----------------------------------
 
- import React, { Component } from 'react';
 
- import PropTypes from 'prop-types';
 
- import screenfull from 'screenfull';
 
- const FULLSCREEN_ON_ICON = 'fa fa-expand';
 
- const FULLSCREEN_OFF_ICON = 'fa fa-compress';
 
- /**
 
-  * Wrapper for screenfull plugin
 
-  * Wraps child element and toggles
 
-  * fullscreen mode on click
 
-  */
 
- export default class ToggleFullscreen extends Component {
 
-     static propTypes = {
 
-         /** tag to use, defaults to A */
 
-         tag: PropTypes.string
 
-     };
 
-     static defaultProps = {
 
-         tag: 'a'
 
-     };
 
-     state = {
 
-         iconClass: FULLSCREEN_ON_ICON
 
-     };
 
-     componentDidMount() {
 
-         this.fsToggler = this.element;
 
-         // Not supported under IE
 
-         const ua = window.navigator.userAgent;
 
-         if (ua.indexOf('MSIE ') > 0 || !!ua.match(/Trident.*rv:11\./)) {
 
-             this.fsToggler.style.display = 'none';
 
-             return; // and abort
 
-         }
 
-         this.fsToggler.addEventListener('click', this.handleClisk);
 
-         if (screenfull.raw && screenfull.raw.fullscreenchange)
 
-             document.addEventListener(screenfull.raw.fullscreenchange, this.toggleFSIcon);
 
-     }
 
-     handleClisk = e => {
 
-         e.preventDefault();
 
-         if (screenfull.enabled) {
 
-             screenfull.toggle();
 
-             // Switch icon indicator
 
-             this.toggleFSIcon();
 
-         } else {
 
-             console.log('Fullscreen not enabled');
 
-         }
 
-     };
 
-     toggleFSIcon = () => {
 
-         this.setState({
 
-             iconClass: screenfull.isFullscreen ? FULLSCREEN_OFF_ICON : FULLSCREEN_ON_ICON
 
-         });
 
-     };
 
-     componentWillUnmount() {
 
-         this.fsToggler.removeEventListener('click', this.handleClisk);
 
-         document.removeEventListener(screenfull.raw.fullscreenchange, this.toggleFSIcon);
 
-     }
 
-     setRef = node => {
 
-         this.element = node;
 
-     };
 
-     render() {
 
-         const { tag: Tag } = this.props;
 
-         return (
 
-             <Tag ref={this.setRef} {...this.props}>
 
-                 <em className={this.state.iconClass} />
 
-             </Tag>
 
-         );
 
-     }
 
- }
 
 
  |