@openrails/contentkit-ui 0.93.1 → 0.95.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.
Files changed (74) hide show
  1. package/README.md +77 -5
  2. package/dist/client/browser-reader-preferences.d.ts +38 -0
  3. package/dist/client/browser-reader-preferences.js +172 -0
  4. package/dist/client/browser-reader-preferences.js.map +1 -0
  5. package/dist/client/client.d.ts +3 -0
  6. package/dist/client/client.js +27 -25
  7. package/dist/client/client.js.map +1 -1
  8. package/dist/client/discovery.d.ts +14 -1
  9. package/dist/client/discovery.js +36 -22
  10. package/dist/client/discovery.js.map +1 -1
  11. package/dist/client/generated/routes.d.ts +33 -7
  12. package/dist/client/generated/routes.js +57 -2
  13. package/dist/client/generated/routes.js.map +1 -1
  14. package/dist/client/generated/wire.d.ts +15 -0
  15. package/dist/client/generated/wire.js.map +1 -1
  16. package/dist/client/http.d.ts +18 -1
  17. package/dist/client/http.js +67 -26
  18. package/dist/client/http.js.map +1 -1
  19. package/dist/client/index.d.ts +3 -1
  20. package/dist/client/reader-preferences.d.ts +46 -0
  21. package/dist/client/reader-preferences.js +147 -0
  22. package/dist/client/reader-preferences.js.map +1 -0
  23. package/dist/client.js +17 -15
  24. package/dist/components/content/card.d.ts +21 -5
  25. package/dist/components/content/card.js +80 -67
  26. package/dist/components/content/card.js.map +1 -1
  27. package/dist/components/content/daily-releases.d.ts +15 -0
  28. package/dist/components/content/daily-releases.js +167 -0
  29. package/dist/components/content/daily-releases.js.map +1 -0
  30. package/dist/components/content/filters.d.ts +1 -1
  31. package/dist/components/content/filters.js +1 -5
  32. package/dist/components/content/filters.js.map +1 -1
  33. package/dist/components/content/grid.d.ts +14 -1
  34. package/dist/components/content/grid.js +58 -32
  35. package/dist/components/content/grid.js.map +1 -1
  36. package/dist/components/content/index.d.ts +4 -2
  37. package/dist/components/content/popular.d.ts +11 -0
  38. package/dist/components/content/popular.js +49 -0
  39. package/dist/components/content/popular.js.map +1 -0
  40. package/dist/components/content/reader-settings.d.ts +1 -1
  41. package/dist/components/content/reader-settings.js +67 -44
  42. package/dist/components/content/reader-settings.js.map +1 -1
  43. package/dist/index.js +22 -20
  44. package/dist/locales/discovery/de.js +6 -0
  45. package/dist/locales/discovery/de.js.map +1 -1
  46. package/dist/locales/discovery/en.d.ts +6 -0
  47. package/dist/locales/discovery/en.js +6 -0
  48. package/dist/locales/discovery/en.js.map +1 -1
  49. package/dist/locales/discovery/es.js +6 -0
  50. package/dist/locales/discovery/es.js.map +1 -1
  51. package/dist/locales/discovery/ja.js +6 -0
  52. package/dist/locales/discovery/ja.js.map +1 -1
  53. package/dist/locales/discovery/ko.js +6 -0
  54. package/dist/locales/discovery/ko.js.map +1 -1
  55. package/dist/locales/discovery/zh.js +6 -0
  56. package/dist/locales/discovery/zh.js.map +1 -1
  57. package/dist/locales/en.d.ts +6 -0
  58. package/dist/react/context.d.ts +1 -1
  59. package/dist/react/context.js.map +1 -1
  60. package/dist/react/discovery.d.ts +14 -4
  61. package/dist/react/discovery.js +196 -149
  62. package/dist/react/discovery.js.map +1 -1
  63. package/dist/react/index.d.ts +2 -1
  64. package/dist/react/provider.d.ts +4 -1
  65. package/dist/react/provider.js +38 -31
  66. package/dist/react/provider.js.map +1 -1
  67. package/dist/react/reader-preferences.d.ts +13 -0
  68. package/dist/react/reader-preferences.js +15 -0
  69. package/dist/react/reader-preferences.js.map +1 -0
  70. package/dist/react/resources.js +11 -11
  71. package/dist/react/resources.js.map +1 -1
  72. package/dist/react.js +10 -9
  73. package/dist/styles.css +1 -1
  74. package/package.json +1 -1
