@scrippsproduct/networks-ui-library 1.1.0-alpha.3 → 1.1.0-alpha.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.
@@ -11,6 +11,7 @@ type ScheduleLayoutProps = {
11
11
  weeks?: Day[][];
12
12
  handleScheduleClicks?: (details: HandleClicksDetails) => boolean | void;
13
13
  handleDateChanged?: (date: Date) => boolean | void;
14
+ fetchError?: boolean;
14
15
  };
15
- export declare function ScheduleLayout({ schedule, weeks, handleScheduleClicks, handleDateChanged, }: ScheduleLayoutProps): JSX.Element;
16
+ export declare function ScheduleLayout({ schedule, weeks, handleScheduleClicks, handleDateChanged, fetchError, }: ScheduleLayoutProps): JSX.Element;
16
17
  export default ScheduleLayout;
@@ -1,29 +1,30 @@
1
- import { jsx as t, jsxs as b } from "react/jsx-runtime";
2
- import { useRef as d, useCallback as S, useEffect as y } from "react";
3
- import { f as w } from "../../format-YhWt2D8M.mjs";
1
+ import { jsx as t, jsxs as L } from "react/jsx-runtime";
2
+ import { useRef as d, useCallback as w, useEffect as v } from "react";
3
+ import { f as b } from "../../format-YhWt2D8M.mjs";
4
4
  import { l as c } from "../../logger-C0N7U0YY.mjs";
5
- import { classes as L } from "../../utils/helpers.js";
6
- import { ScheduleProvider as E } from "./ScheduleContext.js";
7
- import { useScheduleContext as T } from "./useScheduleContext.js";
8
- import { DateNavigation as k } from "../DateNavigation/DateNavigation.js";
9
- import { ScheduleList as q } from "../ScheduleList/ScheduleList.js";
5
+ import { classes as E } from "../../utils/helpers.js";
6
+ import { ScheduleProvider as T } from "./ScheduleContext.js";
7
+ import { useScheduleContext as k } from "./useScheduleContext.js";
8
+ import { DateNavigation as q } from "../DateNavigation/DateNavigation.js";
9
+ import { ScheduleList as x } from "../ScheduleList/ScheduleList.js";
10
10
  c.setComponent("ScheduleLayout");
