apm-react-audio-player 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +87 -35
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -167,29 +167,48 @@ var useAudioPlayer = function useAudioPlayer(audioRef, progressBarRef, volumeCtr
167
167
  setCurrentTime(progressBarRef.current.value);
168
168
  progressBarRef.current.style.setProperty('--seek-before-width', "".concat(progressBarRef.current.value / duration * 100, "%"));
169
169
  };
170
- var timeTravel = function timeTravel(newTime) {
171
- progressBarRef.current.value = newTime;
170
+ var changeRange = function changeRange() {
171
+ audioRef.current.currentTime = progressBarRef.current.value;
172
172
  updateCurrentTime();
173
173
  changePlayerCurrentTime();
174
174
  };
175
- var backThirty = function backThirty() {
176
- timeTravel(Number(progressBarRef.current.value) - 30);
175
+ var rewindControl = function rewindControl() {
176
+ progressBarRef.current.value = Number(progressBarRef.current.value) - 15;
177
+ changeRange();
177
178
  };
178
- var forwardThirty = function forwardThirty() {
179
- timeTravel(Number(progressBarRef.current.value) + 30);
179
+ var forwardControl = function forwardControl() {
180
+ progressBarRef.current.value = Number(progressBarRef.current.value) + 15;
181
+ changeRange();
180
182
  };
181
183
  var volumeControl = function volumeControl(e) {
182
184
  var value = e.target.value;
183
185
  var volume = value / 100;
184
186
  audioRef.current.volume = volume;
185
187
  };
188
+ var formatCalculateTime = function formatCalculateTime(timeString) {
189
+ var toString = String(timeString);
190
+ if (toString.split(':').length === 3) {
191
+ var _toString$split = toString.split(':'),
192
+ _toString$split2 = _slicedToArray(_toString$split, 3),
193
+ hours = _toString$split2[0],
194
+ minutes = _toString$split2[1],
195
+ seconds = _toString$split2[2];
196
+ return "".concat(parseInt(hours), "hr ").concat(parseInt(minutes), "min ").concat(parseInt(seconds), "sec");
197
+ } else if (toString.split(':').length === 2) {
198
+ var _toString$split3 = toString.split(':'),
199
+ _toString$split4 = _slicedToArray(_toString$split3, 2),
200
+ _minutes = _toString$split4[0],
201
+ _seconds = _toString$split4[1];
202
+ return "".concat(parseInt(_minutes), "min ").concat(parseInt(_seconds), "sec");
203
+ }
204
+ };
186
205
  return {
187
206
  onLoadedMetadata: onLoadedMetadata,
188
207
  calculateTime: calculateTime,
189
208
  togglePlaying: togglePlaying,
190
209
  changePlayerCurrentTime: changePlayerCurrentTime,
191
- backThirty: backThirty,
192
- forwardThirty: forwardThirty,
210
+ rewindControl: rewindControl,
211
+ forwardControl: forwardControl,
193
212
  play: play,
194
213
  pause: pause,
195
214
  isPlaying: isPlaying,
@@ -197,9 +216,10 @@ var useAudioPlayer = function useAudioPlayer(audioRef, progressBarRef, volumeCtr
197
216
  currentTime: currentTime,
198
217
  duration: duration,
199
218
  volumeCtrl: volumeCtrl,
219
+ isMuted: isMuted,
200
220
  volumeControl: volumeControl,
201
221
  toggleMute: toggleMute,
202
- isMuted: isMuted
222
+ formatCalculateTime: formatCalculateTime
203
223
  };
204
224
  };
205
225
 
@@ -252,7 +272,6 @@ var ReactAudioPlayerInner = function ReactAudioPlayerInner(props) {
252
272
 
253
273
  var customStyles = props ? props.style : '';
254
274
  var title = props.title,
255
- description = props.description,
256
275
  audioSrc = props.audioSrc,
257
276
  volumeCtrl = props.volumeCtrl,
258
277
  playBtnClass = props.playBtnClass,
@@ -267,7 +286,12 @@ var ReactAudioPlayerInner = function ReactAudioPlayerInner(props) {
267
286
  duration = props.duration,
268
287
  volumeControl = props.volumeControl,
269
288
  toggleMute = props.toggleMute,
270
- isMuted = props.isMuted;
289
+ isMuted = props.isMuted,
290
+ formatCalculateTime = props.formatCalculateTime,
291
+ rewindControl = props.rewindControl,
292
+ forwardControl = props.forwardControl;
293
+ var audioDuration = duration && !isNaN(duration) && calculateTime(duration);
294
+ var formatDuration = duration && !isNaN(duration) && audioDuration && formatCalculateTime(audioDuration);
271
295
  return audioSrc && /*#__PURE__*/React__default.createElement("div", {
272
296
  className: "audioPlayer",
273
297
  style: customStyles && customStyles.audioPlayer
@@ -281,8 +305,8 @@ var ReactAudioPlayerInner = function ReactAudioPlayerInner(props) {
281
305
  className: "player-layout"
282
306
  }, volumeCtrl && /*#__PURE__*/React__default.createElement("div", {
283
307
  className: "player-controls-secondary-outer"
284
- }, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("span", {
285
- className: "player-volume-text"
308
+ }, /*#__PURE__*/React__default.createElement("div", {
309
+ className: "player-volume-control"
286
310
  }, /*#__PURE__*/React__default.createElement("div", {
287
311
  className: "player-volume-icon"
288
312
  }, /*#__PURE__*/React__default.createElement("button", {
@@ -295,31 +319,47 @@ var ReactAudioPlayerInner = function ReactAudioPlayerInner(props) {
295
319
  }) : /*#__PURE__*/React__default.createElement("img", {
296
320
  src: "/img/icon-volume-mute.svg",
297
321
  alt: "Volume Mute Button"
298
- }))), /*#__PURE__*/React__default.createElement("span", null, "Volume")), /*#__PURE__*/React__default.createElement("div", {
299
- className: "player-controls player-controls-secondary"
300
- }, /*#__PURE__*/React__default.createElement("div", {
301
- className: "player-volume"
322
+ }))), /*#__PURE__*/React__default.createElement("div", {
323
+ className: "player-timeline player-controls-secondary"
302
324
  }, /*#__PURE__*/React__default.createElement("input", {
303
325
  id: "player-volume",
304
326
  type: "range",
305
- className: "player-timeline-progress js-player-volume-current",
327
+ className: "player-volume-progress",
306
328
  min: 0,
307
329
  max: 100,
308
330
  "aria-hidden": "true",
331
+ "aria-valuetext": "100%",
309
332
  onChange: function onChange(e) {
310
333
  return volumeControl(e);
311
334
  }
312
- }))))), /*#__PURE__*/React__default.createElement("div", {
335
+ })), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("img", {
336
+ src: "/img/icon-volume-high.svg",
337
+ alt: "Volume Button"
338
+ }))), /*#__PURE__*/React__default.createElement("div", {
339
+ className: "player-volume-label"
340
+ }, "Volume")), /*#__PURE__*/React__default.createElement("div", {
313
341
  className: "player-controls"
314
- }, /*#__PURE__*/React__default.createElement("div", {
315
- className: "player-btn-play-pause-outer"
342
+ }, !isLive && /*#__PURE__*/React__default.createElement("div", {
343
+ className: "player-backward-forward-controls"
344
+ }, /*#__PURE__*/React__default.createElement("button", {
345
+ onClick: rewindControl
346
+ }, /*#__PURE__*/React__default.createElement("img", {
347
+ src: "/img/icon-rewind-15.svg",
348
+ alt: "Backward 15 seconds"
349
+ }))), /*#__PURE__*/React__default.createElement("div", {
350
+ className: "".concat(isPlaying ? 'is-playing' : '', " player-btn-play-pause-outer")
316
351
  }, /*#__PURE__*/React__default.createElement("button", {
317
352
  onClick: togglePlaying,
318
353
  className: playBtnClass,
319
354
  style: customStyles && customStyles.playPause
320
- }, isPlaying ? /*#__PURE__*/React__default.createElement(Pause, null) : /*#__PURE__*/React__default.createElement(Play, null)))), customHtml && customHtml, !isLive && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
321
- className: "player-currentTime"
322
- }, calculateTime(currentTime)), /*#__PURE__*/React__default.createElement("div", {
355
+ }, isPlaying ? /*#__PURE__*/React__default.createElement(Pause, null) : /*#__PURE__*/React__default.createElement(Play, null))), !isLive && /*#__PURE__*/React__default.createElement("div", {
356
+ className: "player-backward-forward-controls"
357
+ }, /*#__PURE__*/React__default.createElement("button", {
358
+ onClick: forwardControl
359
+ }, /*#__PURE__*/React__default.createElement("img", {
360
+ src: "/img/icon-forward-15.svg",
361
+ alt: "Forward 15 seconds"
362
+ })))), !isLive && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
323
363
  className: "player-timeline"