@@ -1,43 +1,43 @@
1
- import { toContentKitError as e } from "../client/errors.js";
2
- import { ContentKitContext as t, useGuarded as n } from "./context.js";
3
- import { keyOf as r, useContentScope as i, useList as a, useResource as o } from "./use-resource.js";
4
- import { recentSearchLimit as s } from "../client/browser-search-history.js";
5
- import { Beacons as c, eventId as l } from "../client/beacons.js";
6
- import { useCallback as u, useContext as d, useEffect as f, useLayoutEffect as p, useMemo as m, useRef as h, useState as g, useSyncExternalStore as _ } from "react";
1
+ import { ContentKitError as e, toContentKitError as t } from "../client/errors.js";
2
+ import { ContentKitContext as n, useGuarded as r } from "./context.js";
3
+ import { keyOf as i, useContentScope as a, useList as o, useResource as s } from "./use-resource.js";
4
+ import { recentSearchLimit as c } from "../client/browser-search-history.js";
5
+ import { Beacons as l, eventId as u } from "../client/beacons.js";
6
+ import { useCallback as d, useContext as f, useEffect as p, useLayoutEffect as m, useMemo as h, useRef as g, useState as _, useSyncExternalStore as v } from "react";
7
7
  //#region src/react/discovery.ts
8
- var v = (e) => ({
8
+ var y = (e) => ({
9
9
  items: e.contents,
10
10
  next: e.next_cursor ?? null
11
- }), y = [];
12
- function b(e, t) {
13
- let n = m(() => ({
11
+ }), b = [];
12
+ function x(e, t) {
13
+ let n = h(() => ({
14
14
  client: e,
15
15
  scope: t
16
- }), [e, t]), r = h(n);
17
- return p(() => (r.current = n, () => {
16
+ }), [e, t]), r = g(n);
17
+ return m(() => (r.current = n, () => {
18
18
  r.current = null;
19
- }), [n]), u(() => r.current === n, [n]);
19
+ }), [n]), d(() => r.current === n, [n]);
20
20
  }
21
- function x(e) {
22
- let n = d(t)?.language;
23
- return m(() => e && !e.display_language && n ? {
21
+ function S(e) {
22
+ let t = f(n)?.language;
23
+ return h(() => e && !e.display_language && t ? {
24
24
  ...e,
25
- display_language: n
26
- } : e, [e, n]);
25
+ display_language: t
26
+ } : e, [e, t]);
27
27
  }
28
- function S(e, t = {}) {
29
- let { client: n, store: o, scope: s } = i(t.client), c = x(e);
30
- return a(o, c ? r("cards", s, "list", c) : null, { type: "cards" }, async (e, t) => v(await n.discovery.list({
28
+ function C(e, t = {}) {
29
+ let { client: n, store: r, scope: s } = a(t.client), c = S(e);
30
+ return o(r, c ? i("cards", s, "list", c) : null, { type: "cards" }, async (e, t) => y(await n.discovery.list({
31
31
  ...c,
32
32
  cursor: e
33
33
  }, t)));
34
34
  }
35
- function C(e, t = {}) {
36
- let { client: n, store: a, scope: s } = i(t.client), c = x(m(() => {
35
+ function w(e, t = {}) {
36
+ let { client: n, store: r, scope: o } = a(t.client), c = S(h(() => {
37
37
  if (!e) return null;
38
38
  let { sort: t, cursor: n, limit: r, card_entities: i, mode: a, ...o } = e;
39
39
  return o;
40
- }, [e])), l = o(a, c ? r("release-dates", s, "locked", c) : null, { type: "release-dates" }, async (e) => {
40
+ }, [e])), l = s(r, c ? i("release-dates", o, "locked", c) : null, { type: "release-dates" }, async (e) => {
41
41
  let t = async (t) => (await n.discovery.releaseDates({
42
42
  ...c,
43
43
  mode: t,
@@ -51,37 +51,37 @@ function C(e, t = {}) {
51
51
  loading: l.loading
52
52
  };
53
53
  }
54
- function w(e, t = {}) {
55
- let { client: n, store: o, scope: s, viewer: c } = i(t.client), l = x(e?.q.trim() ? e : null), u = b(n, s);
56
- return a(o, l ? r("cards", s, "search", l) : null, { type: "cards" }, async (e, t) => {
54
+ function T(e, t = {}) {
55
+ let { client: n, store: r, scope: s, viewer: c } = a(t.client), l = S(e?.q.trim() ? e : null), u = x(n, s);
56
+ return o(r, l ? i("cards", s, "search", l) : null, { type: "cards" }, async (e, t) => {
57
57
  let r = await n.discovery.search({
58
58
  ...l,
59
59
  cursor: e
60
60
  }, t);
61
- return !e && c === null && !t.aborted && u() && n.discovery.browserSearches.record(l.q, r.contents.length), v(r);
61
+ return !e && c === null && !t.aborted && u() && n.discovery.browserSearches.record(l.q, r.contents.length), y(r);
62
62
  });
63
63
  }
64
- function T(e, t, n) {
65
- let { store: r } = i(n.client), a = o(r, e, { type: "cards" }, async (e) => (await t(e)).contents), s = a.error?.code === "not_configured";
64
+ function E(e, t, n) {
65
+ let { store: r } = a(n.client), i = s(r, e, { type: "cards" }, async (e) => (await t(e)).contents), o = i.error?.code === "not_configured";
66
66
  return {
67
- items: a.data ?? [],
68
- loading: !!e && (a.loading || !a.loaded),
69
- error: s ? void 0 : a.error,
70
- unavailable: s,
71
- reload: a.reload
67
+ items: i.data ?? [],
68
+ loading: !!e && (i.loading || !i.loaded),
69
+ error: o ? void 0 : i.error,
70
+ unavailable: o,
71
+ reload: i.reload
72
72
  };
73
73
  }
74
- function E(e, t = {}, n = {}) {
75
- let { client: a, scope: o } = i(n.client), s = x(t);
76
- return T(e ? r("cards", o, "similar", e, s) : null, (t) => a.discovery.similar(e, s, t), n);
77
- }
78
- function D(e = {}, t = {}) {
79
- let { client: n, scope: a, viewer: o } = i(t.client), s = x(e);
80
- return T(o === null || !s ? null : r("cards", a, "recommended", s), (e) => n.discovery.recommendations(s, e), t);
74
+ function D(e, t = {}, n = {}) {
75
+ let { client: r, scope: o } = a(n.client), s = S(t);
76
+ return E(e ? i("cards", o, "similar", e, s) : null, (t) => r.discovery.similar(e, s, t), n);
81
77
  }
82
78
  function O(e = {}, t = {}) {
83
- let { client: n, store: o, scope: s } = i(t.client), c = x(e);
84
- return a(o, r("release-dates", s, c), { type: "release-dates" }, async (e, t) => {
79
+ let { client: n, scope: r, viewer: o } = a(t.client), s = S(e);
80
+ return E(o === null || !s ? null : i("cards", r, "recommended", s), (e) => n.discovery.recommendations(s, e), t);
81
+ }
82
+ function k(e = {}, t = {}) {
83
+ let { client: n, store: r, scope: s } = a(t.client), c = S(e);
84
+ return o(r, i("release-dates", s, c), { type: "release-dates" }, async (e, t) => {
85
85
  let r = await n.discovery.releaseDates({
86
86
  ...c,
87
87
  cursor: e
@@ -95,173 +95,220 @@ function O(e = {}, t = {}) {
95
95
  };
96
96
  });
97
97
  }
98
- function k(e = {}, t = {}) {
99
- let { client: o, store: s, scope: c, viewer: l } = i(t.client), d = x(e), f = n(), p = a(s, l === null || !d ? null : r("history", c, d), { type: "history" }, async (e, t) => v(await o.discovery.history({
100
- ...d,
98
+ function A(e = {}, t = {}) {
99
+ let { client: n, store: r, scope: o } = a(t.client), c = S(e), l = s(r, c ? i("daily-releases", o, c) : null, { type: "daily-releases" }, (e) => n.discovery.releases(c, e));
100
+ return {
101
+ data: l.data,
102
+ loading: !!c && (l.loading || !l.loaded),
103
+ error: l.error,
104
+ reload: l.reload
105
+ };
106
+ }
107
+ function j(e = {}, t = {}) {
108
+ let { client: n, store: s, scope: c, viewer: l } = a(t.client), u = S(e), f = r(), p = o(s, l === null || !u ? null : i("history", c, u), { type: "history" }, async (e, t) => y(await n.discovery.history({
109
+ ...u,
101
110
  cursor: e
102
- }, t))), m = u((e = {}) => f(() => o.discovery.forgetHistory(e)), [o, f]);
111
+ }, t))), m = d((e = {}) => f(() => n.discovery.forgetHistory(e)), [n, f]);
103
112
  return {
104
113
  ...p,
105
114
  forget: m
106
115
  };
107
116
  }
108
- function A(e = {}) {
109
- let { client: t, store: a, scope: c, viewer: l } = i(e.client), d = n(), p = b(t, c), h = l === null, g = e.enabled !== !1, v = t.discovery.browserSearches, x = u((e) => h && g ? v.subscribe(e) : () => {}, [
110
- v,
111
- h,
117
+ function M(e = {}) {
118
+ let { client: t, store: n, scope: o, viewer: l } = a(e.client), u = r(), f = x(t, o), m = l === null, g = e.enabled !== !1, _ = t.discovery.browserSearches, y = d((e) => m && g ? _.subscribe(e) : () => {}, [
119
+ _,
120
+ m,
112
121
  g
113
- ]), S = u(() => h && g ? v.snapshot() : y, [
114
- v,
115
- h,
122
+ ]), S = d(() => m && g ? _.snapshot() : b, [
123
+ _,
124
+ m,
116
125
  g
117
- ]), C = _(x, S, () => y), w = m(() => C.slice(0, s(e.limit)), [C, e.limit]), T = !g || h ? null : r("searches", c, e.limit ?? 10), E = o(a, T, { type: "searches" }, async (n) => (await t.discovery.recentSearches({ limit: e.limit }, n)).searches);
118
- f(() => {
126
+ ]), C = v(y, S, () => b), w = h(() => C.slice(0, c(e.limit)), [C, e.limit]), T = !g || m ? null : i("searches", o, e.limit ?? 10), E = s(n, T, { type: "searches" }, async (n) => (await t.discovery.recentSearches({ limit: e.limit }, n)).searches);
127
+ p(() => {
119
128
  if (!T) return;
120
129
  let e = () => {
121
- a.snapshot(T).loading || a.load(T, !0);
130
+ n.snapshot(T).loading || n.load(T, !0);
122
131
  };
123
- a.snapshot(T).loaded && e();
132
+ n.snapshot(T).loaded && e();
124
133
  let t = () => {
125
134
  document.visibilityState === "visible" && e();
126
135
  };
127
136
  return typeof window < "u" && window.addEventListener("focus", e), typeof document < "u" && document.addEventListener("visibilitychange", t), () => {
128
137
  typeof window < "u" && window.removeEventListener("focus", e), typeof document < "u" && document.removeEventListener("visibilitychange", t);
129
138
  };
130
- }, [T, a]);
131
- let D = u(async (e) => {
132
- if (p()) {
133
- if (h) {
134
- v.clear(e);
139
+ }, [T, n]);
140
+ let D = d(async (e) => {
141
+ if (f()) {
142
+ if (m) {
143
+ _.clear(e);
135
144
  return;
136
145
  }
137
- await d(() => p() ? t.discovery.clearSearches(e ? { query: e } : {}) : Promise.resolve());
146
+ await u(() => f() ? t.discovery.clearSearches(e ? { query: e } : {}) : Promise.resolve());
138
147
  }
139
148
  }, [
140
- v,
149
+ _,
141
150
  t,
142
- h,
143
- d,
144
- p
151
+ m,
152
+ u,
153
+ f
145
154
  ]);
146
- return h ? {
147
- searches: g ? w : y,
155
+ return m ? {
156
+ searches: g ? w : b,
148
157
  loading: !1,
149
158
  clear: D
150
159
  } : {
151
- searches: E.data ?? y,
160
+ searches: E.data ?? b,
152
161
  loading: !!T && (E.loading || !E.loaded),
153
162
  error: E.error,
154
163
  clear: D
155
164
  };
156
165
  }
157
- var j = (e) => ({
166
+ var N = (e) => ({
158
167
  items: e.items.map((e) => ({
159
168
  ...e,
160
169
  id: e.content?.id ?? e.entity?.id ?? ""
161
170
  })),
162
171
  next: e.next_cursor ?? null
163
172
  });
164
- function M(e = {}, t = {}) {
165
- let { client: n, store: o, scope: s, viewer: c } = i(t.client), l = x(e);
166
- return a(o, c === null ? null : r("favorites", s, l), { type: "favorites" }, async (e, t) => j(await n.favorites.mine({
173
+ function P(e = {}, t = {}) {
174
+ let { client: n, store: r, scope: s, viewer: c } = a(t.client), l = S(e);
175
+ return o(r, c === null ? null : i("favorites", s, l), { type: "favorites" }, async (e, t) => N(await n.favorites.mine({
167
176
  ...l,
168
177
  cursor: e
169
178
  }, t)));
170
179
  }
171
- function N(e = {}, t = {}) {
172
- let { client: n, store: o, scope: s, viewer: c } = i(t.client), l = x(e);
173
- return a(o, c === null ? null : r("reactions", s, l), { type: "reactions" }, async (e, t) => j(await n.reactions.mine({
180
+ function F(e = {}, t = {}) {
181
+ let { client: n, store: r, scope: s, viewer: c } = a(t.client), l = S(e);
182
+ return o(r, c === null ? null : i("reactions", s, l), { type: "reactions" }, async (e, t) => N(await n.reactions.mine({
174
183
  ...l,
175
184
  cursor: e
176
185
  }, t)));
177
186
  }
178
- function P(e = {}) {
179
- let { client: t, store: a, scope: s, viewer: c, language: l } = i(e.client), d = e.language ?? l, f = c === null ? null : r("content-filters", s, d), p = o(a, f, { type: "content-filters" }, (e) => t.discovery.contentFilters(d, e)), m = n(), [_, v] = g(0), y = h(p.data);
180
- y.current = p.data;
181
- let b = u(async (e) => {
182
- v((e) => e + 1);
187
+ function I(t = {}) {
188
+ let { client: n, store: o, scope: c, viewer: l, language: u } = a(t.client), f = t.language ?? u, m = l === null, y = n.preferences.browser, b = v(y.subscribe, y.snapshot, y.snapshot), S = i("content-filters", c, f), C = g(null), w = m && C.current?.guest && C.current.client === n && C.current.language === f ? C.current.data : void 0, T = s(o, S, { type: "content-filters" }, (e) => n.discovery.contentFilters(f, e), { initial: w });
189
+ C.current = {
190
+ client: n,
191
+ language: f,
192
+ guest: m,
193
+ data: T.data
194
+ };
195
+ let E = d((e, t = b.filters) => {
196
+ let n = new Map(t.map((e) => [e.group_id, e.visible]));
197
+ return {
198
+ include_deleted: !1,
199
+ filters: e.filters.map((e) => ({
200
+ ...e,
201
+ visible: n.get(e.entity.id) ?? e.default_visible,
202
+ overridden: n.has(e.entity.id)
203
+ }))
204
+ };
205
+ }, [b.filters]), D = h(() => T.data && m ? E(T.data) : T.data, [
206
+ T.data,
207
+ m,
208
+ E
209
+ ]), O = r(), k = x(n, c), [A, j] = _(0), M = g(D);
210
+ M.current = D, p(() => {
211
+ j(0);
212
+ }, [n, c]);
213
+ let N = d(async (t) => {
214
+ if (!k()) throw new e("aborted", "The account changed.");
215
+ if (m) {
216
+ let n = M.current;
217
+ if (!n) throw new e("invalid_request", "Content filters have not loaded.");
218
+ let r = new Set(n.filters.map((e) => e.entity.id));
219
+ if (t.filters.some((e) => !r.has(e.group_id))) throw new e("invalid_request", "This content filter is not configured.");
220
+ return y.setFilters(t.filters), E(n, t.filters);
221
+ }
222
+ j((e) => e + 1);
183
223
  try {
184
- let n = await m(() => t.discovery.setContentFilters(e, d));
185
- return f && a.set(f, n), n;
224
+ let r = await O(() => {
225
+ if (!k()) throw new e("aborted", "The account changed.");
226
+ return n.discovery.setContentFilters(t, f);
227
+ });
228
+ return k() && o.set(S, r), r;
186
229
  } finally {
187
- v((e) => e - 1);
230
+ j((e) => Math.max(0, e - 1));
188
231
  }
189
232
  }, [
190
- t,
191
- m,
192
- d,
233
+ n,
234
+ O,
193
235
  f,
194
- a
195
- ]), x = (e) => e.filters.filter((e) => e.overridden).map((e) => ({
236
+ S,
237
+ o,
238
+ k,
239
+ m,
240
+ y,
241
+ E
242
+ ]), P = (e) => e.filters.filter((e) => e.overridden).map((e) => ({
196
243
  group_id: e.entity.id,
197
244
  visible: e.visible
198
- })), S = u((e, t) => {
199
- let n = y.current;
200
- return n ? b({
201
- filters: [...x(n).filter((t) => t.group_id !== e), {
245
+ })), F = d((e, t) => {
246
+ let n = M.current;
247
+ return n ? N({
248
+ filters: [...P(n).filter((t) => t.group_id !== e), {
202
249
  group_id: e,
203
250
  visible: t
204
251
  }],
205
252
  include_deleted: n.include_deleted
206
253
  }) : Promise.reject(/* @__PURE__ */ Error("contentkit-ui: the content filters have not loaded"));
207
- }, [b]), C = u((e) => {
208
- let t = y.current;
209
- return t ? b({
210
- filters: x(t),
254
+ }, [N]), I = d((e) => {
255
+ let t = M.current;
256
+ return t ? N({
257
+ filters: P(t),
211
258
  include_deleted: e
212
259
  }) : Promise.reject(/* @__PURE__ */ Error("contentkit-ui: the content filters have not loaded"));
213
- }, [b]);
260
+ }, [N]);
214
261
  return {
215
- filters: p.data ?? null,
216
- loading: !!f && (p.loading || !p.loaded),
217
- error: p.error,
218
- saving: _ > 0,
219
- save: b,
220
- setVisible: S,
221
- setIncludeDeleted: C
262
+ filters: D ?? null,
263
+ loading: T.loading || !T.loaded,
264
+ error: T.error,
265
+ saving: A > 0,
266
+ save: N,
267
+ setVisible: F,
268
+ setIncludeDeleted: I
222
269
  };
223
270
  }
224
- var F = {
271
+ var L = {
225
272
  contents: [],
226
273
  entities: []
227
274
  };
228
- function I(t, n = {}) {
229
- let { client: r, language: a } = i(n.client), { debounce: o = 150, minLength: s = 1, client: c, ...l } = n, u = t.trim(), d = m(() => ({
230
- display_language: a,
275
+ function R(e, n = {}) {
276
+ let { client: r, language: i } = a(n.client), { debounce: o = 150, minLength: s = 1, client: c, ...l } = n, u = e.trim(), d = h(() => ({
277
+ display_language: i,
231
278
  ...l,
232
279
  q: u
233
280
  }), [
234
- a,
281
+ i,
235
282
  u,
236
283
  JSON.stringify(l)
237
- ]), [p, h] = g({
238
- ...F,
284
+ ]), [f, m] = _({
285
+ ...L,
239
286
  query: "",
240
287
  loading: !1
241
288
  });
242
- return f(() => {
289
+ return p(() => {
243
290
  if (u.length < s) {
244
- h({
245
- ...F,
291
+ m({
292
+ ...L,
246
293
  query: "",
247
294
  loading: !1
248
295
  });
249
296
  return;
250
297
  }
251
- h((e) => ({
298
+ m((e) => ({
252
299
  ...e,
253
300
  loading: !0
254
301
  }));
255
- let t = new AbortController(), n = setTimeout(() => {
256
- r.discovery.typeahead(d, t.signal).then((e) => h({
302
+ let e = new AbortController(), n = setTimeout(() => {
303
+ r.discovery.typeahead(d, e.signal).then((e) => m({
257
304
  contents: e.contents,
258
305
  entities: e.entities,
259
306
  query: u,
260
307
  loading: !1
261
- }), (t) => {
262
- let n = e(t);
263
- n.code !== "aborted" && h({
264
- ...F,
308
+ }), (e) => {
309
+ let n = t(e);
310
+ n.code !== "aborted" && m({
311
+ ...L,
265
312
  query: u,
266
313
  loading: !1,
267
314
  error: n
@@ -269,7 +316,7 @@ function I(t, n = {}) {
269
316
  });
270
317
  }, o);
271
318
  return () => {
272
- clearTimeout(n), t.abort();
319
+ clearTimeout(n), e.abort();
273
320
  };
274
321
  }, [
275
322
  r,
@@ -277,27 +324,27 @@ function I(t, n = {}) {
277
324
  u,
278
325
  o,
279
326
  s
280
- ]), p;
327
+ ]), f;
281
328
  }
282
- var L = /* @__PURE__ */ new WeakMap();
283
- function R(e, t) {
284
- let n = L.get(e);
285
- return n || L.set(e, n = new c(e, t)), n;
329
+ var z = /* @__PURE__ */ new WeakMap();
330
+ function B(e, t) {
331
+ let n = z.get(e);
332
+ return n || z.set(e, n = new l(e, t)), n;
286
333
  }
287
- function z(e = {}) {
288
- let { client: t } = i(e.client);
289
- return R(t);
334
+ function V(e = {}) {
335
+ let { client: t } = a(e.client);
336
+ return B(t);
290
337
  }
291
- function B(e, t, n = {}) {
292
- let r = z(n), { client: i, ...a } = n, o = m(() => e ? r.view(e, t, a) : null, [
338
+ function H(e, t, n = {}) {
339
+ let r = V(n), { client: i, ...a } = n, o = h(() => e ? r.view(e, t, a) : null, [
293
340
  r,
294
341
  e,
295
342
  t
296
343
  ]);
297
- return u((e) => o?.update(e), [o]);
344
+ return d((e) => o?.update(e), [o]);
298
345
  }
299
- function V(e, t) {
300
- let n = z(t), r = m(() => l(), [t.render]), i = m(() => ({
346
+ function U(e, t) {
347
+ let n = V(t), r = h(() => u(), [t.render]), i = h(() => ({
301
348
  render_id: r,
302
349
  surface: t.surface,
303
350
  ranker: t.ranker,
@@ -309,10 +356,10 @@ function V(e, t) {
309
356
  t.ranker,
310
357
  t.query_id,
311
358
  t.language
312
- ]), a = h(/* @__PURE__ */ new Set()), o = h(/* @__PURE__ */ new Set());
313
- f(() => {
359
+ ]), a = g(/* @__PURE__ */ new Set()), o = g(/* @__PURE__ */ new Set());
360
+ p(() => {
314
361
  a.current = /* @__PURE__ */ new Set(), o.current = /* @__PURE__ */ new Set();
315
- }, [r]), f(() => {
362
+ }, [r]), p(() => {
316
363
  let t = e.flatMap((e, t) => a.current.has(e.id) ? [] : [{
317
364
  content_id: e.id,
318
365
  position: t + 1
@@ -329,7 +376,7 @@ function V(e, t) {
329
376
  i,
330
377
  e
331
378
  ]);
332
- let s = h([]), c = h(void 0), d = m(() => typeof IntersectionObserver == "function" ? new IntersectionObserver((e) => {
379
+ let s = g([]), c = g(void 0), l = h(() => typeof IntersectionObserver == "function" ? new IntersectionObserver((e) => {
333
380
  for (let t of e) {
334
381
  if (!t.isIntersecting) continue;
335
382
  let e = t.target, n = e.dataset.exposureContent;
@@ -349,12 +396,12 @@ function V(e, t) {
349
396
  });
350
397
  }, 300);
351
398
  }, { threshold: .5 }) : null, [n, i]);
352
- return f(() => () => d?.disconnect(), [d]), {
399
+ return p(() => () => l?.disconnect(), [l]), {
353
400
  render_id: r,
354
- track: u((e, t) => (n) => {
355
- n && d && (n.dataset.exposureContent = e, n.dataset.exposurePosition = String(t), d.observe(n));
356
- }, [d]),
357
- click: u((e, i) => n.click(e, {
401
+ track: d((e, t) => (n) => {
402
+ n && l && (n.dataset.exposureContent = e, n.dataset.exposurePosition = String(t), l.observe(n));
403
+ }, [l]),
404
+ click: d((e, i) => n.click(e, {
358
405
  render_id: r,
359
406
  surface: t.surface,
360
407
  position: i
@@ -366,6 +413,6 @@ function V(e, t) {
366
413
  };
367
414
  }
368
415
  //#endregion
369
- export { R as beaconsFor, z as useBeacons, P as useContentFilters, S as useContents, V as useExposure, k as useHistory, C as useLockedCount, M as useMyFavorites, N as useMyReactions, A as useRecentSearches, D as useRecommendations, O as useReleaseDates, w as useSearch, E as useSimilar, I as useTypeahead, B as useViewSignal };
416
+ export { B as beaconsFor, V as useBeacons, I as useContentFilters, C as useContents, A as useDailyReleases, U as useExposure, j as useHistory, w as useLockedCount, P as useMyFavorites, F as useMyReactions, M as useRecentSearches, O as useRecommendations, k as useReleaseDates, T as useSearch, D as useSimilar, R as useTypeahead, H as useViewSignal };
370
417
 
371
418
  //# sourceMappingURL=discovery.js.map