@fluid-app/portal-sdk 0.1.131 → 0.1.133

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 (146) hide show
  1. package/dist/{AlertWidget-WQ_XPDRo.mjs → AlertWidget-BYbcGyNr.mjs} +3 -3
  2. package/dist/{AlertWidget-WQ_XPDRo.mjs.map → AlertWidget-BYbcGyNr.mjs.map} +1 -1
  3. package/dist/{AppDownloadScreen-zNP4k8ht.cjs → AppDownloadScreen-B-i6Rydi.cjs} +1 -1
  4. package/dist/{AppDownloadScreen-BOfG3cqC.mjs → AppDownloadScreen-BpExiJat.mjs} +3 -3
  5. package/dist/{AppDownloadScreen-BOfG3cqC.mjs.map → AppDownloadScreen-BpExiJat.mjs.map} +1 -1
  6. package/dist/{AppDownloadScreen-BjCtTMPU.cjs → AppDownloadScreen-CIqSvpV0.cjs} +1 -1
  7. package/dist/{AppDownloadScreen-BjCtTMPU.cjs.map → AppDownloadScreen-CIqSvpV0.cjs.map} +1 -1
  8. package/dist/{BulletListWidget-BYcaQnVH.mjs → BulletListWidget-Bo5Kj1W-.mjs} +2 -2
  9. package/dist/{BulletListWidget-BYcaQnVH.mjs.map → BulletListWidget-Bo5Kj1W-.mjs.map} +1 -1
  10. package/dist/{CalendarWidget-Qb-utCFD.mjs → CalendarWidget-CCsceh_0.mjs} +2 -2
  11. package/dist/{CalendarWidget-Qb-utCFD.mjs.map → CalendarWidget-CCsceh_0.mjs.map} +1 -1
  12. package/dist/{CardWidget-zVxobZDH.mjs → CardWidget-BkOMSBQ-.mjs} +2 -2
  13. package/dist/{CardWidget-zVxobZDH.mjs.map → CardWidget-BkOMSBQ-.mjs.map} +1 -1
  14. package/dist/{CarouselWidget-dpRCljEx.mjs → CarouselWidget-B9LsTYUF.mjs} +2 -2
  15. package/dist/{CarouselWidget-dpRCljEx.mjs.map → CarouselWidget-B9LsTYUF.mjs.map} +1 -1
  16. package/dist/{CatchUpWidget-CSIXsR82.mjs → CatchUpWidget-CSJdJgs-.mjs} +2 -2
  17. package/dist/{CatchUpWidget-CSIXsR82.mjs.map → CatchUpWidget-CSJdJgs-.mjs.map} +1 -1
  18. package/dist/{ChartWidget-88hpX7ft.mjs → ChartWidget-Cpzqi6W4.mjs} +2 -2
  19. package/dist/{ChartWidget-88hpX7ft.mjs.map → ChartWidget-Cpzqi6W4.mjs.map} +1 -1
  20. package/dist/{ContactsScreen-BvoMicyB.mjs → ContactsScreen-BRmYDosJ.mjs} +5 -5
  21. package/dist/{ContactsScreen-BvoMicyB.mjs.map → ContactsScreen-BRmYDosJ.mjs.map} +1 -1
  22. package/dist/{ContainerWidget-DNS7ynby.mjs → ContainerWidget-DTchKDKw.mjs} +3 -3
  23. package/dist/{ContainerWidget-DNS7ynby.mjs.map → ContainerWidget-DTchKDKw.mjs.map} +1 -1
  24. package/dist/{CustomersScreen-xAauAB-B.mjs → CustomersScreen-Cnn-Wcza.mjs} +2 -2
  25. package/dist/{CustomersScreen-xAauAB-B.mjs.map → CustomersScreen-Cnn-Wcza.mjs.map} +1 -1
  26. package/dist/{EmbedWidget-BQYixJLj.mjs → EmbedWidget-Du9DMpSo.mjs} +2 -2
  27. package/dist/{EmbedWidget-BQYixJLj.mjs.map → EmbedWidget-Du9DMpSo.mjs.map} +1 -1
  28. package/dist/{FluidProvider-B-f_JVal.mjs → FluidProvider-BUdNsR8f.mjs} +49 -49
  29. package/dist/{FluidProvider-B-f_JVal.mjs.map → FluidProvider-BUdNsR8f.mjs.map} +1 -1
  30. package/dist/FluidProvider-CQoQjYxU.cjs.map +1 -1
  31. package/dist/{ImageWidget-DE9Fp_oH.mjs → ImageWidget-B1Mx3qKN.mjs} +2 -2
  32. package/dist/{ImageWidget-DE9Fp_oH.mjs.map → ImageWidget-B1Mx3qKN.mjs.map} +1 -1
  33. package/dist/{LayoutWidget-BFO_PHWw.mjs → LayoutWidget-Bgodl7eR.mjs} +2 -2
  34. package/dist/{LayoutWidget-BFO_PHWw.mjs.map → LayoutWidget-Bgodl7eR.mjs.map} +1 -1
  35. package/dist/{LinkWidget-JSoDi-ag.mjs → LinkWidget-B5PlWJHe.mjs} +2 -2
  36. package/dist/{LinkWidget-JSoDi-ag.mjs.map → LinkWidget-B5PlWJHe.mjs.map} +1 -1
  37. package/dist/{ListWidget-CBLZ8CjD.mjs → ListWidget-BWfsmVoc.mjs} +2 -2
  38. package/dist/{ListWidget-CBLZ8CjD.mjs.map → ListWidget-BWfsmVoc.mjs.map} +1 -1
  39. package/dist/{MessagingScreen-COWASb0E.mjs → MessagingScreen-CQwR5WA1.mjs} +9 -6
  40. package/dist/{MessagingScreen-COWASb0E.mjs.map → MessagingScreen-CQwR5WA1.mjs.map} +1 -1
  41. package/dist/{MySiteScreen-BasZFpx7.cjs → MySiteScreen-C00HjZdl.cjs} +1 -1
  42. package/dist/{MySiteScreen-B5-bV1-O.mjs → MySiteScreen-CcxWz0IH.mjs} +4 -4
  43. package/dist/{MySiteScreen-B5-bV1-O.mjs.map → MySiteScreen-CcxWz0IH.mjs.map} +1 -1
  44. package/dist/{MySiteScreen-DURa034X.cjs → MySiteScreen-D56qESn0.cjs} +1 -1
  45. package/dist/{MySiteScreen-DURa034X.cjs.map → MySiteScreen-D56qESn0.cjs.map} +1 -1
  46. package/dist/{MySiteWidget-BqtLSExC.mjs → MySiteWidget-mK0Mj3DS.mjs} +2 -2
  47. package/dist/{MySiteWidget-BqtLSExC.mjs.map → MySiteWidget-mK0Mj3DS.mjs.map} +1 -1
  48. package/dist/{NestedWidget-DIwW-wM7.mjs → NestedWidget-B6cUOyI3.mjs} +2 -2
  49. package/dist/{NestedWidget-DIwW-wM7.mjs.map → NestedWidget-B6cUOyI3.mjs.map} +1 -1
  50. package/dist/{OrdersScreen-BcFvAtJ_.mjs → OrdersScreen-CpOywVHJ.mjs} +4 -4
  51. package/dist/{OrdersScreen-BcFvAtJ_.mjs.map → OrdersScreen-CpOywVHJ.mjs.map} +1 -1
  52. package/dist/{PointsWidget-DgLGU995.mjs → PointsWidget-BlEzqgbK.mjs} +2 -2
  53. package/dist/{PointsWidget-DgLGU995.mjs.map → PointsWidget-BlEzqgbK.mjs.map} +1 -1
  54. package/dist/{ProductsScreen-Mu8doz5F.cjs → ProductsScreen-BPNdpsYm.cjs} +2 -2
  55. package/dist/{src-CMByt6YP.cjs → ProductsScreen-BY285fh-.cjs} +90 -31
  56. package/dist/ProductsScreen-BY285fh-.cjs.map +1 -0
  57. package/dist/ProductsScreen-DMldTDPg.mjs +42 -0
  58. package/dist/{src-DryOJTBW.mjs → ProductsScreen-jdy2j9_J.mjs} +86 -28
  59. package/dist/ProductsScreen-jdy2j9_J.mjs.map +1 -0
  60. package/dist/{ProfileScreen-CnQqdYBE.mjs → ProfileScreen-mAUuAFhe.mjs} +5 -5
  61. package/dist/{ProfileScreen-CnQqdYBE.mjs.map → ProfileScreen-mAUuAFhe.mjs.map} +1 -1
  62. package/dist/{QuickShareWidget-CajKauDa.mjs → QuickShareWidget-Lpox79Cq.mjs} +2 -2
  63. package/dist/{QuickShareWidget-CajKauDa.mjs.map → QuickShareWidget-Lpox79Cq.mjs.map} +1 -1
  64. package/dist/{RecentActivityWidget-BZYB21eR.mjs → RecentActivityWidget-BdPmAQq4.mjs} +2 -2
  65. package/dist/{RecentActivityWidget-BZYB21eR.mjs.map → RecentActivityWidget-BdPmAQq4.mjs.map} +1 -1
  66. package/dist/{SeparatorWidget-Lsd6juu7.mjs → SeparatorWidget-BS966Lk4.mjs} +2 -2
  67. package/dist/{SeparatorWidget-Lsd6juu7.mjs.map → SeparatorWidget-BS966Lk4.mjs.map} +1 -1
  68. package/dist/ShareablesScreen-B6tMQzuX.mjs +1314 -0
  69. package/dist/ShareablesScreen-B6tMQzuX.mjs.map +1 -0
  70. package/dist/{ShareablesScreen-oZhW2jGu.cjs → ShareablesScreen-DMBXIMMj.cjs} +2 -2
  71. package/dist/ShareablesScreen-d_ThfnNQ.mjs +42 -0
  72. package/dist/ShareablesScreen-znVUD_OK.cjs +1332 -0
  73. package/dist/ShareablesScreen-znVUD_OK.cjs.map +1 -0
  74. package/dist/{ShopScreen-B1UzSmK8.cjs → ShopScreen-BVIT_QS-.cjs} +6 -4
  75. package/dist/ShopScreen-BVIT_QS-.cjs.map +1 -0
  76. package/dist/{ShopScreen-7HWz_B6R.cjs → ShopScreen-Bsjdn-E9.cjs} +1 -1
  77. package/dist/{ShopScreen-D1N3RWm9.mjs → ShopScreen-C1bnhxpj.mjs} +9 -7
  78. package/dist/ShopScreen-C1bnhxpj.mjs.map +1 -0
  79. package/dist/{SpacerWidget-B3zkEePP.mjs → SpacerWidget-BimE1fjJ.mjs} +2 -2
  80. package/dist/{SpacerWidget-B3zkEePP.mjs.map → SpacerWidget-BimE1fjJ.mjs.map} +1 -1
  81. package/dist/{SubscriptionsScreen-Bw3xkq7t.mjs → SubscriptionsScreen-QHf54yD7.mjs} +5 -5
  82. package/dist/{SubscriptionsScreen-Bw3xkq7t.mjs.map → SubscriptionsScreen-QHf54yD7.mjs.map} +1 -1
  83. package/dist/{TableWidget-Xz0d4UH5.mjs → TableWidget-CfSqeNQj.mjs} +2 -2
  84. package/dist/{TableWidget-Xz0d4UH5.mjs.map → TableWidget-CfSqeNQj.mjs.map} +1 -1
  85. package/dist/{TextWidget-CzUlNmCl.mjs → TextWidget-DYpbUtQh.mjs} +2 -2
  86. package/dist/{TextWidget-CzUlNmCl.mjs.map → TextWidget-DYpbUtQh.mjs.map} +1 -1
  87. package/dist/{ToDoWidget-qyFLHU_o.mjs → ToDoWidget-DaxkgCEl.mjs} +2 -2
  88. package/dist/{ToDoWidget-qyFLHU_o.mjs.map → ToDoWidget-DaxkgCEl.mjs.map} +1 -1
  89. package/dist/{UpgradeScreen-CIiEjeTZ.cjs → UpgradeScreen--eiiE1rX.cjs} +1 -1
  90. package/dist/{UpgradeScreen-IaYxGm7M.cjs → UpgradeScreen-7on9GOgu.cjs} +1 -1
  91. package/dist/{UpgradeScreen-IaYxGm7M.cjs.map → UpgradeScreen-7on9GOgu.cjs.map} +1 -1
  92. package/dist/{UpgradeScreen-BZdJQxb9.mjs → UpgradeScreen-p7aAXWFM.mjs} +2 -2
  93. package/dist/{UpgradeScreen-BZdJQxb9.mjs.map → UpgradeScreen-p7aAXWFM.mjs.map} +1 -1
  94. package/dist/{VideoWidget-CpUPsOI7.mjs → VideoWidget-CHktk3hs.mjs} +2 -2
  95. package/dist/{VideoWidget-CpUPsOI7.mjs.map → VideoWidget-CHktk3hs.mjs.map} +1 -1
  96. package/dist/{dist-B1HwSrso.mjs → dist-CayuD99K.mjs} +1 -1
  97. package/dist/{dist-B1HwSrso.mjs.map → dist-CayuD99K.mjs.map} +1 -1
  98. package/dist/{es-BcjHf1ZX.mjs → es-CTLNkiWp.mjs} +38 -3
  99. package/dist/{es-BcjHf1ZX.mjs.map → es-CTLNkiWp.mjs.map} +1 -1
  100. package/dist/index.cjs +19 -19
  101. package/dist/index.d.cts.map +1 -1
  102. package/dist/index.d.mts.map +1 -1
  103. package/dist/index.mjs +70 -70
  104. package/dist/index.mjs.map +1 -1
  105. package/dist/{order-status-badge-OZ1InBwZ.mjs → order-status-badge-Bt2gMEPZ.mjs} +1 -1
  106. package/dist/{order-status-badge-OZ1InBwZ.mjs.map → order-status-badge-Bt2gMEPZ.mjs.map} +1 -1
  107. package/dist/{sortable.esm-DSrWP4x9.mjs → sortable.esm-BzPsVjTI.mjs} +1 -1
  108. package/dist/{sortable.esm-DSrWP4x9.mjs.map → sortable.esm-BzPsVjTI.mjs.map} +1 -1
  109. package/dist/{src-DIcd2_ex.cjs → src-C5GUPE_i.cjs} +37 -26
  110. package/dist/src-C5GUPE_i.cjs.map +1 -0
  111. package/dist/{src-k03GJfKt.mjs → src-DcIV4Mpe.mjs} +41 -30
  112. package/dist/src-DcIV4Mpe.mjs.map +1 -0
  113. package/dist/{use-account-clients-CZw8FqxD.mjs → use-account-clients-BjK5QVYl.mjs} +2 -2
  114. package/dist/{use-account-clients-CZw8FqxD.mjs.map → use-account-clients-BjK5QVYl.mjs.map} +1 -1
  115. package/dist/{use-current-user-C6af9r0B.mjs → use-current-user-BP_GJuQe.mjs} +3 -3
  116. package/dist/{use-current-user-C6af9r0B.mjs.map → use-current-user-BP_GJuQe.mjs.map} +1 -1
  117. package/dist/{use-fluid-api-R0Qybt_F.mjs → use-fluid-api-UtVBk6E-.mjs} +2 -2
  118. package/dist/{use-fluid-api-R0Qybt_F.mjs.map → use-fluid-api-UtVBk6E-.mjs.map} +1 -1
  119. package/dist/{use-fluid-auth-_pnjCu2c.mjs → use-fluid-auth-DrPeCmW-.mjs} +2 -2
  120. package/dist/{use-fluid-auth-_pnjCu2c.mjs.map → use-fluid-auth-DrPeCmW-.mjs.map} +1 -1
  121. package/dist/{use-portal-products-client-Bl-yd0Tl.cjs → use-portal-products-client-CIrRGIxC.cjs} +5 -14
  122. package/dist/use-portal-products-client-CIrRGIxC.cjs.map +1 -0
  123. package/dist/{use-portal-products-client-tJi4q54S.mjs → use-portal-products-client-dV5jIXpp.mjs} +6 -15
  124. package/dist/use-portal-products-client-dV5jIXpp.mjs.map +1 -0
  125. package/package.json +18 -18
  126. package/dist/MessagingScreen-CWm4iQnk.mjs +0 -38
  127. package/dist/ProductsScreen-BHeRiKUM.cjs +0 -101
  128. package/dist/ProductsScreen-BHeRiKUM.cjs.map +0 -1
  129. package/dist/ProductsScreen-C_1ghW3w.mjs +0 -42
  130. package/dist/ProductsScreen-DJOPzE9v.mjs +0 -89
  131. package/dist/ProductsScreen-DJOPzE9v.mjs.map +0 -1
  132. package/dist/ShareablesScreen-BSRbPf6u.cjs +0 -414
  133. package/dist/ShareablesScreen-BSRbPf6u.cjs.map +0 -1
  134. package/dist/ShareablesScreen-COyBtpDy.mjs +0 -42
  135. package/dist/ShareablesScreen-kBJFUklJ.mjs +0 -396
  136. package/dist/ShareablesScreen-kBJFUklJ.mjs.map +0 -1
  137. package/dist/ShopScreen-B1UzSmK8.cjs.map +0 -1
  138. package/dist/ShopScreen-D1N3RWm9.mjs.map +0 -1
  139. package/dist/chunk-ByhMGyNw.mjs +0 -37
  140. package/dist/src-CMByt6YP.cjs.map +0 -1
  141. package/dist/src-DIcd2_ex.cjs.map +0 -1
  142. package/dist/src-DryOJTBW.mjs.map +0 -1
  143. package/dist/src-k03GJfKt.mjs.map +0 -1
  144. package/dist/use-portal-products-client-Bl-yd0Tl.cjs.map +0 -1
  145. package/dist/use-portal-products-client-tJi4q54S.mjs.map +0 -1
  146. /package/dist/{src-DAC9DwXZ.mjs → src-6SxtfYk9.mjs} +0 -0
