Skip to content

Commit fda886a

Browse files
committed
Rename mapVideoElToProps and make them specific event handlers
1 parent ca6b485 commit fda886a

File tree

7 files changed

+47
-29
lines changed

7 files changed

+47
-29
lines changed

src/DefaultPlayer/DefaultPlayer.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ const DefaultPlayer = ({
2222
style,
2323
children,
2424
className,
25-
setVolume,
26-
toggleMute,
27-
togglePause,
28-
setCurrentTime,
25+
onSeekChange,
26+
onVolumeChange,
27+
onVolumeClick,
28+
onPlayPauseClick,
2929
onFullscreenClick,
3030
...restProps
3131
}) => {
@@ -47,16 +47,16 @@ const DefaultPlayer = ({
4747
</video>
4848
<div className={styles.controls}>
4949
<PlayPause
50-
togglePause={togglePause}
50+
onClick={onPlayPauseClick}
5151
{...video} />
5252
<Seek
5353
className={styles.seek}
54-
setCurrentTime={setCurrentTime}
54+
onChange={onSeekChange}
5555
{...video} />
5656
<Time {...video} />
5757
<Volume
58-
setVolume={setVolume}
59-
toggleMute={toggleMute}
58+
onChange={onVolumeChange}
59+
onClick={onVolumeClick}
6060
{...video} />
6161
<Fullscreen
6262
onClick={onFullscreenClick}
@@ -78,9 +78,9 @@ export default video(
7878
}),
7979
(videoEl, state) => ({
8080
onFullscreenClick: () => fullscreen(videoEl),
81-
toggleMute: () => toggleMute(videoEl, state),
82-
togglePause: () => togglePause(videoEl, state),
83-
setVolume: (value) => setVolume(videoEl, state, value),
84-
setCurrentTime: (value) => setCurrentTime(videoEl, state, value)
81+
onVolumeClick: () => toggleMute(videoEl, state),
82+
onPlayPauseClick: () => togglePause(videoEl, state),
83+
onVolumeChange: (e) => setVolume(videoEl, state, e.target.value),
84+
onSeekChange: (e) => setCurrentTime(videoEl, state, e.target.value * state.duration / 100)
8585
})
8686
);

src/DefaultPlayer/PlayPause/PlayPause.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ import styles from './PlayPause.css';
33
import PlayArrow from './../Icon/play_arrow.svg';
44
import Pause from './../Icon/pause.svg';
55

6-
export default ({ togglePause, paused, className }) => {
6+
export default ({ onClick, paused, className }) => {
77
return (
88
<div className={[
99
styles.component,
1010
className
1111
].join(' ')}>
1212
<button
1313
className={styles.button}
14-
onClick={togglePause}
14+
onClick={onClick}
1515
aria-label={ paused
1616
? 'Play'
1717
: 'Pause' }

src/DefaultPlayer/PlayPause/PlayPause.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ describe('PlayPause', () => {
2525
.toContain(newClassNameString);
2626
});
2727

28-
it('triggers \'togglePause\' prop when the button is clicked', () => {
28+
it('triggers \'onClick\' prop when the button is clicked', () => {
2929
const spy = jest.fn();
3030
component.setProps({
31-
togglePause: spy
31+
onClick: spy
3232
});
3333
expect(spy)
3434
.not.toHaveBeenCalled();

src/DefaultPlayer/Seek/Seek.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import React from 'react';
22
import styles from './Seek.css';
33

4-
export default ({ setCurrentTime, duration, percentagePlayed, percentageBuffered, className }) => {
5-
const change = (e) => {
6-
setCurrentTime(e.target.value * duration / 100);
7-
};
4+
export default ({ onChange, duration, percentagePlayed, percentageBuffered, className }) => {
85
return (
96
<div className={[
107
styles.component,
@@ -27,7 +24,7 @@ export default ({ setCurrentTime, duration, percentagePlayed, percentageBuffered
2724
max="100"
2825
type="range"
2926
orient="horizontal"
30-
onChange={change}
27+
onChange={onChange}
3128
className={styles.input}
3229
value={percentagePlayed} />
3330
</div>

src/DefaultPlayer/Seek/Seek.test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,18 @@ describe('Seek', () => {
4242
.toEqual(10);
4343
});
4444

45+
it('triggers \'onChange\' prop when the input is changed', () => {
46+
const spy = jest.fn();
47+
component.setProps({
48+
onChange: spy
49+
});
50+
expect(spy)
51+
.not.toHaveBeenCalled();
52+
component.find('input').simulate('change');
53+
expect(spy)
54+
.toHaveBeenCalled();
55+
});
56+
4557
it('changes the played fill bar width', () => {
4658
component.setProps({
4759
percentagePlayed: 0

src/DefaultPlayer/Volume/Volume.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ import styles from './Volume.css';
33
import VolumeOff from './../Icon/volume_off.svg';
44
import VolumeUp from './../Icon/volume_up.svg';
55

6-
export default ({ setVolume, toggleMute, volume, muted, className }) => {
7-
const change = (e) => {
8-
setVolume(e.target.value);
9-
};
6+
export default ({ onChange, onClick, volume, muted, className }) => {
107
const volumeValue = muted
118
? 0
129
: +volume;
@@ -21,7 +18,7 @@ export default ({ setVolume, toggleMute, volume, muted, className }) => {
2118
? 'Unmute'
2219
: 'Mute'}
2320
className={styles.button}
24-
onClick={toggleMute}
21+
onClick={onClick}
2522
type="button">
2623
{ isSilent
2724
? <VolumeOff
@@ -48,7 +45,7 @@ export default ({ setVolume, toggleMute, volume, muted, className }) => {
4845
max="1"
4946
type="range"
5047
orient="vertical"
51-
onChange={change}
48+
onChange={onChange}
5249
className={styles.input}
5350
value={volumeValue} />
5451
</div>

src/DefaultPlayer/Volume/Volume.test.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ describe('Volume', () => {
3939
.toEqual('1');
4040
});
4141

42-
it('triggers \'toggleMute\' prop when the button is clicked', () => {
42+
it('triggers \'onClick\' prop when the button is clicked', () => {
4343
const spy = jest.fn();
4444
component.setProps({
45-
toggleMute: spy
45+
onClick: spy
4646
});
4747
expect(spy)
4848
.not.toHaveBeenCalled();
@@ -51,6 +51,18 @@ describe('Volume', () => {
5151
.toHaveBeenCalled();
5252
});
5353

54+
it('triggers \'onChange\' prop when the input is changed', () => {
55+
const spy = jest.fn();
56+
component.setProps({
57+
onChange: spy
58+
});
59+
expect(spy)
60+
.not.toHaveBeenCalled();
61+
component.find('input').simulate('change');
62+
expect(spy)
63+
.toHaveBeenCalled();
64+
});
65+
5466
describe('when muted', () => {
5567
beforeAll(() => {
5668
component.setProps({

0 commit comments

Comments
 (0)