import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import browser from 'browser-detect'; import injectWbResizeEvent from '/imports/ui/components/presentation/resize-wrapper/component'; import Button from '/imports/ui/components/button/component'; import { HUNDRED_PERCENT, MAX_PERCENT, STEP } from '/imports/utils/slideCalcUtils'; import { styles } from './styles.scss'; import ZoomTool from './zoom-tool/component'; const intlMessages = defineMessages({ previousSlideLabel: { id: 'app.presentation.presentationToolbar.prevSlideLabel', description: 'Previous slide button label', }, nextSlideLabel: { id: 'app.presentation.presentationToolbar.nextSlideLabel', description: 'Next slide button label', }, goToSlide: { id: 'app.presentation.presentationToolbar.goToSlide', description: 'button for slide select', }, fitToWidth: { id: 'app.presentation.presentationToolbar.fitToWidth', description: 'button for fit to width', }, }); class PresentationToolbar extends Component { static renderAriaLabelsDescs() { return ( ); } constructor(props) { super(props); this.state = { sliderValue: 100, }; this.handleValuesChange = this.handleValuesChange.bind(this); this.handleSkipToSlideChange = this.handleSkipToSlideChange.bind(this); this.change = this.change.bind(this); this.setInt = 0; } handleSkipToSlideChange(event) { const requestedSlideNum = parseInt(event.target.value, 10); this.props.actions.skipToSlideHandler(requestedSlideNum); } handleValuesChange(event) { this.setState( { sliderValue: event.target.value }, () => this.handleZoom(this.state.sliderValue), ); } fitToScreenClickHandler() { this.setState({ fitToScreenValue: 'not_implemented_yet', }); } change(value) { this.props.zoomChanger(value); } renderSkipSlideOpts(numberOfSlides) { // Fill drop down menu with all the slides in presentation const { intl } = this.props; const optionList = []; for (let i = 1; i <= numberOfSlides; i += 1) { optionList.push(( )); } return optionList; } render() { const { currentSlideNum, numberOfSlides, actions, intl, zoom, } = this.props; const BROWSER_RESULTS = browser(); const isMobileBrowser = BROWSER_RESULTS.mobile || BROWSER_RESULTS.os.includes('Android'); return (
{PresentationToolbar.renderAriaLabelsDescs()} {
); } } PresentationToolbar.propTypes = { // Number of current slide being displayed currentSlideNum: PropTypes.number.isRequired, // Total number of slides in this presentation numberOfSlides: PropTypes.number.isRequired, // Actions required for the presenter toolbar actions: PropTypes.shape({ nextSlideHandler: PropTypes.func.isRequired, previousSlideHandler: PropTypes.func.isRequired, skipToSlideHandler: PropTypes.func.isRequired, }).isRequired, intl: PropTypes.shape({ formatMessage: PropTypes.func.isRequired, }).isRequired, }; export default injectWbResizeEvent(injectIntl(PresentationToolbar));