@@ -1373,15 +1373,20 @@ function MediaListingScreen({ onNavigate }) {
1373
1373
  const { data, isLoading, isFetchingNextPage, hasNextPage, fetchNextPage, error } = (0, _tanstack_react_query.useInfiniteQuery)({
1374
1374
  queryKey: shareablesKeys.media.list(debouncedSearch, sortDesc, repContext),
1375
1375
  queryFn: async ({ pageParam = 1 }) => {
1376
- return (await api.media.getMedia({
1376
+ const response = await api.media.getMedia({
1377
1377
  page: pageParam,
1378
1378
  per_page: PAGE_SIZE$2,
1379
1379
  search_query: debouncedSearch || void 0,
1380
1380
  sorted_by: sortDesc ? "title_desc" : "title_asc"
1381
- })).media;
1381
+ });
1382
+ return {
1383
+ media: response.media,
1384
+ nextPage: response.meta?.next ?? null
1385
+ };
1382
1386
  },
1383
- getNextPageParam: (lastPage, allPages) => lastPage.length === PAGE_SIZE$2 ? allPages.length + 1 : void 0,
1384
- initialPageParam: 1
1387
+ getNextPageParam: (lastPage) => lastPage.nextPage ?? void 0,
1388
+ initialPageParam: 1,
1389
+ placeholderData: _tanstack_react_query.keepPreviousData
1385
1390
  });
1386
1391
  const handleIntersect = (0, react.useCallback)((entries) => {
1387
1392
  if (entries[0]?.isIntersecting && hasNextPage && !isFetchingNextPage) fetchNextPage();
@@ -1400,7 +1405,7 @@ function MediaListingScreen({ onNavigate }) {
1400
1405
  observer.observe(target);
1401
1406
  return () => observer.disconnect();
1402
1407
  }, [handleIntersect]);
1403
- const mediaItems = data?.pages.flat() ?? [];
1408
+ const mediaItems = data?.pages.flatMap((page) => page.media) ?? [];
1404
1409
  if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1405
1410
  className: "space-y-6 px-4 py-4 md:px-10 md:py-6",
1406
1411
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -6825,7 +6830,8 @@ function PlaylistsListingScreen(_props) {
6825
6830
  const observerTarget = (0, react.useRef)(null);
6826
6831
  const sortParam = currentSort.sortDirection === "desc" ? `-${currentSort.sortBy}` : currentSort.sortBy;
6827
6832
  const queryKey = [
6828
- "shareables-playlists",
6833
+ ...shareablesKeys.playlists.all,
6834
+ "list",
6829
6835
  debouncedSearch,
6830
6836
  sortParam
6831
6837
  ];
@@ -6844,7 +6850,8 @@ function PlaylistsListingScreen(_props) {
6844
6850
  };
6845
6851
  },
6846
6852
  getNextPageParam: (lastPage) => lastPage.nextCursor ?? void 0,
6847
- initialPageParam: void 0
6853
+ initialPageParam: void 0,
6854
+ placeholderData: _tanstack_react_query.keepPreviousData
6848
6855
  });
