Skip to content

Commit

Permalink
Merge pull request #22 from THEOplayer/bugfix/skip-buttons-downloaded…
Browse files Browse the repository at this point in the history
…-mp4

Bugfix/skip buttons downloaded mp4
  • Loading branch information
wjoosen authored Mar 27, 2024
2 parents 3bfdc21 + 0a4dfcf commit 56e391b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## Unreleased

### Fixed

- Fixed an issue where the skip buttons would remain disabled for MP4 sources.

## [0.5.0] - 24-03-06

### Added
Expand Down
15 changes: 11 additions & 4 deletions src/ui/components/button/SkipButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,24 @@ export class SkipButton extends PureComponent<SkipButtonProps, SkipButtonState>

componentDidMount() {
const player = (this.context as UiContext).player;
player.addEventListener(PlayerEventType.PROGRESS, this.onTimeupdate);
player.addEventListener(PlayerEventType.PROGRESS, this.onProgress);
player.addEventListener(PlayerEventType.PLAYING, this.onPlaying);
this.setState({ enabled: player.seekable.length > 0 });
}

componentWillUnmount() {
const player = (this.context as UiContext).player;
player.removeEventListener(PlayerEventType.PROGRESS, this.onTimeupdate);
player.removeEventListener(PlayerEventType.PROGRESS, this.onProgress);
player.removeEventListener(PlayerEventType.PLAYING, this.onPlaying);
}

private readonly onTimeupdate = (event: ProgressEvent) => {
this.setState({ enabled: event.seekable.length > 0 });
private readonly onProgress = (event: ProgressEvent) => {
this.setState({ enabled: event.seekable.length > 0 || event.buffered.length > 0 });
};

private readonly onPlaying = () => {
const player = (this.context as UiContext).player;
this.setState({ enabled: player.seekable.length > 0 || player.buffered.length > 0 });
};

private readonly onPress = () => {
Expand Down

0 comments on commit 56e391b

Please sign in to comment.