diff --git a/src/routes/Player/ControlBar/ControlBar.js b/src/routes/Player/ControlBar/ControlBar.js
index 3d2859693..91ee186e9 100644
--- a/src/routes/Player/ControlBar/ControlBar.js
+++ b/src/routes/Player/ControlBar/ControlBar.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import classnames from 'classnames';
import debounce from 'lodash.debounce';
import Icon from 'stremio-icons/dom';
-import { Slider } from 'stremio-common';
+import { Slider, Popup } from 'stremio-common';
import styles from './styles';
class ControlBar extends Component {
@@ -11,7 +11,8 @@ class ControlBar extends Component {
super(props);
this.state = {
- seekTime: -1
+ time: -1,
+ volume: -1
};
}
@@ -21,31 +22,53 @@ class ControlBar extends Component {
nextProps.time !== this.props.time ||
nextProps.duration !== this.props.duration ||
nextProps.volume !== this.props.volume ||
- nextState.seekTime !== this.state.seekTime;
+ nextState.time !== this.state.time ||
+ nextState.volume !== this.state.volume;
}
componentWillUnmount() {
- this.resetSeekTime.cancel();
+ this.resetTime.cancel();
+ this.resetVolume.cancel();
}
- resetSeekTime = debounce(() => {
- this.setState({ seekTime: -1 });
- }, 3000)
+ resetTime = debounce(() => {
+ this.setState({ time: -1 });
+ }, 1500)
- onSliding = (seekTime) => {
- this.resetSeekTime.cancel();
- this.setState({ seekTime });
+ resetVolume = debounce(() => {
+ this.setState({ volume: -1 });
+ }, 100)
+
+ onTimeSliding = (time) => {
+ this.resetTime.cancel();
+ this.setState({ time });
}
- onSlidingCompleted = (seekTime) => {
- this.setState({ seekTime });
- this.props.seek(seekTime);
- this.resetSeekTime();
+ onTimeSlidingCompleted = (time) => {
+ this.setState({ time });
+ this.props.setTime(time);
+ this.resetTime();
}
- onSlidingAborted = () => {
- this.resetSeekTime.cancel();
- this.setState({ seekTime: -1 });
+ onTimeSlidingAborted = () => {
+ this.resetTime.cancel();
+ this.setState({ time: -1 });
+ }
+
+ onVolumeSliding = (volume) => {
+ this.resetVolume.cancel();
+ this.setState({ volume });
+ }
+
+ onVolumeSlidingCompleted = (volume) => {
+ this.setState({ volume });
+ this.props.setVolume(volume);
+ this.resetVolume();
+ }
+
+ onVolumeSlidingAborted = () => {
+ this.resetVolume.cancel();
+ this.setState({ volume: -1 });
}
onPlayPauseButtonClicked = () => {
@@ -59,22 +82,22 @@ class ControlBar extends Component {
return `${('0' + hours).slice(-2)}:${('0' + minutes).slice(-2)}:${('0' + seconds).slice(-2)}`;
}
- renderSeekSlider() {
+ renderTimeSlider() {
if (this.props.time === null || this.props.duration === null) {
return null;
}
return (