@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
|
|
2
|
-
import { useRef as d, useCallback as
|
|
3
|
-
import { f as
|
|
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
|
|
6
|
-
import { ScheduleProvider as
|
|
7
|
-
import { useScheduleContext as
|
|
8
|
-
import { DateNavigation as
|
|
9
|
-
import { ScheduleList as
|
|
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
|
|
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 } =
|
|
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
|
|
19
|
-
if (
|
|
20
|
-
const
|
|
21
|
-
|
|
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
|
-
`${
|
|
24
|
+
`${S}px`
|
|
24
25
|
);
|
|
25
26
|
}
|
|
26
|
-
},
|
|
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(),
|
|
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(),
|
|
45
|
-
}, []),
|
|
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
|
|
51
|
-
window.removeEventListener("resize",
|
|
52
|
-
}), [a,
|
|
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
|
-
}, []),
|
|
64
|
+
}, []), v(() => {
|
|
64
65
|
a(n);
|
|
65
|
-
}, [n, a]), /* @__PURE__ */
|
|
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:
|
|
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(
|
|
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:
|
|
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
|
|
82
|
+
function O({
|
|
82
83
|
schedule: f = [],
|
|
83
|
-
weeks:
|
|
84
|
-
handleScheduleClicks:
|
|
85
|
-
handleDateChanged:
|
|
84
|
+
weeks: p = [],
|
|
85
|
+
handleScheduleClicks: n = () => !0,
|
|
86
|
+
handleDateChanged: r = () => !0,
|
|
87
|
+
fetchError: m = !1
|
|
86
88
|
}) {
|
|
87
89
|
return /* @__PURE__ */ t(
|
|
88
|
-
|
|
90
|
+
T,
|
|
89
91
|
{
|
|
90
|
-
handleDateChanged:
|
|
92
|
+
handleDateChanged: r,
|
|
91
93
|
schedule: f,
|
|
92
|
-
weeks:
|
|
93
|
-
children: /* @__PURE__ */ t(
|
|
94
|
+
weeks: p,
|
|
95
|
+
children: /* @__PURE__ */ t(C, { fetchError: m, handleScheduleClicks: n })
|
|
94
96
|
}
|
|
95
97
|
);
|
|
96
98
|
}
|
|
97
99
|
export {
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
2
|
-
import { useReducer as
|
|
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
|
|
5
|
-
import { Loading as
|
|
6
|
-
import { SportsItem as
|
|
7
|
-
import { SeriesItem as
|
|
8
|
-
import { MovieItem as
|
|
9
|
-
import '../../assets/ScheduleList.css';const
|
|
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
|
|
24
|
+
function S(r) {
|
|
25
25
|
return typeof r == "object" && !Array.isArray(r) && "queryStatus" in r && r.queryStatus === "no-results";
|
|
26
26
|
}
|
|
27
|
-
function
|
|
28
|
-
switch (
|
|
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
|
|
42
|
-
var
|
|
43
|
-
return (
|
|
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
|
-
} : (((
|
|
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: (
|
|
77
|
-
href: (
|
|
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
|
|
87
|
-
handleClicks: r = () => !0
|
|
86
|
+
function H({
|
|
87
|
+
handleClicks: r = () => !0,
|
|
88
|
+
fetchError: p = !1
|
|
88
89
|
}) {
|
|
89
|
-
const { schedule:
|
|
90
|
-
_.current && (clearTimeout(_.current), _.current = null), n === "exiting" ?
|
|
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
|
|
93
|
-
const i =
|
|
93
|
+
return c(() => {
|
|
94
|
+
const i = g.current;
|
|
94
95
|
if (i)
|
|
95
|
-
return i.addEventListener("animationend",
|
|
96
|
-
i.removeEventListener("animationend",
|
|
96
|
+
return i.addEventListener("animationend", l), () => {
|
|
97
|
+
i.removeEventListener("animationend", l);
|
|
97
98
|
};
|
|
98
|
-
}, [
|
|
99
|
-
s && n === "idle" &&
|
|
100
|
-
}, [s, n]),
|
|
101
|
-
const i =
|
|
102
|
-
!s && n === "loading" && i && (y(
|
|
103
|
-
}, [s, n,
|
|
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__ */
|
|
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__ */
|
|
115
|
+
children: /* @__PURE__ */ a(x, {})
|
|
115
116
|
}
|
|
116
|
-
) :
|
|
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
|
-
|
|
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__ */
|
|
127
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
142
|
+
) : Array.isArray(o) && o.length === 0 ? /* @__PURE__ */ d(
|
|
135
143
|
"div",
|
|
136
144
|
{
|
|
137
145
|
className: T([
|
|
138
|
-
|
|
146
|
+
f["schedule-list__no-schedule"],
|
|
139
147
|
"schedule-list__no-schedule"
|
|
140
148
|
]),
|
|
141
149
|
"data-state": n,
|
|
142
150
|
children: [
|
|
143
|
-
/* @__PURE__ */
|
|
144
|
-
/* @__PURE__ */
|
|
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__ */
|
|
155
|
+
) : /* @__PURE__ */ a(
|
|
148
156
|
"ul",
|
|
149
157
|
{
|
|
150
|
-
className: `${
|
|
158
|
+
className: `${f["schedule-list"]} schedule-list`,
|
|
151
159
|
"data-state": n,
|
|
152
|
-
ref:
|
|
160
|
+
ref: g,
|
|
153
161
|
children: Array.isArray(o) && o.map((i) => {
|
|
154
|
-
const
|
|
155
|
-
return i.program_class === "Episode" ? /* @__PURE__ */
|
|
156
|
-
|
|
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:
|
|
166
|
+
determineCTA: v,
|
|
159
167
|
handleClicks: r,
|
|
160
168
|
scheduleItem: i,
|
|
161
|
-
strListArr:
|
|
162
|
-
styles:
|
|
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__ */
|
|
166
|
-
|
|
173
|
+
) : i.program_class === "Film" || i.program_class === "Movie" || i.program_class === "Special" ? /* @__PURE__ */ a(
|
|
174
|
+
k,
|
|
167
175
|
{
|
|
168
|
-
determineCTA:
|
|
176
|
+
determineCTA: v,
|
|
169
177
|
handleClicks: r,
|
|
170
178
|
scheduleItem: i,
|
|
171
|
-
strListArr:
|
|
172
|
-
styles:
|
|
179
|
+
strListArr: E,
|
|
180
|
+
styles: f
|
|
173
181
|
},
|
|
174
182
|
`schedule-list-${i.id}`
|
|
175
|
-
) : i.program_class === "Sports" ? /* @__PURE__ */
|
|
176
|
-
|
|
183
|
+
) : i.program_class === "Sports" ? /* @__PURE__ */ a(
|
|
184
|
+
D,
|
|
177
185
|
{
|
|
178
|
-
determineCTA:
|
|
186
|
+
determineCTA: v,
|
|
179
187
|
handleClicks: r,
|
|
180
188
|
scheduleItem: i,
|
|
181
|
-
strListArr:
|
|
182
|
-
styles:
|
|
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
|
-
|
|
192
|
-
|
|
199
|
+
H as ScheduleList,
|
|
200
|
+
H as default
|
|
193
201
|
};
|
package/package.json
CHANGED