@mottosports/motto-video-player 1.0.1-rc.28 → 1.0.1-rc.29

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.
package/dist/index.mjs CHANGED
@@ -1107,7 +1107,7 @@ import { forwardRef, useEffect as useEffect5, useRef as useRef8, useImperativeHa
1107
1107
  import shaka3 from "shaka-player/dist/shaka-player.ui";
1108
1108
 
1109
1109
  // src/hooks/useShakePlayer.ts
1110
- import { useRef, useCallback } from "react";
1110
+ import { useCallback } from "react";
1111
1111
  import shaka from "shaka-player/dist/shaka-player.ui";
1112
1112
 
1113
1113
  // src/utils/devices.ts
@@ -1140,9 +1140,10 @@ var useShakePlayer = ({
1140
1140
  shakaConfig,
1141
1141
  drmConfig,
1142
1142
  onError,
1143
- onPlayerReady
1143
+ onPlayerReady,
1144
+ onBeforeLoad,
1145
+ playerRef
1144
1146
  }) => {
1145
- const playerRef = useRef(null);
1146
1147
  const initializePlayer = useCallback(async (video) => {
1147
1148
  try {
1148
1149
  shaka.polyfill.installAll();
@@ -1155,35 +1156,13 @@ var useShakePlayer = ({
1155
1156
  if (shakaConfig) {
1156
1157
  player.configure(shakaConfig);
1157
1158
  }
1158
- player?.addEventListener("error", (event) => {
1159
- const error = event.detail;
1160
- if (error?.code === 7e3) {
1161
- return;
1162
- }
1163
- console.error("Shaka Player Error:", error);
1164
- onError?.(new Error(`Shaka Player Error: ${error.message || "Unknown error"}`));
1165
- });
1166
- return player;
1167
- } catch (error) {
1168
- if (error?.code === 7e3) {
1169
- return;
1170
- }
1171
- console.error("Error initializing Shaka Player:", error);
1172
- onError?.(error);
1173
- throw error;
1174
- }
1175
- }, [shakaConfig, drmConfig, src, onError, onPlayerReady]);
1176
- const loadSource = useCallback(async () => {
1177
- const player = playerRef.current;
1178
- if (!player) return;
1179
- try {
1180
1159
  let manifestUrl = src.url;
1181
1160
  const isDRM = Boolean(src.drm);
1182
1161
  let cert = null;
1183
1162
  if (isDRM) {
1184
1163
  const isPlayReady = isPlayReadySupported();
1185
1164
  const isFairPlay = isAppleDevice();
1186
- if (isFairPlay && src.drm.fairplay?.certificate_url) {
1165
+ if (isAppleDevice() && src.drm.fairplay?.certificate_url) {
1187
1166
  const req = await fetch(src.drm.fairplay.certificate_url);
1188
1167
  cert = await req.arrayBuffer();
1189
1168
  manifestUrl = src.drm.fairplay.playlist_url;
@@ -1226,17 +1205,27 @@ var useShakePlayer = ({
1226
1205
  });
1227
1206
  }
1228
1207
  }
1208
+ player?.addEventListener("error", (event) => {
1209
+ const error = event.detail;
1210
+ if (error?.code === 7e3) {
1211
+ return;
1212
+ }
1213
+ console.error("Shaka Player Error:", error);
1214
+ onError?.(new Error(`Shaka Player Error: ${error.message || "Unknown error"}`));
1215
+ });
1216
+ onBeforeLoad?.();
1229
1217
  await player.load(manifestUrl);
1230
1218
  onPlayerReady?.(player);
1219
+ return player;
1231
1220
  } catch (error) {
1232
1221
  if (error?.code === 7e3) {
1233
1222
  return;
1234
1223
  }
1235
- console.error("Error loading source:", error);
1224
+ console.error("Error initializing Shaka Player:", error);
1236
1225
  onError?.(error);
1237
1226
  throw error;
1238
1227
  }
1239
- }, [src, onError]);
1228
+ }, [shakaConfig, drmConfig, src, onError, onPlayerReady, onBeforeLoad, playerRef]);
1240
1229
  const destroyPlayer = useCallback(async () => {
1241
1230
  if (playerRef.current) {
1242
1231
  try {
@@ -1247,11 +1236,9 @@ var useShakePlayer = ({
1247
1236
  playerRef.current = null;
1248
1237
  }
1249
1238
  }
1250
- }, []);
1239
+ }, [playerRef]);
1251
1240
  return {
1252
- playerRef,
1253
1241
  initializePlayer,
1254
- loadSource,
1255
1242
  destroyPlayer
1256
1243
  };
1257
1244
  };
@@ -1376,7 +1363,7 @@ import initShakaPlayerMux from "@mux/mux-data-shakaplayer";
1376
1363
  import shaka2 from "shaka-player/dist/shaka-player.ui";
1377
1364
 
1378
1365
  // package.json
1379
- var version = "1.0.1-rc.28";
1366
+ var version = "1.0.1-rc.29";
1380
1367
 
1381
1368
  // src/hooks/useMuxAnalytics.ts
1382
1369
  var useMuxAnalytics = (playerRef, muxConfig, onMuxReady, onMuxDataUpdate) => {
@@ -3281,12 +3268,21 @@ var Player = forwardRef(
3281
3268
  const containerRef = useRef8(null);
3282
3269
  const adContainerRef = useRef8(null);
3283
3270
  useImperativeHandle(ref, () => videoRef.current, []);
3284
- const { playerRef, initializePlayer, loadSource, destroyPlayer } = useShakePlayer({
3271
+ const playerRef = useRef8(null);
3272
+ const {
3273
+ initializeMux,
3274
+ updateMuxData,
3275
+ handleMuxError,
3276
+ destroyMux
3277
+ } = useMuxAnalytics(playerRef, muxConfig, events?.onMuxReady, events?.onMuxDataUpdate);
3278
+ const { initializePlayer, destroyPlayer } = useShakePlayer({
3285
3279
  src,
3286
3280
  shakaConfig,
3287
3281
  drmConfig,
3288
3282
  onError: events?.onError,
3289
- onPlayerReady: events?.onPlayerReady
3283
+ onPlayerReady: events?.onPlayerReady,
3284
+ onBeforeLoad: initializeMux,
3285
+ playerRef
3290
3286
  });
3291
3287
  const {
3292
3288
  getAvailableQualities,
@@ -3305,12 +3301,6 @@ var Player = forwardRef(
3305
3301
  skipForward,
3306
3302
  enabled: true
3307
3303
  });
3308
- const {
3309
- initializeMux,
3310
- updateMuxData,
3311
- handleMuxError,
3312
- destroyMux
3313
- } = useMuxAnalytics(playerRef, muxConfig, events?.onMuxReady, events?.onMuxDataUpdate);
3314
3304
  const { setupEventListeners, cleanupEventListeners } = useEventHandlers(videoRef, {
3315
3305
  onPlay: events?.onPlay,
3316
3306
  onPause: events?.onPause,
@@ -3389,8 +3379,6 @@ var Player = forwardRef(
3389
3379
  const initialize = async () => {
3390
3380
  try {
3391
3381
  await initializePlayer(video);
3392
- initializeMux();
3393
- await loadSource();
3394
3382
  setupEventListeners();
3395
3383
  const cleanupQuality = setupQualityTracking();
3396
3384
  configureQuality();
@@ -4062,7 +4050,7 @@ var Video = ({
4062
4050
  };
4063
4051
 
4064
4052
  // src/Event.tsx
4065
- import { useCallback as useCallback8, useEffect as useEffect8, useState as useState4 } from "react";
4053
+ import { useCallback as useCallback9, useEffect as useEffect8, useState as useState4 } from "react";
4066
4054
  import { twMerge as twMerge4 } from "tailwind-merge";
4067
4055
  import { useQuery as useQuery2 } from "@tanstack/react-query";
4068
4056
  import { Fragment, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
@@ -4273,7 +4261,7 @@ function PreEvent({
4273
4261
  }, 1e3);
4274
4262
  return () => clearInterval(interval);
4275
4263
  }, [date, remainingTime]);
4276
- const renderCountdown = useCallback8(() => {
4264
+ const renderCountdown = useCallback9(() => {
4277
4265
  if (shouldBeStarted) {
4278
4266
  return /* @__PURE__ */ jsx10("span", { className: "text-base-content text-xl", children: t("EVENT_NOT_STARTED") });
4279
4267
  }