@livo-tv/sdk 1.17.0 → 1.18.0

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/README.md CHANGED
@@ -79,7 +79,7 @@ Wrap the studio in `StudioWindowGate` with a **stable** `lockKey` (stream id or
79
79
 
80
80
  Omit `playerOrigin` in native embeds. The watch-share control only appears when you pass a player origin; native partners should share their own watch URL.
81
81
 
82
- `endedHref` is the link on the host's ended-session action. When it is omitted or blank, that action goes to `/streams/:id`.
82
+ `endedHref` is the link on the host's ended-session action. When it is omitted or blank, that action goes to `/streams/:id`. Optional `endedExtra` renders under that action. Omit it and the card stays the same.
83
83
 
84
84
  Regression page: `pnpm example:embed` serves `examples/partner-embed` on `http://localhost:3003`.
85
85
 
@@ -11595,6 +11595,7 @@ function EmptyState({
11595
11595
  actionLabel,
11596
11596
  onAction,
11597
11597
  actionHref,
11598
+ extra,
11598
11599
  role = "status"
11599
11600
  }) {
11600
11601
  const action = actionLabel && actionHref ? /* @__PURE__ */ jsxRuntime.jsx(Button3, { render: /* @__PURE__ */ jsxRuntime.jsx("a", { href: actionHref }), children: actionLabel }) : actionLabel ? /* @__PURE__ */ jsxRuntime.jsx(Button3, { type: "button", onClick: onAction, children: actionLabel }) : null;
@@ -11606,7 +11607,8 @@ function EmptyState({
11606
11607
  children: [
11607
11608
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-semibold", children: title }),
11608
11609
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground max-w-md text-sm", children: description }),
11609
- action
11610
+ action,
11611
+ extra
11610
11612
  ]
11611
11613
  }
11612
11614
  );
@@ -28929,7 +28931,8 @@ function StudioRoom({
28929
28931
  captionsBaseUrl,
28930
28932
  apiUrl,
28931
28933
  cdnBase,
28932
- endedHref
28934
+ endedHref,
28935
+ endedExtra
28933
28936
  }) {
28934
28937
  const [cameraOn, setCameraOn] = React18.useState(initialCameraOn);
28935
28938
  const [screenOn, setScreenOn] = React18.useState(false);
@@ -29662,6 +29665,7 @@ function StudioRoom({
29662
29665
  }
29663
29666
  if (sessionOver) {
29664
29667
  const canRejoin = session.role === "moderator" && onRejoin != null && isStudioActiveStatus(session.stream.status);
29668
+ const returnHref = canRejoin || session.role !== "moderator" ? void 0 : endedHref?.trim() || `/streams/${session.stream.id}`;
29665
29669
  return withStudioToaster(
29666
29670
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-dvh flex-col items-center justify-center p-6", children: /* @__PURE__ */ jsxRuntime.jsx(
29667
29671
  EmptyState,
@@ -29670,7 +29674,8 @@ function StudioRoom({
29670
29674
  description: labels.endedDescription,
29671
29675
  actionLabel: canRejoin ? labels.rejoin : session.role === "moderator" ? labels.endedAction : void 0,
29672
29676
  onAction: canRejoin ? onRejoin : void 0,
29673
- actionHref: canRejoin || session.role !== "moderator" ? void 0 : endedHref?.trim() || `/streams/${session.stream.id}`
29677
+ actionHref: returnHref,
29678
+ extra: returnHref ? endedExtra : void 0
29674
29679
  }
29675
29680
  ) })
29676
29681
  );
@@ -31737,7 +31742,8 @@ function LivoHostStudio({
31737
31742
  theme,
31738
31743
  appDownloadUrl,
31739
31744
  guestUrl,
31740
- endedHref
31745
+ endedHref,
31746
+ endedExtra
31741
31747
  }) {
31742
31748
  const reducedMotion = usePrefersReducedMotion();
31743
31749
  const [session, setSession] = React18.useState(null);
@@ -31859,7 +31865,8 @@ function LivoHostStudio({
31859
31865
  playerOrigin,
31860
31866
  appDownloadUrl,
31861
31867
  apiUrl,
31862
- endedHref
31868
+ endedHref,
31869
+ endedExtra
31863
31870
  }
31864
31871
  ) });
31865
31872
  }