import React, { Component, PropTypes } from 'react'; import { FormattedMessage } from 'react-intl'; import Modal from '/imports/ui/components/modal/component'; import { Tab, Tabs, TabList, TabPanel } from 'react-tabs'; import ClosedCaptions from '/imports/ui/components/settings/submenus/closed-captions/component'; import Audio from '/imports/ui/components/settings/submenus/audio/component'; import Application from '/imports/ui/components/settings/submenus/application/container'; import Participants from '/imports/ui/components/settings/submenus/participants/component'; import Video from '/imports/ui/components/settings/submenus/video/component'; import Button from '../button/component'; import Icon from '../icon/component'; import styles from './styles'; import cx from 'classnames'; const propTypes = { }; export default class Settings extends Component { constructor(props) { super(props); const audio = props.audio; const video = props.video; const application = props.application; const cc = props.cc; const participants = props.participants; this.state = { current: { audio, video, application, cc, participants, }, saved: { audio: _.clone(audio), video: _.clone(video), application: _.clone(application), cc: _.clone(cc), participants: _.clone(participants), }, selectedTab: 2, }; this.handleSettingsApply = props.updateSettings; this.handleUpdateSettings = this.handleUpdateSettings.bind(this); this.handleSelectTab = this.handleSelectTab.bind(this); } setHtmlFontSize(size) { document.getElementsByTagName('html')[0].style.fontSize = size; }; render() { return ( { this.handleSettingsApply(this.state.current); }), label: 'Save', description: 'Saves the changes and close the settings menu', }} dismiss={{ callback: (() => { this.setHtmlFontSize(this.state.saved.application.fontSize); }), label: 'Cancel', description: 'Discart the changes and close the settings menu', }}> {this.renderModalContent()} ); } handleUpdateSettings(key, newSettings) { let settings = this.state; settings.current[key] = newSettings; this.setState(settings); } handleSelectTab(tab) { this.setState({ selectedTab: tab, }); } renderModalContent() { const { isModerator, } = this.props; return ( Application Audio Video Closed Captions { isModerator ? Participants : null } { isModerator ? : null } ); } } Settings.propTypes = propTypes;