324
364
  }, /*#__PURE__*/React__default.createElement("input", {
325
365
  type: "range",
@@ -328,20 +368,26 @@ var ReactAudioPlayerInner = function ReactAudioPlayerInner(props) {
328
368
  "aria-hidden": "true",
329
369
  ref: progressBarRef,
330
370
  onChange: changePlayerCurrentTime
331
- })), /*#__PURE__*/React__default.createElement("div", {
371
+ }), /*#__PURE__*/React__default.createElement("div", {
372
+ className: "player-times"
373
+ }, /*#__PURE__*/React__default.createElement("div", {
374
+ className: "player-currentTime"
375
+ }, calculateTime(currentTime)), /*#__PURE__*/React__default.createElement("div", {
332
376
  className: "player-duration",
333
377
  style: customStyles && customStyles.duration
334
- }, duration && !isNaN(duration) && calculateTime(duration))), /*#__PURE__*/React__default.createElement("div", {
378
+ }, duration && !isNaN(duration) && calculateTime(duration))))), /*#__PURE__*/React__default.createElement("div", {
335
379
  className: "player-content"
336
- }, /*#__PURE__*/React__default.createElement("div", {
380
+ }, customHtml && customHtml, /*#__PURE__*/React__default.createElement("div", {
337
381
  className: "player-audio-type type-sm"
338
382
  }, isLive ? /*#__PURE__*/React__default.createElement("div", {
339
383
  className: "player-live-label"
340
384
  }, "On Air") : /*#__PURE__*/React__default.createElement("div", {
385
+ className: "player-label"
386
+ }, "listen", /*#__PURE__*/React__default.createElement("div", {
387
+ className: "player-label-duration"
388
+ }, "[".concat(formatDuration, "]"))), /*#__PURE__*/React__default.createElement("div", {
341
389
  className: "player-title"
342
- }, " ", title || '', " "), /*#__PURE__*/React__default.createElement("div", {
343
- className: "player-description"
344
- }, description || '', " ")))));
390
+ }, title || '', " ")))));
345
391
  };
