From 2f4cf7bd964c68ffd4f36a970b2c4b04d6782013 Mon Sep 17 00:00:00 2001 From: NikolaBorislavovHristov Date: Fri, 22 Mar 2019 20:44:38 +0200 Subject: [PATCH] VolumeSlider refactored as a separate component --- src/routes/Player/ControlBar/ControlBar.js | 8 ++--- .../Player/ControlBar/VolumeBar/index.js | 3 -- .../Player/ControlBar/VolumeBar/styles.less | 23 ------------- .../VolumeSlider.js} | 32 ++++--------------- .../Player/ControlBar/VolumeSlider/index.js | 3 ++ .../ControlBar/VolumeSlider/styles.less | 24 ++++++++++++++ src/routes/Player/ControlBar/styles.less | 16 +++------- 7 files changed, 40 insertions(+), 69 deletions(-) delete mode 100644 src/routes/Player/ControlBar/VolumeBar/index.js delete mode 100644 src/routes/Player/ControlBar/VolumeBar/styles.less rename src/routes/Player/ControlBar/{VolumeBar/VolumeBar.js => VolumeSlider/VolumeSlider.js} (60%) create mode 100644 src/routes/Player/ControlBar/VolumeSlider/index.js create mode 100644 src/routes/Player/ControlBar/VolumeSlider/styles.less diff --git a/src/routes/Player/ControlBar/ControlBar.js b/src/routes/Player/ControlBar/ControlBar.js index 0f9322149..7eba4b5c7 100644 --- a/src/routes/Player/ControlBar/ControlBar.js +++ b/src/routes/Player/ControlBar/ControlBar.js @@ -4,7 +4,7 @@ const classnames = require('classnames'); const SeekBar = require('./SeekBar'); const PlayPauseButton = require('./PlayPauseButton'); const MuteButton = require('./MuteButton'); -const VolumeBar = require('./VolumeBar'); +const VolumeSlider = require('./VolumeSlider'); const SubtitlesButton = require('./SubtitlesButton'); const ShareButton = require('./ShareButton'); const styles = require('./styles'); @@ -29,11 +29,9 @@ const ControlBar = (props) => ( muted={props.muted} dispatch={props.dispatch} /> -
diff --git a/src/routes/Player/ControlBar/VolumeBar/index.js b/src/routes/Player/ControlBar/VolumeBar/index.js deleted file mode 100644 index cf0506264..000000000 --- a/src/routes/Player/ControlBar/VolumeBar/index.js +++ /dev/null @@ -1,3 +0,0 @@ -const VolumeBar = require('./VolumeBar'); - -module.exports = VolumeBar; diff --git a/src/routes/Player/ControlBar/VolumeBar/styles.less b/src/routes/Player/ControlBar/VolumeBar/styles.less deleted file mode 100644 index d58473c16..000000000 --- a/src/routes/Player/ControlBar/VolumeBar/styles.less +++ /dev/null @@ -1,23 +0,0 @@ -.volume-bar-container { - display: flex; - flex-direction: row; - align-items: center; - - .slider { - --thumb-size: var(--volume-bar-thumb-size); - --track-size: var(--volume-bar-track-size); - --track-before-color: var(--color-primary); - --track-color: var(--color-backgroundlighter); - --thumb-color: transparent; - flex: 1; - align-self: stretch; - margin: 0 calc(var(--volume-bar-thumb-size) / 2); - } - - &:hover, &:global(.active) { - .slider { - --track-before-color: var(--color-primarylight); - --thumb-color: var(--color-surfacelighter); - } - } -} \ No newline at end of file diff --git a/src/routes/Player/ControlBar/VolumeBar/VolumeBar.js b/src/routes/Player/ControlBar/VolumeSlider/VolumeSlider.js similarity index 60% rename from src/routes/Player/ControlBar/VolumeBar/VolumeBar.js rename to src/routes/Player/ControlBar/VolumeSlider/VolumeSlider.js index 5381c837d..0e1b4871e 100644 --- a/src/routes/Player/ControlBar/VolumeBar/VolumeBar.js +++ b/src/routes/Player/ControlBar/VolumeSlider/VolumeSlider.js @@ -2,11 +2,10 @@ const React = require('react'); const PropTypes = require('prop-types'); const classnames = require('classnames'); const debounce = require('lodash.debounce'); -const Icon = require('stremio-icons/dom'); const { Slider } = require('stremio-common'); const styles = require('./styles'); -class VolumeBar extends React.Component { +class VolumeSlider extends React.Component { constructor(props) { super(props); @@ -18,19 +17,13 @@ class VolumeBar extends React.Component { shouldComponentUpdate(nextProps, nextState) { return nextState.volume !== this.state.volume || nextProps.className !== this.props.className || - nextProps.buttonClassName !== this.props.buttonClassName || - nextProps.volume !== this.props.volume || - nextProps.muted !== this.props.muted; + nextProps.volume !== this.props.volume; } componentWillUnmount() { this.resetVolumeDebounced.cancel(); } - toogleVolumeMute = () => { - this.props.dispatch('setProp', 'muted', !this.props.muted); - } - resetVolumeDebounced = debounce(() => { this.setState({ volume: null }); }, 100) @@ -52,22 +45,11 @@ class VolumeBar extends React.Component { } render() { - if (this.props.volume === null) { - return null; - } - const volume = this.state.volume !== null ? this.state.volume : this.props.volume; - const icon = (volume === 0 || this.props.muted) ? 'ic_volume0' : - volume < 30 ? 'ic_volume1' : - volume < 70 ? 'ic_volume2' : - 'ic_volume3'; return ( -
-
- -
+