apm-react-audio-player 1.0.3 → 1.0.5

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 +73 -19
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
6
6
 
7
7
  var React = require('react');
8
8
  var React__default = _interopDefault(React);
9
+ var Image = _interopDefault(require('next/image'));
9
10
 
10
11
  var Play = function Play() {
11
12
  return /*#__PURE__*/React__default.createElement("svg", {
@@ -86,7 +87,7 @@ function _nonIterableRest() {
86
87
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
87
88
  }
88
89
 
89
- var useAudioPlayer = function useAudioPlayer(audioRef, progressBarRef) {
90
+ var useAudioPlayer = function useAudioPlayer(audioRef, progressBarRef, volumeCtrl) {
90
91
  var _useState = React.useState(false),
91
92
  _useState2 = _slicedToArray(_useState, 2),
92
93
  isPlaying = _useState2[0],
@@ -108,7 +109,9 @@ var useAudioPlayer = function useAudioPlayer(audioRef, progressBarRef) {
108
109
  var onLoadedMetadata = function onLoadedMetadata() {
109
110
  var seconds = Math.floor(audioRef.current.duration);
110
111
  setDuration(seconds);
111
- progressBarRef.current.max = seconds;
112
+ if (!audioRef.current.currentSrc.includes('stream')) {
113
+ progressBarRef.current.max = seconds;
114
+ }
112
115
  };
113
116
  var updateCurrentTime = function updateCurrentTime() {
114
117
  setCurrentTime(progressBarRef.current.value);
@@ -171,6 +174,11 @@ var useAudioPlayer = function useAudioPlayer(audioRef, progressBarRef) {
171
174
  var forwardThirty = function forwardThirty() {
172
175
  timeTravel(Number(progressBarRef.current.value) + 30);
173
176
  };
177
+ var volumeControl = function volumeControl(e) {
178
+ var value = e.target.value;
179
+ var volume = value / 100;
180
+ audioRef.current.volume = volume;
181
+ };
174
182
  return {
175
183
  onLoadedMetadata: onLoadedMetadata,
176
184
  calculateTime: calculateTime,
@@ -181,7 +189,9 @@ var useAudioPlayer = function useAudioPlayer(audioRef, progressBarRef) {
181
189
  isPlaying: isPlaying,
182
190
  isFinished: isFinishedPlaying,
183
191
  currentTime: currentTime,
184
- duration: duration
192
+ duration: duration,
193
+ volumeCtrl: volumeCtrl,
194
+ volumeControl: volumeControl
185
195
  };
186
196
  };
187
197
 
@@ -194,7 +204,12 @@ var ReactAudioPlayer = function ReactAudioPlayer(props) {
194
204
  var customStyles = props ? props.style : '';
195
205
  var title = props.title,
196
206
  description = props.description,
197
- audioSrc = props.audioSrc;
207
+ audioSrc = props.audioSrc,
208
+ volumeCtrl = props.volumeCtrl,
209
+ playBtnClass = props.playBtnClass,
210
+ customHtml = props.customHtml,
211
+ customProps = props.customProps,
212
+ isLive = props.isLive;
198
213
 
199
214
  // hooks
200
215
  var _useAudioPlayer = useAudioPlayer(audioPlayerRef, progressBarRef),
@@ -204,7 +219,8 @@ var ReactAudioPlayer = function ReactAudioPlayer(props) {
204
219
  changePlayerCurrentTime = _useAudioPlayer.changePlayerCurrentTime,
205
220
  isPlaying = _useAudioPlayer.isPlaying,
206
221
  currentTime = _useAudioPlayer.currentTime,
207
- duration = _useAudioPlayer.duration;
222
+ duration = _useAudioPlayer.duration,
223
+ volumeControl = _useAudioPlayer.volumeControl;
208
224
  return audioSrc && /*#__PURE__*/React__default.createElement("div", {
209
225
  className: "audioPlayer",
210
226
  style: customStyles && customStyles.audioPlayer
@@ -214,33 +230,71 @@ var ReactAudioPlayer = function ReactAudioPlayer(props) {
214
230
  preload: "metadata",
215
231
  onLoadedMetadata: onLoadedMetadata
216
232
  }), /*#__PURE__*/React__default.createElement("div", {
217
- className: "playPauseContainer"
233
+ className: "player-layout"
234
+ }, volumeCtrl && /*#__PURE__*/React__default.createElement("div", {
235
+ className: "player-controls-secondary-outer"
236
+ }, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("span", {
237
+ className: "player-volume-text"
238
+ }, /*#__PURE__*/React__default.createElement("img", {
239
+ src: "/img/icon-volume-low.svg",
240
+ alt: ""
241
+ }), "Volume"), /*#__PURE__*/React__default.createElement("div", {
242
+ className: "player-controls player-controls-secondary"
243
+ }, /*#__PURE__*/React__default.createElement("div", {
244
+ className: "player-volume"
245
+ }, /*#__PURE__*/React__default.createElement("input", {
246
+ id: "player-volume",
247
+ type: "range",
248
+ className: "player-timeline-progress js-player-volume-current",
249
+ min: 0,
250
+ max: 100,
251
+ "aria-hidden": "true",
252
+ onChange: function onChange(e) {
253
+ return volumeControl(e);
254
+ }
255
+ }))))), /*#__PURE__*/React__default.createElement("div", {
256
+ className: "player-controls"
257
+ }, /*#__PURE__*/React__default.createElement("div", {
258
+ className: "player-btn-play-pause-outer"
218
259
  }, /*#__PURE__*/React__default.createElement("button", {
219
260
  onClick: togglePlaying,
220
- className: "playPause",
261
+ className: playBtnClass,
221
262
  style: customStyles && customStyles.playPause
222
- }, isPlaying ? /*#__PURE__*/React__default.createElement(Pause, null) : /*#__PURE__*/React__default.createElement(Play, {
223
- className: "play"
224
- }))), /*#__PURE__*/React__default.createElement("div", {
225
- className: "currentTime"
263
+ }, isPlaying ? /*#__PURE__*/React__default.createElement(Pause, null) : /*#__PURE__*/React__default.createElement(Play, null)))), customHtml && customHtml, customProps.audioThumbnailSrc && /*#__PURE__*/React__default.createElement("div", {
264
+ className: "player-thumb-and-text"
265
+ }, /*#__PURE__*/React__default.createElement("div", {
266
+ className: "player-thumbnail"
267
+ }, /*#__PURE__*/React__default.createElement(Image, {
268
+ className: "player-thumbnail",
269
+ src: customProps.audioThumbnailSrc,
270
+ alt: customProps.audioThumbnailAlt,
271
+ width: 500,
272
+ height: 500
273
+ }))), !isLive && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
274
+ className: "player-currentTime"
226
275
  }, calculateTime(currentTime)), /*#__PURE__*/React__default.createElement("div", {
227
- className: "progressBarContainer"
276
+ className: "player-timeline"
228
277
  }, /*#__PURE__*/React__default.createElement("input", {
229
278
  type: "range",
230
- className: "progressBar",
279
+ className: "player-timeline-progress",
231
280
  defaultValue: "0",
281
+ "aria-hidden": "true",
232
282
  ref: progressBarRef,
233
283
  onChange: changePlayerCurrentTime
234
284
  })), /*#__PURE__*/React__default.createElement("div", {
235
- className: "duration",
285
+ className: "player-duration",
236
286
  style: customStyles && customStyles.duration
237
- }, duration && !isNaN(duration) && calculateTime(duration)), /*#__PURE__*/React__default.createElement("div", {
238
- className: "textBox"
287
+ }, duration && !isNaN(duration) && calculateTime(duration))), /*#__PURE__*/React__default.createElement("div", {
288
+ className: "player-content"
239
289
  }, /*#__PURE__*/React__default.createElement("div", {
240
- className: "textBoxTitle"
290
+ className: "player-audio-type type-sm"
291
+ }, isLive ? /*#__PURE__*/React__default.createElement("div", {
292
+ className: "player-live-label"
293
+ }, "On Air") : /*#__PURE__*/React__default.createElement("div", {
294
+ className: "player-title"
241
295
  }, " ", title || '', " "), /*#__PURE__*/React__default.createElement("div", {
242
- className: "textBoxDescription"
243
- }, " ", description || '', " ")));
296
+ className: "player-description"
297
+ }, description || '', " ")))));
244
298
  };
245
299
 
246
300
  exports.ReactAudioPlayer = ReactAudioPlayer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apm-react-audio-player",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "author": "Jason Phan <jphan@mpr.org>",
5
5
  "license": "MIT",
6
6
  "private": false,