346
392
 
347
393
  var ReactAudioPlayer = function ReactAudioPlayer(props) {
@@ -363,21 +409,27 @@ var ReactAudioPlayer = function ReactAudioPlayer(props) {
363
409
  duration = _useAudioPlayer.duration,
364
410
  volumeControl = _useAudioPlayer.volumeControl,
365
411
  toggleMute = _useAudioPlayer.toggleMute,
366
- isMuted = _useAudioPlayer.isMuted;
412
+ isMuted = _useAudioPlayer.isMuted,
413
+ formatCalculateTime = _useAudioPlayer.formatCalculateTime,
414
+ rewindControl = _useAudioPlayer.rewindControl,
415
+ forwardControl = _useAudioPlayer.forwardControl;
367
416
  return /*#__PURE__*/React__default.createElement(ReactAudioPlayerInner, _extends({}, props, {
368
417
  audioPlayerRef: audioPlayerRef,
369
418
  progressBarRef: progressBarRef,
419
+ isPlaying: isPlaying,
420
+ isMuted: isMuted,
421
+ currentTime: currentTime,
422
+ duration: duration,
370
423
  customStyles: customStyles,
371
424
  onLoadedMetadata: onLoadedMetadata,
372
425
  calculateTime: calculateTime,
373
426
  togglePlaying: togglePlaying,
374
427
  changePlayerCurrentTime: changePlayerCurrentTime,
375
- isPlaying: isPlaying,
376
- currentTime: currentTime,
377
- duration: duration,
378
428
  volumeControl: volumeControl,
379
429
  toggleMute: toggleMute,
380
- isMuted: isMuted
430
+ formatCalculateTime: formatCalculateTime,
431
+ rewindControl: rewindControl,
432
+ forwardControl: forwardControl
381
433
  }));
382
434
  };
383
435
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apm-react-audio-player",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "author": "Jason Phan <jphan@mpr.org>",
5
5
  "license": "MIT",
6
6
  "private": false,