6849
6856
  const allPlaylists = (0, react.useMemo)(() => data?.pages.flatMap((page) => page.playlists) ?? [], [data?.pages]);
6850
6857
  (0, react.useEffect)(() => {
@@ -6922,7 +6929,7 @@ function PlaylistsListingScreen(_props) {
6922
6929
  });
6923
6930
  },
6924
6931
  onSettled: () => {
6925
- queryClient.invalidateQueries({ queryKey: ["shareables-playlists"] });
6932
+ queryClient.invalidateQueries({ queryKey: shareablesKeys.playlists.all });
6926
6933
  }
6927
6934
  });
6928
6935
  const handleFavorite = (0, react.useCallback)((playlistId) => {
@@ -6941,7 +6948,7 @@ function PlaylistsListingScreen(_props) {
6941
6948
  if (!window.confirm("Are you sure you want to delete this playlist?")) return;
6942
6949
  try {
6943
6950
  await onDeletePlaylist(playlistId);
6944
- queryClient.invalidateQueries({ queryKey: ["shareables-playlists"] });
6951
+ queryClient.invalidateQueries({ queryKey: shareablesKeys.playlists.all });
6945
6952
  showToast({
6946
6953
  title: "Playlist deleted",
6947
6954
  type: "success"
@@ -7001,8 +7008,8 @@ function PlaylistsListingScreen(_props) {
7001
7008
  className: GRID_CLASS$1,
7002
7009
  children: allPlaylists.map((playlist) => {
7003
7010
  const firstItem = playlist.items?.[0];
7004
- const imageUrl = playlist.image_url || firstItem?.relateable?.image_url || firstItem?.relateable?.compressed_image_url;
7005
- const itemCount = playlist.items?.length ?? 0;
7011
+ const imageUrl = playlist.image_url ?? firstItem?.image_url ?? firstItem?.relateable?.image_url ?? firstItem?.relateable?.compressed_image_url;
7012
+ const itemCount = playlist.items_count ?? playlist.items?.length ?? 0;
7006
7013
  const canEdit = !readOnly && playlist.user_id === user?.id;
7007
7014
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PlaylistCard, {
7008
7015
  title: playlist.title || "Untitled Playlist",
@@ -7211,17 +7218,18 @@ function PlaylistItemsList({ items, onSelectItem, selectedItemIndex = 0, onNavig
7211
7218
  className: "space-y-3",
7212
7219
  children: items.map((item, index) => {
7213
7220
  const relateable = item.relateable;
7214
- const imageUrl = relateable?.image_url || relateable?.compressed_image_url || DEFAULT_IMAGE$2;
7215
- const title = relateable?.title || "Untitled";
7221
+ const imageUrl = item.image_url ?? relateable?.image_url ?? relateable?.compressed_image_url ?? DEFAULT_IMAGE$2;
7222
+ const title = item.title ?? relateable?.title ?? "Untitled";
7216
7223
  const rawPrice = relateable?.display_price || relateable?.price;
7217
7224
  const price = rawPrice && parseFloat(rawPrice.replace(/[^0-9.-]/g, "")) > 0 ? rawPrice : null;
7218
- const itemType = getItemType(item.relateable_type, relateable?.kind);
7219
- const isVideo = relateable?.kind === "video";
7220
- const isImage = relateable?.kind === "image";
7225
+ const kind = item.kind ?? relateable?.kind;
7226
+ const itemType = getItemType(item.relateable_type, kind);
7227
+ const isVideo = kind === "video";
7228
+ const isImage = kind === "image";
7221
7229
  const isProduct = item.relateable_type === "Product";
7222
7230
  const isNavigable = NAVIGABLE_RELATEABLE_TYPES.has(item.relateable_type ?? "");
7223
- const videoLength = formatVideoLength(relateable?.duration);
7224
- const fileType = getFileType(relateable?.media_format, relateable?.image_url);
7231
+ const videoLength = formatVideoLength(item.duration ?? relateable?.duration);
7232
+ const fileType = getFileType(item.media_format ?? relateable?.media_format, item.image_url ?? relateable?.image_url);
7225
7233
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7226
7234
  onClick: () => handleCardClick(index),
7227
7235
  className: `hover:bg-muted-600 flex w-full cursor-pointer items-start gap-3 rounded-lg p-3 text-left transition-all ${index === selectedItemIndex ? "bg-muted-600" : "bg-muted"}`,
@@ -7383,11 +7391,12 @@ function PlaylistDetailScreen({ playlistId, onNavigate }) {
7383
7391
  navigate
7384
7392
  ]);
7385
7393
  const selectedPlaylistItem = playlist?.items?.[selectedPlaylistItemIndex];
7386
- const displayImage = selectedPlaylistItem?.relateable?.image_url || selectedPlaylistItem?.relateable?.compressed_image_url || DEFAULT_IMAGE$1;
7394
+ const displayImage = selectedPlaylistItem?.image_url ?? selectedPlaylistItem?.relateable?.image_url ?? selectedPlaylistItem?.relateable?.compressed_image_url ?? DEFAULT_IMAGE$1;
7387
7395
  const strippedDescription = stripTags(playlist?.description || playlist?.search_engine_optimizer?.description || "");
7388
7396
  const shouldShowReadMore = strippedDescription.length > 150;
7389
- const displayVideo = selectedPlaylistItem?.relateable?.kind === "video" ? selectedPlaylistItem?.relateable?.video_url || void 0 : void 0;
7390
- const isVideo = selectedPlaylistItem?.relateable?.kind === "video" && !!displayVideo;
7397
+ const selectedKind = selectedPlaylistItem?.kind ?? selectedPlaylistItem?.relateable?.kind;
7398
+ const displayVideo = selectedKind === "video" ? selectedPlaylistItem?.video_url ?? selectedPlaylistItem?.relateable?.video_url ?? void 0 : void 0;
7399
+ const isVideo = selectedKind === "video" && !!displayVideo;
7391
7400
  const taggedProducts = playlist?.items?.filter((item) => item.relateable_type === "Product").map((item) => item.relateable).filter((p) => !!p) || [];
7392
7401
  if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7393
7402
  className: "flex items-center justify-center py-16",
@@ -8019,7 +8028,9 @@ function SortableTable({ items, setItems, onDeleteItem, isDeletePending, enableR
8019
8028
  relateable_id: item.relateable?.id,
8020
8029
  relateable: item.relateable,
8021
8030
  order: index + 1,
8022
- title: item.relateable?.title || `${item.relateable_type} #${item.relateable?.id}`
8031
+ title: item.title ?? item.relateable?.title ?? `${item.relateable_type} #${item.relateable?.id}`,
8032
+ image_url: item.image_url ?? item.relateable?.image_url ?? null,
8033
+ kind: item.kind ?? item.relateable?.kind ?? null
8023
8034
  }));
8024
8035
  const tableContent = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8025
8036
  className: "border-border w-full overflow-x-auto rounded-lg border",
@@ -8070,8 +8081,8 @@ function SortableTable({ items, setItems, onDeleteItem, isDeletePending, enableR
8070
8081
  className: "flex min-w-0 items-center gap-3",
8071
8082
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8072
8083
  className: "bg-muted flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded",
8073
- children: row.relateable?.image_url ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
8074
- src: String(row.relateable.image_url),
8084
+ children: row.image_url ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
8085
+ src: String(row.image_url),
8075
8086
  alt: String(row.title),
8076
8087
  className: "h-full w-full object-cover"
8077
8088
  }) : getItemIcon(row.relateable_type || "")
@@ -8088,7 +8099,7 @@ function SortableTable({ items, setItems, onDeleteItem, isDeletePending, enableR
8088
8099
  className: "px-6 py-4 whitespace-nowrap",
8089
8100
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8090
8101
  className: "bg-muted text-foreground inline-flex items-center gap-1 rounded-full px-2 py-1 text-xs",
8091
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(typeBadgeIcon(row.relateable_type || "", row.relateable?.kind || ""), { className: "h-3 w-3 shrink-0" }), getTypeDisplay(row.relateable_type || "", row.relateable?.kind || "")] })
8102
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(typeBadgeIcon(row.relateable_type || "", row.kind || ""), { className: "h-3 w-3 shrink-0" }), getTypeDisplay(row.relateable_type || "", row.kind || "")] })
8092
8103
  })
8093
8104
  }),
8094
8105
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
@@ -8919,4 +8930,4 @@ Object.defineProperty(exports, "getFileMimeType", {
8919
8930
  }
8920
8931
  });
8921
8932
 
8922
- //# sourceMappingURL=src-DIcd2_ex.cjs.map
8933
+ //# sourceMappingURL=src-C5GUPE_i.cjs.map