apm-react-audio-player 1.0.3 → 1.0.4

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