11
- import '../../assets/ScheduleLayout.css';function x({
12
- handleScheduleClicks: f = () => !0
11
+ import '../../assets/ScheduleLayout.css';function C({
12
+ handleScheduleClicks: f = () => !0,
13
+ fetchError: p = !1
13
14
  }) {
14
- const { currentDate: n } = T(), r = d(null), p = d(0), i = d(null), s = d(null), l = d(null), a = S((u) => {
15
+ const { currentDate: n } = k(), r = d(null), m = d(0), i = d(null), s = d(null), l = d(null), a = w((u) => {
15
16
  c.log("Determining pointer position for date: ", u);
16
17
  const o = () => {
17
18
  let e;
18
- const v = document.querySelector(`.date-navigation__day[aria-controls="${w(u, "yyyy-MM-dd")}"]`);
19
- if (v && (e = v.parentElement), e && r.current) {
20
- const g = e.offsetLeft + e.offsetWidth / 2;
21
- p.current = g, r.current.style.setProperty(
19
+ const g = document.querySelector(`.date-navigation__day[aria-controls="${b(u, "yyyy-MM-dd")}"]`);
20
+ if (g && (e = g.parentElement), e && r.current) {
21
+ const S = e.offsetLeft + e.offsetWidth / 2;
22
+ m.current = S, r.current.style.setProperty(
22
23
  "--pointer-position",
23
- `${g}px`
24
+ `${S}px`
24
25
  );
25
26
  }
26
- }, h = () => {
27
+ }, y = () => {
27
28
  c.log("Scrolling schedule list to top"), c.log("Schedule list element: ", s.current), c.log("Sticky wrapper element: ", l.current);
28
29
  const e = document.querySelector(".mobile-nav");
29
30
  s.current && l.current && (c.log("Mobile nav element: ", e), window.scrollTo({
@@ -34,22 +35,22 @@ import '../../assets/ScheduleLayout.css';function x({
34
35
  };
35
36
  if (!r.current) {
36
37
  const e = setInterval(() => {
37
- r.current = document.querySelector(".date-navigation__list"), r.current && (clearInterval(e), s.current = document.querySelector(".schedule-list"), l.current = document.querySelector("sticky-content-wrapper"), o(), h());
38
+ r.current = document.querySelector(".date-navigation__list"), r.current && (clearInterval(e), s.current = document.querySelector(".schedule-list"), l.current = document.querySelector("sticky-content-wrapper"), o(), y());
38
39
  }, 100);
39
40
  setTimeout(() => {
40
41
  clearInterval(e);
41
42
  }, 3e3);
42
43
  return;
43
44
  }
44
- o(), h();
45
- }, []), m = S(() => {
45
+ o(), y();
46
+ }, []), h = w(() => {
46
47
  i.current && clearTimeout(i.current), i.current = window.setTimeout(() => {
47
48
  a(n);
48
49
  }, 250);
49
50
  }, [n, a]);
50
- return y(() => (window.addEventListener("resize", m), () => {
51
- window.removeEventListener("resize", m), i.current && clearTimeout(i.current);
52
- }), [a, m]), y(() => {
51
+ return v(() => (window.addEventListener("resize", h), () => {
52
+ window.removeEventListener("resize", h), i.current && clearTimeout(i.current);
53
+ }), [a, h]), v(() => {
53
54
  const u = document.querySelector(".header-divider"), o = document.querySelector("sticky-content-wrapper");
54
55
  o && u && new IntersectionObserver(
55
56
  ([e]) => {
@@ -60,41 +61,42 @@ import '../../assets/ScheduleLayout.css';function x({
60
61
  rootMargin: "-37px"
61
62
  }
62
63
  ).observe(u);
63
- }, []), y(() => {
64
+ }, []), v(() => {
64
65
  a(n);
65
- }, [n, a]), /* @__PURE__ */ b("schedule-layout", { children: [
66
+ }, [n, a]), /* @__PURE__ */ L("schedule-layout", { children: [
66
67
  /* @__PURE__ */ t("sticky-content-wrapper", { "data-pinned-state": "unpinned", children: /* @__PURE__ */ t(
67
68
  "content-constrainer",
68
69
  {
69
- class: L([
70
+ class: E([
70
71
  "content-constrainer--no-padding",
71
72
  "content-constrainer--no-border",
72
73
  "content-constrainer--lead-container",
73
74
  "schedule-date-nav-constrainer"
74
75
  ]),
75
- children: /* @__PURE__ */ t(k, {})
76
+ children: /* @__PURE__ */ t(q, {})
76
77
  }
77
78
  ) }),
78
- /* @__PURE__ */ t("section", { className: "page-section", id: "schedule-section", children: /* @__PURE__ */ t("content-constrainer", { class: "content-constrainer--no-border schedule-content-constrainer", children: /* @__PURE__ */ t("div", { id: w(n, "yyyy-MM-dd"), role: "tabpanel", children: /* @__PURE__ */ t(q, { handleClicks: f }) }) }) })
79
+ /* @__PURE__ */ t("section", { className: "page-section", id: "schedule-section", children: /* @__PURE__ */ t("content-constrainer", { class: "content-constrainer--no-border schedule-content-constrainer", children: /* @__PURE__ */ t("div", { id: b(n, "yyyy-MM-dd"), role: "tabpanel", children: /* @__PURE__ */ t(x, { fetchError: p, handleClicks: f }) }) }) })
79
80
  ] });
80
81
  }
81
- function N({
82
+ function O({
82
83
  schedule: f = [],
83
- weeks: n = [],
84
- handleScheduleClicks: r = () => !0,
85
- handleDateChanged: p = () => !0
84
+ weeks: p = [],
85
+ handleScheduleClicks: n = () => !0,
86
+ handleDateChanged: r = () => !0,
87
+ fetchError: m = !1
86
88
  }) {
87
89
  return /* @__PURE__ */ t(
88
- E,
90
+ T,
89
91
  {
90
- handleDateChanged: p,
92
+ handleDateChanged: r,
91
93
  schedule: f,
92
- weeks: n,
93
- children: /* @__PURE__ */ t(x, { handleScheduleClicks: r })
94
+ weeks: p,
95
+ children: /* @__PURE__ */ t(C, { fetchError: m, handleScheduleClicks: n })
94
96
  }
95
97
  );
96
98
  }
97
99
  export {
98
- N as ScheduleLayout,
99
- N as default
100
+ O as ScheduleLayout,
101
+ O as default
100
102
  };
@@ -1,6 +1,7 @@
1
1
  import { HandleClicksDetails } from '../../types.d.ts';
2
2
  type ScheduleListProps = {
3
3
  handleClicks?: (details: HandleClicksDetails) => boolean | void;
4
+ fetchError?: boolean;
4
5
  };
5
- export declare function ScheduleList({ handleClicks, }: ScheduleListProps): JSX.Element;
6
+ export declare function ScheduleList({ handleClicks, fetchError, }: ScheduleListProps): JSX.Element;
6
7
  export default ScheduleList;
@@ -1,12 +1,12 @@
1
- import { jsx as t, jsxs as q } from "react/jsx-runtime";
2
- import { useReducer as S, useState as R, useRef as w, useCallback as A, useEffect as d } from "react";
1
+ import { jsx as a, jsxs as d } from "react/jsx-runtime";
2
+ import { useReducer as u, useState as R, useRef as w, useCallback as A, useEffect as c } from "react";
3
3
  import { classes as T, getMinutesFromStr as L } from "../../utils/helpers.js";
4
- import { useScheduleContext as x } from "../ScheduleLayout/useScheduleContext.js";
5
- import { Loading as b } from "../Loading/Loading.js";
6
- import { SportsItem as u } from "./schedule-list-items/SportsItem.js";
7
- import { SeriesItem as D } from "./schedule-list-items/SeriesItem.js";
8
- import { MovieItem as M } from "./schedule-list-items/MovieItem.js";
9
- import '../../assets/ScheduleList.css';const l = {
4
+ import { useScheduleContext as b } from "../ScheduleLayout/useScheduleContext.js";
5
+ import { Loading as x } from "../Loading/Loading.js";
6
+ import { SportsItem as D } from "./schedule-list-items/SportsItem.js";
7
+ import { SeriesItem as M } from "./schedule-list-items/SeriesItem.js";
8
+ import { MovieItem as k } from "./schedule-list-items/MovieItem.js";
9
+ import '../../assets/ScheduleList.css';const f = {
10
10
  "schedule-list__item": "_schedule-list__item_wmqq1_1",
11
11
  "schedule-list__airdate": "_schedule-list__airdate_wmqq1_14",
12
12
  "airdate-formatter__date": "_airdate-formatter__date_wmqq1_22",
@@ -21,11 +21,11 @@ import '../../assets/ScheduleList.css';const l = {
21
21
  "date-navigation__date": "_date-navigation__date_wmqq1_113",
22
22
  "image-card__content": "_image-card__content_wmqq1_122"
23
23
  };
24
- function c(r) {
24
+ function S(r) {
25
25
  return typeof r == "object" && !Array.isArray(r) && "queryStatus" in r && r.queryStatus === "no-results";
26
26
  }
27
- function k(r, a) {
28
- switch (a.type) {
27
+ function C(r, p) {
28
+ switch (p.type) {
29
29
  case "START_EXIT":
30
30
  return "exiting";
31
31
  case "EXIT_COMPLETE":
@@ -38,9 +38,9 @@ function k(r, a) {
38
38
  return r;
39
39
  }
40
40
  }
41
- const E = (r) => {
42
- var a, s, n, p, o, y, f, _, e, i, g;
43
- return (a = r.video) != null && a.brightcove_id ? {
41
+ const v = (r) => {
42
+ var p, t, s, n, e, o, y, g, _, l, i;
43
+ return (p = r.video) != null && p.brightcove_id ? {
44
44
  label: "Watch Preview",
45
45
  type: "play-video",
46
46
  href: "",
@@ -71,10 +71,10 @@ const E = (r) => {
71
71
  //'film',
72
72
  position: void 0
73
73
  //'inline',
74
- } : (((s = r == null ? void 0 : r.content) == null ? void 0 : s.external_link) !== void 0 && ((n = r == null ? void 0 : r.content) == null ? void 0 : n.external_link) !== "" || ((p = r == null ? void 0 : r.content) == null ? void 0 : p.slug) !== void 0 && ((o = r == null ? void 0 : r.content) == null ? void 0 : o.slug) !== "") && !((y = r == null ? void 0 : r.content) != null && y.prevent_detail_page) ? {
74
+ } : (((t = r == null ? void 0 : r.content) == null ? void 0 : t.external_link) !== void 0 && ((s = r == null ? void 0 : r.content) == null ? void 0 : s.external_link) !== "" || ((n = r == null ? void 0 : r.content) == null ? void 0 : n.slug) !== void 0 && ((e = r == null ? void 0 : r.content) == null ? void 0 : e.slug) !== "") && !((o = r == null ? void 0 : r.content) != null && o.prevent_detail_page) ? {
75
75
  label: (r == null ? void 0 : r.program_class) === "Episode" ? "View Series Details" : (r == null ? void 0 : r.program_class) === "Film" ? "View Movie Details" : "Learn More",
76
- type: (f = r == null ? void 0 : r.content) != null && f.external_link ? "external-link" : "internal-link",
77
- href: (_ = r == null ? void 0 : r.content) != null && _.external_link ? (e = r == null ? void 0 : r.content) == null ? void 0 : e.external_link : r.program_class === "Episode" ? `/show/${(i = r == null ? void 0 : r.content) == null ? void 0 : i.slug}` : `/movie/${(g = r == null ? void 0 : r.content) == null ? void 0 : g.slug}`,
76
+ type: (y = r == null ? void 0 : r.content) != null && y.external_link ? "external-link" : "internal-link",
77
+ href: (g = r == null ? void 0 : r.content) != null && g.external_link ? (_ = r == null ? void 0 : r.content) == null ? void 0 : _.external_link : r.program_class === "Episode" ? `/show/${(l = r == null ? void 0 : r.content) == null ? void 0 : l.slug}` : `/movie/${(i = r == null ? void 0 : r.content) == null ? void 0 : i.slug}`,
78
78
  position: "inline"
79
79
  } : {
80
80
  label: "",
@@ -83,26 +83,27 @@ const E = (r) => {
83
83
  position: void 0
84
84
  };
85
85
  };
86
- function j({
87
- handleClicks: r = () => !0
86
+ function H({
87
+ handleClicks: r = () => !0,
88
+ fetchError: p = !1
88
89
  }) {
89
- const { schedule: a, isLoading: s } = x(), [n, p] = S(k, "idle"), [o, y] = R(a), f = w(null), _ = w(null), e = A(() => {
90
- _.current && (clearTimeout(_.current), _.current = null), n === "exiting" ? p({ type: "EXIT_COMPLETE" }) : n === "entering" && p({ type: "ENTER_COMPLETE" });
90
+ const { schedule: t, isLoading: s } = b(), [n, e] = u(C, "idle"), [o, y] = R(t), g = w(null), _ = w(null), l = A(() => {
91
+ _.current && (clearTimeout(_.current), _.current = null), n === "exiting" ? e({ type: "EXIT_COMPLETE" }) : n === "entering" && e({ type: "ENTER_COMPLETE" });
91
92
  }, [n]);
92
- return d(() => {
93
- const i = f.current;
93
+ return c(() => {
94
+ const i = g.current;
94
95
  if (i)
95
- return i.addEventListener("animationend", e), () => {
96
- i.removeEventListener("animationend", e);
96
+ return i.addEventListener("animationend", l), () => {
97
+ i.removeEventListener("animationend", l);
97
98
  };
98
- }, [e]), d(() => {
99
- s && n === "idle" && p({ type: "START_EXIT" });
100
- }, [s, n]), d(() => {
101
- const i = c(a) || Array.isArray(a) && a.length >= 0;
102
- !s && n === "loading" && i && (y(a), p({ type: "SCHEDULE_LOADED" }));
103
- }, [s, n, a]), d(() => () => {
99
+ }, [l]), c(() => {
100
+ s && n === "idle" && e({ type: "START_EXIT" });
101
+ }, [s, n]), c(() => {
102
+ const i = S(t) || Array.isArray(t) && t.length >= 0;
103
+ !s && n === "loading" && i && (y(t), e({ type: "SCHEDULE_LOADED" }));
104
+ }, [s, n, t]), c(() => () => {
104
105
  _.current && clearTimeout(_.current);
105
- }, []), n === "loading" ? /* @__PURE__ */ t(
106
+ }, []), n === "loading" ? /* @__PURE__ */ a(
106
107
  "div",
107
108
  {
108
109
  style: {
@@ -111,75 +112,82 @@ function j({
111
112
  minHeight: "100dvh",
112
113
  paddingTop: "6rem"
113
114
  },
114
- children: /* @__PURE__ */ t(b, {})
115
+ children: /* @__PURE__ */ a(x, {})
115
116
  }
116
- ) : c(o) ? /* @__PURE__ */ q(
117
+ ) : p ? /* @__PURE__ */ d("div", { className: "schedule-list__no-schedule", children: [
118
+ /* @__PURE__ */ a("h2", { children: "There was an error loading the schedule for this day." }),
119
+ /* @__PURE__ */ d("p", { children: [
120
+ "Please try again later. If this problem persists report it at ",
121
+ /* @__PURE__ */ a("a", { href: "https://support.iontelevision.com/support/home", children: "our support page" }),
122
+ "."
123
+ ] })
124
+ ] }) : S(o) ? /* @__PURE__ */ d(
117
125
  "div",
118
126
  {
119
127
  className: T([
120
- l["schedule-list__no-schedule"],
128
+ f["schedule-list__no-schedule"],
121
129
  "schedule-list__no-schedule"
122
130
  ]),
123
131
  "data-state": n,
124
132
  style: { animationDelay: "500ms" },
125
133
  children: [
126
- /* @__PURE__ */ t("h2", { children: "There are no shows scheduled for this day." }),
127
- /* @__PURE__ */ q("p", { children: [
134
+ /* @__PURE__ */ a("h2", { children: "There are no shows scheduled for this day." }),
135
+ /* @__PURE__ */ d("p", { children: [
128
136
  "Please try again later. If this problem persists report it at ",
129
- /* @__PURE__ */ t("a", { href: "https://support.iontelevision.com/support/home", children: "our support page" }),
137
+ /* @__PURE__ */ a("a", { href: "https://support.iontelevision.com/support/home", children: "our support page" }),
130
138
  "."
131
139
  ] })
132
140
  ]
133
141
  }
134
- ) : Array.isArray(o) && o.length === 0 ? /* @__PURE__ */ q(
142
+ ) : Array.isArray(o) && o.length === 0 ? /* @__PURE__ */ d(
135
143
  "div",
136
144
  {
137
145
  className: T([
138
- l["schedule-list__no-schedule"],
146
+ f["schedule-list__no-schedule"],
139
147
  "schedule-list__no-schedule"
140
148
  ]),
141
149
  "data-state": n,
142
150
  children: [
143
- /* @__PURE__ */ t("h2", { children: "Our programming schedule for today has completed." }),
144
- /* @__PURE__ */ t("p", { children: "Our programming will restart at 6am." })
151
+ /* @__PURE__ */ a("h2", { children: "Our programming schedule for today has completed." }),
152
+ /* @__PURE__ */ a("p", { children: "Our programming will restart at 6am." })
145
153
  ]
146
154
  }
147
- ) : /* @__PURE__ */ t(
155
+ ) : /* @__PURE__ */ a(
148
156
  "ul",
149
157
  {
150
- className: `${l["schedule-list"]} schedule-list`,
158
+ className: `${f["schedule-list"]} schedule-list`,
151
159
  "data-state": n,
152
- ref: f,
160
+ ref: g,
153
161
  children: Array.isArray(o) && o.map((i) => {
154
- const g = L(i.element_length), v = E(i).type === "" ? [g, i.rating] : [g, i.rating, " "];
155
- return i.program_class === "Episode" ? /* @__PURE__ */ t(
156
- D,
162
+ const q = L(i.element_length), E = v(i).type === "" ? [q, i.rating] : [q, i.rating, " "];
163
+ return i.program_class === "Episode" ? /* @__PURE__ */ a(
164
+ M,
157
165
  {
158
- determineCTA: E,
166
+ determineCTA: v,
159
167
  handleClicks: r,
160
168
  scheduleItem: i,
161
- strListArr: v,
162
- styles: l
169
+ strListArr: E,
170
+ styles: f
163
171
  },
164
172
  `schedule-list-${i.id}`
165
- ) : i.program_class === "Film" || i.program_class === "Movie" || i.program_class === "Special" ? /* @__PURE__ */ t(
166
- M,
173
+ ) : i.program_class === "Film" || i.program_class === "Movie" || i.program_class === "Special" ? /* @__PURE__ */ a(
174
+ k,
167
175
  {
168
- determineCTA: E,
176
+ determineCTA: v,
169
177
  handleClicks: r,
170
178
  scheduleItem: i,
171
- strListArr: v,
172
- styles: l
179
+ strListArr: E,
180
+ styles: f
173
181
  },
174
182
  `schedule-list-${i.id}`
175
- ) : i.program_class === "Sports" ? /* @__PURE__ */ t(
176
- u,
183
+ ) : i.program_class === "Sports" ? /* @__PURE__ */ a(
184
+ D,
177
185
  {
178
- determineCTA: E,
186
+ determineCTA: v,
179
187
  handleClicks: r,
180
188
  scheduleItem: i,
181
- strListArr: v,
182
- styles: l
189
+ strListArr: E,
190
+ styles: f
183
191
  },
184
192
  `schedule-list-${i.id}`
185
193
  ) : null;
@@ -188,6 +196,6 @@ function j({
188
196
  );
189
197
  }
190
198
  export {
191
- j as ScheduleList,
192
- j as default
199
+ H as ScheduleList,
200
+ H as default
193
201
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.0-alpha.3",
2
+ "version": "1.1.0-alpha.4",
3
3
  "name": "@scrippsproduct/networks-ui-library",
4
4
  "description": "React Component Library for use in Scripps Networks external applications",
5
5
  "author": {