@streamlayer/react-ui 0.46.0 → 0.47.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/lib/index.js CHANGED
@@ -1,16 +1,16 @@
1
- import { QuestionInApp as yo } from "./ui/notifications/notification/question-inapp/index.js";
2
- import { Login as Uo } from "./ui/login/index.js";
3
- import { Onboarding as ko } from "./ui/gamification/onboarding/index.js";
4
- import { ActivePages as wo, Tab as zo, Tabs as Bo } from "./ui/gamification/tabs/index.js";
5
- import { LeaderboardItemDetail as Eo } from "./ui/gamification/leaderboard-item-detail/index.js";
6
- import { Question as Go } from "./ui/gamification/question/index.js";
7
- import { QuestionList as Jo } from "./ui/gamification/question/list/index.js";
8
- import { UserStatistics as Mo } from "./ui/gamification/user-statistics/index.js";
9
- import { Vote as Ro } from "./ui/gamification/vote/index.js";
10
- import { Demo as Xo } from "./ui/demo/index.js";
11
- import { Points as Zo } from "./ui/gamification/points/index.js";
12
- import { StreamLayerThemeProvider as $o } from "./ui/theme/index.js";
13
- import { ThemeVariables as rr, theme as tr, themeStr as mr } from "./ui/theme/theme.js";
1
+ import { QuestionInApp as Uo } from "./ui/notifications/notification/question-inapp/index.js";
2
+ import { Login as ko } from "./ui/login/index.js";
3
+ import { Onboarding as wo } from "./ui/gamification/onboarding/index.js";
4
+ import { ActivePages as Bo, Tab as Co, Tabs as Eo } from "./ui/gamification/tabs/index.js";
5
+ import { LeaderboardItemDetail as Go } from "./ui/gamification/leaderboard-item-detail/index.js";
6
+ import { Question as Jo } from "./ui/gamification/question/index.js";
7
+ import { QuestionList as Mo } from "./ui/gamification/question/list/index.js";
8
+ import { UserStatistics as Ro } from "./ui/gamification/user-statistics/index.js";
9
+ import { Vote as Xo } from "./ui/gamification/vote/index.js";
10
+ import { Demo as Zo } from "./ui/demo/index.js";
11
+ import { Points as $o } from "./ui/gamification/points/index.js";
12
+ import { StreamLayerThemeProvider as rr } from "./ui/theme/index.js";
13
+ import { ThemeVariables as mr, theme as pr, themeStr as ir } from "./ui/theme/theme.js";
14
14
  import "react/jsx-runtime";
15
15
  import "react";
16
16
  import "./icon-exit-d3f9fc80.js";
@@ -76,9 +76,11 @@ import "./ui/gamification/insight-list/styles.js";
76
76
  import "./ui/gamification/detailed-insight/styles.js";
77
77
  import "./ui/demo/components/Leaderboard.js";
78
78
  import "./ui/gamification/leaderboard-list/index.js";
79
+ import "react-virtualized-auto-sizer";
80
+ import "react-window";
81
+ import "react-window-infinite-loader";
79
82
  import "./ui/gamification/leaderboard-item/index.js";
80
83
  import "./ui/gamification/leaderboard-item/styles.js";
81
- import "./ui/gamification/leaderboard-list/styles.js";
82
84
  import "./ui/demo/styles.js";
83
85
  import "./ui/demo/Highlights.js";
84
86
  import "./ui/demo/components/Insights.js";
@@ -92,21 +94,21 @@ import "./ui/gamification/points/styles.js";
92
94
  import "./ui/theme/breakpoints.js";
93
95
  import "@linaria/core";
94
96
  export {
95
- wo as ActivePages,
96
- Xo as Demo,
97
- Eo as LeaderboardItemDetail,
98
- Uo as Login,
99
- ko as Onboarding,
100
- Zo as Points,
101
- Go as Question,
102
- yo as QuestionInApp,
103
- Jo as QuestionList,
104
- $o as StreamLayerThemeProvider,
105
- zo as Tab,
106
- Bo as Tabs,
107
- rr as ThemeVariables,
108
- Mo as UserStatistics,
109
- Ro as Vote,
110
- tr as theme,
111
- mr as themeStr
97
+ Bo as ActivePages,
98
+ Zo as Demo,
99
+ Go as LeaderboardItemDetail,
100
+ ko as Login,
101
+ wo as Onboarding,
102
+ $o as Points,
103
+ Jo as Question,
104
+ Uo as QuestionInApp,
105
+ Mo as QuestionList,
106
+ rr as StreamLayerThemeProvider,
107
+ Co as Tab,
108
+ Eo as Tabs,
109
+ mr as ThemeVariables,
110
+ Ro as UserStatistics,
111
+ Xo as Vote,
112
+ pr as theme,
113
+ ir as themeStr
112
114
  };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { Gamification } from '@streamlayer/feature-gamification';
3
3
  export declare const Leaderboard: React.FC<{
4
- store: ReturnType<Exclude<Gamification['leaderboardList'], undefined>['getStore']>;
4
+ leaderboardList: Gamification['leaderboardList'];
5
5
  }>;
@@ -1,40 +1,29 @@
1
- import { jsx as e, jsxs as l, Fragment as u } from "react/jsx-runtime";
2
- import { useStore as b } from "@nanostores/react";
1
+ import { jsxs as c, Fragment as n, jsx as m } from "react/jsx-runtime";
2
+ import { useStore as d } from "@nanostores/react";
3
3
  import { useState as f } from "react";
4
- import { LeaderboardItemDetail as I } from "../../../gamification/leaderboard-item-detail/index.js";
5
- import { LeaderboardList as v } from "../../../gamification/leaderboard-list/index.js";
4
+ import { LeaderboardItemDetail as l } from "../../../gamification/leaderboard-item-detail/index.js";
5
+ import { LeaderboardList as I } from "../../../gamification/leaderboard-list/index.js";
6
6
  import "../../../gamification/common-header/index.js";
7
7
  import "../../../../icon-exit-d3f9fc80.js";
8
8
  import "../../../gamification/common-header/styles.js";
9
9
  import "@linaria/react";
10
10
  import "../../../gamification/leaderboard-item-detail/styles.js";
11
+ import "react-virtualized-auto-sizer";
12
+ import "react-window";
13
+ import "react-window-infinite-loader";
11
14
  import "../../../gamification/leaderboard-item/index.js";
12
15
  import "../../../../utils/common.js";
13
16
  import "../../../gamification/leaderboard-item/styles.js";
14
- import "../../../gamification/leaderboard-list/styles.js";
15
- const z = ({ store: s }) => {
16
- const { data: i = [], loading: d } = b(s), [r, p] = f(void 0);
17
- if (d)
18
- return /* @__PURE__ */ e("div", { children: "wait leader board..." });
19
- const o = (t) => {
20
- var a;
21
- const n = (a = i.find((c) => {
22
- var m;
23
- return ((m = c.attributes) == null ? void 0 : m.userId) === t;
24
- })) == null ? void 0 : a.attributes;
25
- p(n);
17
+ const q = ({ leaderboardList: o }) => {
18
+ const { data: r } = d(o.$store), [t, i] = f(void 0), e = (p) => {
19
+ const a = r.find((s) => s.userId === p);
20
+ i(a);
26
21
  };
27
- return /* @__PURE__ */ l(u, { children: [
28
- r && /* @__PURE__ */ e(I, { comeBack: () => o(null), ...r }),
29
- !r && /* @__PURE__ */ e(
30
- v,
31
- {
32
- items: i.filter((t) => t.attributes).map((t) => t.attributes),
33
- openItemDetail: o
34
- }
35
- )
22
+ return /* @__PURE__ */ c(n, { children: [
23
+ t && /* @__PURE__ */ m(l, { comeBack: () => e(null), ...t }),
24
+ !t && /* @__PURE__ */ m(I, { fetchMore: o.fetchMore, items: r, openItemDetail: e })
36
25
  ] });
37
26
  };
38
27
  export {
39
- z as Leaderboard
28
+ q as Leaderboard
40
29
  };
@@ -1,10 +1,10 @@
1
- import { jsxs as e, Fragment as p, jsx as r } from "react/jsx-runtime";
2
- import { useState as s } from "react";
3
- import { SDKWhiteContainer as n, SDKContentContainer as a } from "../../styles.js";
4
- import { ActivePages as m, Tabs as u } from "../../../gamification/tabs/index.js";
5
- import { Leaderboard as S } from "./Leaderboard.js";
6
- import { QuestionsList as d } from "./QuestionsList.js";
7
- import { UserSummary as g } from "./UserSummary.js";
1
+ import { jsxs as m, Fragment as s, jsx as r } from "react/jsx-runtime";
2
+ import { useState as n } from "react";
3
+ import { SDKWhiteContainer as a, SDKContentContainer as e } from "../../styles.js";
4
+ import { ActivePages as i, Tabs as d } from "../../../gamification/tabs/index.js";
5
+ import { Leaderboard as u } from "./Leaderboard.js";
6
+ import { QuestionsList as l } from "./QuestionsList.js";
7
+ import { UserSummary as c } from "./UserSummary.js";
8
8
  import "@linaria/react";
9
9
  import "../../../gamification/tabs/styles.js";
10
10
  import "@nanostores/react";
@@ -14,10 +14,12 @@ import "../../../../icon-exit-d3f9fc80.js";
14
14
  import "../../../gamification/common-header/styles.js";
15
15
  import "../../../gamification/leaderboard-item-detail/styles.js";
16
16
  import "../../../gamification/leaderboard-list/index.js";
17
+ import "react-virtualized-auto-sizer";
18
+ import "react-window";
19
+ import "react-window-infinite-loader";
17
20
  import "../../../gamification/leaderboard-item/index.js";
18
21
  import "../../../../utils/common.js";
19
22
  import "../../../gamification/leaderboard-item/styles.js";
20
- import "../../../gamification/leaderboard-list/styles.js";
21
23
  import "../../../gamification/question/list/index.js";
22
24
  import "../../../gamification/question/index.js";
23
25
  import "@streamlayer/sdk-web-types";
@@ -33,17 +35,17 @@ import "../../../gamification/user-statistics/components/rank/styles.js";
33
35
  import "../../../gamification/user-statistics/components/statistic/index.js";
34
36
  import "../../../gamification/user-statistics/components/statistic/styles.js";
35
37
  import "../../../gamification/user-statistics/styles.js";
36
- const V = ({ gamification: t }) => {
37
- const [o, i] = s(m.HOME);
38
- return /* @__PURE__ */ e(p, { children: [
39
- /* @__PURE__ */ e(n, { children: [
40
- /* @__PURE__ */ r(u, { activePage: o, toggleActivePage: i }),
41
- o === m.HOME && /* @__PURE__ */ r(g, { store: t.userSummary.getStore() })
38
+ const Y = ({ gamification: t }) => {
39
+ const [o, p] = n(i.HOME);
40
+ return /* @__PURE__ */ m(s, { children: [
41
+ /* @__PURE__ */ m(a, { children: [
42
+ /* @__PURE__ */ r(d, { activePage: o, toggleActivePage: p }),
43
+ o === i.HOME && /* @__PURE__ */ r(c, { store: t.userSummary.getStore() })
42
44
  ] }),
43
- o === m.HOME && /* @__PURE__ */ r(a, { children: /* @__PURE__ */ r(d, { openQuestion: t.openQuestion, store: t.questions.getStore() }) }),
44
- o === m.LEADERBOARD && /* @__PURE__ */ r(S, { store: t.leaderboardList.getStore() })
45
+ o === i.HOME && /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(l, { openQuestion: t.openQuestion, store: t.questions.getStore() }) }),
46
+ o === i.LEADERBOARD && /* @__PURE__ */ r(e, { style: { flex: "1 1 auto" }, children: /* @__PURE__ */ r(u, { leaderboardList: t.leaderboardList }) })
45
47
  ] });
46
48
  };
47
49
  export {
48
- V as Tabs
50
+ Y as Tabs
49
51
  };
@@ -2,9 +2,9 @@ import { jsxs as m, Fragment as p, jsx as r } from "react/jsx-runtime";
2
2
  import { styled as e } from "@linaria/react";
3
3
  import { useStore as n } from "@nanostores/react";
4
4
  import { SDKScrollContainer as s } from "../../styles.js";
5
- import { ShowIn as a } from "../../../show-in/index.js";
6
- import { Question as d } from "./Question.js";
7
- import { Tabs as l } from "./Tabs.js";
5
+ import { ShowIn as l } from "../../../show-in/index.js";
6
+ import { Question as a } from "./Question.js";
7
+ import { Tabs as d } from "./Tabs.js";
8
8
  import "react";
9
9
  import "@streamlayer/sdk-web-types";
10
10
  import "../../../gamification/vote/index.js";
@@ -29,10 +29,12 @@ import "../../../../icon-exit-d3f9fc80.js";
29
29
  import "../../../gamification/common-header/styles.js";
30
30
  import "../../../gamification/leaderboard-item-detail/styles.js";
31
31
  import "../../../gamification/leaderboard-list/index.js";
32
+ import "react-virtualized-auto-sizer";
33
+ import "react-window";
34
+ import "react-window-infinite-loader";
32
35
  import "../../../gamification/leaderboard-item/index.js";
33
36
  import "../../../../utils/common.js";
34
37
  import "../../../gamification/leaderboard-item/styles.js";
35
- import "../../../gamification/leaderboard-list/styles.js";
36
38
  import "./QuestionsList.js";
37
39
  import "../../../gamification/question/list/index.js";
38
40
  import "../../../gamification/question/index.js";
@@ -47,28 +49,28 @@ import "../../../gamification/user-statistics/components/rank/styles.js";
47
49
  import "../../../gamification/user-statistics/components/statistic/index.js";
48
50
  import "../../../gamification/user-statistics/components/statistic/styles.js";
49
51
  import "../../../gamification/user-statistics/styles.js";
50
- const u = e(a)`
52
+ const u = e(l)`
51
53
  position: absolute;
52
54
  inset: 0;
53
55
  top: var(--header-height);
54
56
  background: var(--color-neutrals-white);
55
57
  z-index: 3;
56
- `, so = ({
58
+ `, ao = ({
57
59
  gamification: o
58
60
  }) => {
59
61
  const { loading: i, data: t } = n(o.openedQuestion);
60
62
  return /* @__PURE__ */ m(p, { children: [
61
63
  (i || t) && /* @__PURE__ */ r(u, { children: /* @__PURE__ */ r(
62
- d,
64
+ a,
63
65
  {
64
66
  closeQuestion: o.closeQuestion,
65
67
  vote: o.submitAnswer,
66
68
  openedQuestion: t
67
69
  }
68
70
  ) }),
69
- /* @__PURE__ */ r(s, { "data-nav": "true", children: /* @__PURE__ */ r(l, { gamification: o }) })
71
+ /* @__PURE__ */ r(s, { "data-nav": "true", style: { display: "flex", flexDirection: "column" }, children: /* @__PURE__ */ r(d, { gamification: o }) })
70
72
  ] });
71
73
  };
72
74
  export {
73
- so as GamificationOverlay
75
+ ao as GamificationOverlay
74
76
  };
@@ -33,10 +33,12 @@ import "../../../icon-exit-d3f9fc80.js";
33
33
  import "../../gamification/common-header/styles.js";
34
34
  import "../../gamification/leaderboard-item-detail/styles.js";
35
35
  import "../../gamification/leaderboard-list/index.js";
36
+ import "react-virtualized-auto-sizer";
37
+ import "react-window";
38
+ import "react-window-infinite-loader";
36
39
  import "../../gamification/leaderboard-item/index.js";
37
40
  import "../../../utils/common.js";
38
41
  import "../../gamification/leaderboard-item/styles.js";
39
- import "../../gamification/leaderboard-list/styles.js";
40
42
  import "./Gamification/QuestionsList.js";
41
43
  import "../../gamification/question/list/index.js";
42
44
  import "../../gamification/question/index.js";
@@ -59,7 +61,7 @@ import "../../gamification/insight-list/index.js";
59
61
  import "../../gamification/insight/index.js";
60
62
  import "../../gamification/insight/styles.js";
61
63
  import "../../gamification/insight-list/styles.js";
62
- const Fr = ({ sdk: i, feature: r }) => p(() => r ? r.featureConfig.get().type === o.GAMES ? /* @__PURE__ */ t(m, { sdk: i, feature: r, children: /* @__PURE__ */ t(e, { gamification: r, sdk: i }) }) : r.featureConfig.get().type === o.HIGHLIGHTS ? /* @__PURE__ */ t(m, { sdk: i, feature: r, children: /* @__PURE__ */ t(n, { highlights: r, sdk: i }) }) : null : null, [i, r]);
64
+ const Gr = ({ sdk: i, feature: r }) => p(() => r ? r.featureConfig.get().type === o.GAMES ? /* @__PURE__ */ t(m, { sdk: i, feature: r, children: /* @__PURE__ */ t(e, { gamification: r, sdk: i }) }) : r.featureConfig.get().type === o.HIGHLIGHTS ? /* @__PURE__ */ t(m, { sdk: i, feature: r, children: /* @__PURE__ */ t(n, { highlights: r, sdk: i }) }) : null : null, [i, r]);
63
65
  export {
64
- Fr as ActiveFeature
66
+ Gr as ActiveFeature
65
67
  };
@@ -43,10 +43,12 @@ import "../../icon-exit-d3f9fc80.js";
43
43
  import "../gamification/common-header/styles.js";
44
44
  import "../gamification/leaderboard-item-detail/styles.js";
45
45
  import "../gamification/leaderboard-list/index.js";
46
+ import "react-virtualized-auto-sizer";
47
+ import "react-window";
48
+ import "react-window-infinite-loader";
46
49
  import "../gamification/leaderboard-item/index.js";
47
50
  import "../../utils/common.js";
48
51
  import "../gamification/leaderboard-item/styles.js";
49
- import "../gamification/leaderboard-list/styles.js";
50
52
  import "./Features/Gamification/QuestionsList.js";
51
53
  import "../gamification/question/list/index.js";
52
54
  import "../gamification/question/index.js";
@@ -77,7 +79,7 @@ import "../navigation/button/styles.js";
77
79
  const B = ({ sdk: o }) => {
78
80
  const [, m] = k(o);
79
81
  return /* @__PURE__ */ t(S, { feature: m, sdk: o });
80
- }, Qr = ({ sdk: o, overlays: m, children: p, event: n }) => {
82
+ }, Wr = ({ sdk: o, overlays: m, children: p, event: n }) => {
81
83
  const { sdkEnabled: i, sdkReady: s, activeOverlay: r, activateAndLoadOverlay: d, enableSdk: l, disableSdk: c } = b(
82
84
  o,
83
85
  n
@@ -111,5 +113,5 @@ const B = ({ sdk: o }) => {
111
113
  ] }) });
112
114
  };
113
115
  export {
114
- Qr as MastersApp
116
+ Wr as MastersApp
115
117
  };
@@ -1,6 +1,6 @@
1
1
  import { jsx as t, jsxs as s, Fragment as z } from "react/jsx-runtime";
2
2
  import { FeatureStatus as J } from "@streamlayer/sdk-web-interfaces";
3
- import { useStore as n } from "@nanostores/react";
3
+ import { useStore as p } from "@nanostores/react";
4
4
  import { useState as K } from "react";
5
5
  import { ActivePages as a, Tabs as N } from "../gamification/tabs/index.js";
6
6
  import { UserSummary as V } from "./components/UserSummary.js";
@@ -13,7 +13,7 @@ import "../gamification/insight-list/styles.js";
13
13
  import "../gamification/common-header/styles.js";
14
14
  import "../gamification/detailed-insight/styles.js";
15
15
  import { Leaderboard as Z } from "./components/Leaderboard.js";
16
- import { DemoContainer as p, UserStatisticsContainer as _, QuestionsContainer as $ } from "./styles.js";
16
+ import { DemoContainer as m, UserStatisticsContainer as _, QuestionsContainer as $ } from "./styles.js";
17
17
  import "../gamification/tabs/styles.js";
18
18
  import "@linaria/react";
19
19
  import "../gamification/user-statistics/index.js";
@@ -52,23 +52,25 @@ import "../gamification/leaderboard-item-detail/index.js";
52
52
  import "../gamification/common-header/index.js";
53
53
  import "../gamification/leaderboard-item-detail/styles.js";
54
54
  import "../gamification/leaderboard-list/index.js";
55
+ import "react-virtualized-auto-sizer";
56
+ import "react-window";
57
+ import "react-window-infinite-loader";
55
58
  import "../gamification/leaderboard-item/index.js";
56
59
  import "../gamification/leaderboard-item/styles.js";
57
- import "../gamification/leaderboard-list/styles.js";
58
- const ot = ({
60
+ const pt = ({
59
61
  gamification: r,
60
62
  sdk: u
61
63
  }) => {
62
64
  var d, v, c, b, y, g, S, h, C, G, L, Q, A, E, f, w, x, P, F, O, B, D, R;
63
- const T = n(r.status), j = n(r.onboardingStatus), l = n(r.openedQuestion), { slStreamId: o } = n(u.sdkStore), e = n(r.featureSettings), [m, q] = K(a.HOME);
65
+ const T = p(r.status), j = p(r.onboardingStatus), l = p(r.openedQuestion), { slStreamId: o } = p(u.sdkStore), e = p(r.featureSettings), [n, q] = K(a.HOME);
64
66
  if (T !== J.Ready)
65
67
  return /* @__PURE__ */ t("div", { children: "wait..." });
66
68
  if (o != null && o.loading)
67
- return /* @__PURE__ */ t(p, { children: /* @__PURE__ */ t("div", { children: "Event is loading" }) });
69
+ return /* @__PURE__ */ t(m, { children: /* @__PURE__ */ t("div", { children: "Event is loading" }) });
68
70
  if (!(o != null && o.data))
69
- return /* @__PURE__ */ t(p, { children: /* @__PURE__ */ t("div", { children: "Event is forbidden" }) });
71
+ return /* @__PURE__ */ t(m, { children: /* @__PURE__ */ t("div", { children: "Event is forbidden" }) });
70
72
  if (!j)
71
- return /* @__PURE__ */ t(p, { children: /* @__PURE__ */ t(
73
+ return /* @__PURE__ */ t(m, { children: /* @__PURE__ */ t(
72
74
  Y,
73
75
  {
74
76
  closeFeature: u.closeFeature,
@@ -92,20 +94,20 @@ const ot = ({
92
94
  }, U = (i, k) => {
93
95
  r.submitAnswer(i, k);
94
96
  };
95
- return /* @__PURE__ */ s(p, { children: [
96
- /* @__PURE__ */ t(N, { activePage: m, toggleActivePage: (i) => {
97
+ return /* @__PURE__ */ s(m, { children: [
98
+ /* @__PURE__ */ t(N, { activePage: n, toggleActivePage: (i) => {
97
99
  q(i);
98
100
  } }),
99
- m === a.HOME && /* @__PURE__ */ s(z, { children: [
101
+ n === a.HOME && /* @__PURE__ */ s(z, { children: [
100
102
  /* @__PURE__ */ t(_, { children: r.userSummary && /* @__PURE__ */ t(V, { store: r.userSummary.getStore() }) }),
101
103
  /* @__PURE__ */ s($, { children: [
102
104
  r.questions && /* @__PURE__ */ t(W, { openQuestion: H, store: r.questions.getStore() }),
103
105
  l && /* @__PURE__ */ t(X, { closeQuestion: M, vote: U, openedQuestion: l })
104
106
  ] })
105
107
  ] }),
106
- m === a.LEADERBOARD && r.leaderboardList && /* @__PURE__ */ t(Z, { store: r.leaderboardList.getStore() })
108
+ n === a.LEADERBOARD && r.leaderboardList && /* @__PURE__ */ t(Z, { store: r.leaderboardList.getStore() })
107
109
  ] });
108
110
  };
109
111
  export {
110
- ot as GamificationComponent
112
+ pt as GamificationComponent
111
113
  };
@@ -17,8 +17,10 @@ import { Insights as c } from "./components/Insights.js";
17
17
  import { Insight as f } from "./components/Insight.js";
18
18
  import "../gamification/common-header/styles.js";
19
19
  import "../gamification/leaderboard-item-detail/styles.js";
20
+ import "react-virtualized-auto-sizer";
21
+ import "react-window";
22
+ import "react-window-infinite-loader";
20
23
  import "../gamification/leaderboard-item/styles.js";
21
- import "../gamification/leaderboard-list/styles.js";
22
24
  import "@linaria/react";
23
25
  import "@streamlayer/sdk-web-types";
24
26
  import "../button/index.js";
@@ -43,7 +45,7 @@ import "../gamification/detailed-insight/index.js";
43
45
  import "../gamification/common-header/index.js";
44
46
  import "../../icon-exit-d3f9fc80.js";
45
47
  import "../gamification/detailed-insight/styles.js";
46
- const rt = ({ highlights: i, sdk: e }) => {
48
+ const pt = ({ highlights: i, sdk: e }) => {
47
49
  const n = m(i.status), r = m(i.openedInsight), { slStreamId: o } = m(e.sdkStore);
48
50
  return n !== d.Ready ? /* @__PURE__ */ t("div", { children: "wait..." }) : o != null && o.loading ? /* @__PURE__ */ t(p, { children: /* @__PURE__ */ t("div", { children: "Event is loading" }) }) : o != null && o.data ? i.insights === void 0 ? /* @__PURE__ */ t("div", { children: "wait insights..." }) : /* @__PURE__ */ s(p, { children: [
49
51
  !r && /* @__PURE__ */ t(c, { highlights: i, store: i.insights.getStore() }),
@@ -58,5 +60,5 @@ const rt = ({ highlights: i, sdk: e }) => {
58
60
  ] }) : /* @__PURE__ */ t(p, { children: /* @__PURE__ */ t("div", { children: "Event is forbidden" }) });
59
61
  };
60
62
  export {
61
- rt as HighlightsComponent
63
+ pt as HighlightsComponent
62
64
  };
@@ -8,21 +8,23 @@ import "../../../icon-exit-d3f9fc80.js";
8
8
  import "../../gamification/common-header/styles.js";
9
9
  import "@linaria/react";
10
10
  import "../../gamification/leaderboard-item-detail/styles.js";
11
+ import "react-virtualized-auto-sizer";
12
+ import "react-window";
13
+ import "react-window-infinite-loader";
11
14
  import "../../gamification/leaderboard-item/index.js";
12
15
  import "../../../utils/common.js";
13
16
  import "../../gamification/leaderboard-item/styles.js";
14
- import "../../gamification/leaderboard-list/styles.js";
15
- const y = ({ store: s }) => {
16
- const { data: r } = u(s), [e, d] = b(void 0);
17
+ const C = ({ store: p }) => {
18
+ const { data: r } = u(p), [e, s] = b(void 0);
17
19
  if (!r)
18
20
  return /* @__PURE__ */ i("div", { children: "wait leader board..." });
19
21
  const o = (t) => {
20
22
  var m;
21
- const p = (m = r.find((n) => {
23
+ const d = (m = r.find((n) => {
22
24
  var a;
23
25
  return ((a = n.attributes) == null ? void 0 : a.userId) === t;
24
26
  })) == null ? void 0 : m.attributes;
25
- d(p);
27
+ s(d);
26
28
  };
27
29
  return /* @__PURE__ */ c(l, { children: [
28
30
  e && /* @__PURE__ */ i(f, { comeBack: () => o(null), ...e }),
@@ -36,5 +38,5 @@ const y = ({ store: s }) => {
36
38
  ] });
37
39
  };
38
40
  export {
39
- y as Leaderboard
41
+ C as Leaderboard
40
42
  };
@@ -1,10 +1,10 @@
1
- import { UserSummary as $ } from "./UserSummary.js";
2
- import { QuestionsList as or } from "./QuestionsList.js";
3
- import { Question as mr } from "./Question.js";
4
- import { Onboarding as ir } from "../../gamification/onboarding/index.js";
5
- import { Insights as sr } from "./Insights.js";
6
- import { Insight as xr } from "./Insight.js";
7
- import { Leaderboard as ar } from "./Leaderboard.js";
1
+ import { UserSummary as or } from "./UserSummary.js";
2
+ import { QuestionsList as mr } from "./QuestionsList.js";
3
+ import { Question as ir } from "./Question.js";
4
+ import { Onboarding as sr } from "../../gamification/onboarding/index.js";
5
+ import { Insights as xr } from "./Insights.js";
6
+ import { Insight as ar } from "./Insight.js";
7
+ import { Leaderboard as gr } from "./Leaderboard.js";
8
8
  import "react/jsx-runtime";
9
9
  import "@nanostores/react";
10
10
  import "../../gamification/user-statistics/index.js";
@@ -53,15 +53,17 @@ import "../../gamification/detailed-insight/styles.js";
53
53
  import "../../gamification/leaderboard-item-detail/index.js";
54
54
  import "../../gamification/leaderboard-item-detail/styles.js";
55
55
  import "../../gamification/leaderboard-list/index.js";
56
+ import "react-virtualized-auto-sizer";
57
+ import "react-window";
58
+ import "react-window-infinite-loader";
56
59
  import "../../gamification/leaderboard-item/index.js";
57
60
  import "../../gamification/leaderboard-item/styles.js";
58
- import "../../gamification/leaderboard-list/styles.js";
59
61
  export {
60
- xr as Insight,
61
- sr as Insights,
62
- ar as Leaderboard,
63
- ir as Onboarding,
64
- mr as Question,
65
- or as QuestionsList,
66
- $ as UserSummary
62
+ ar as Insight,
63
+ xr as Insights,
64
+ gr as Leaderboard,
65
+ sr as Onboarding,
66
+ ir as Question,
67
+ mr as QuestionsList,
68
+ or as UserSummary
67
69
  };
@@ -70,9 +70,11 @@ import "../gamification/leaderboard-item-detail/index.js";
70
70
  import "../gamification/common-header/index.js";
71
71
  import "../gamification/leaderboard-item-detail/styles.js";
72
72
  import "../gamification/leaderboard-list/index.js";
73
+ import "react-virtualized-auto-sizer";
74
+ import "react-window";
75
+ import "react-window-infinite-loader";
73
76
  import "../gamification/leaderboard-item/index.js";
74
77
  import "../gamification/leaderboard-item/styles.js";
75
- import "../gamification/leaderboard-list/styles.js";
76
78
  import "./components/Insights.js";
77
79
  import "../gamification/insight-list/index.js";
78
80
  import "../gamification/insight/index.js";
@@ -165,7 +167,7 @@ const R = ({ activeFeature: o, sdk: r }) => {
165
167
  ] }),
166
168
  h
167
169
  ] });
168
- }, lr = ({ sdk: o }) => {
170
+ }, dr = ({ sdk: o }) => {
169
171
  const r = f(o.organizationStore()), t = f(o.getUserStore()), a = f(o.getActiveFeature());
170
172
  return r.loading ? /* @__PURE__ */ e("div", { children: "authentication..." }) : r.data ? t.loading ? /* @__PURE__ */ e("div", { children: "authentication..." }) : t.data ? /* @__PURE__ */ l(T, { children: [
171
173
  /* @__PURE__ */ e(x, { notificationsStore: o.getNotificationsStore() }),
@@ -173,5 +175,5 @@ const R = ({ activeFeature: o, sdk: r }) => {
173
175
  ] }) : /* @__PURE__ */ e(H, { sdk: o }) : /* @__PURE__ */ e("div", { children: "wrong sdk key..." });
174
176
  };
175
177
  export {
176
- lr as Demo
178
+ dr as Demo
177
179
  };
@@ -3,5 +3,6 @@ import type { LeaderboardItem as ILeaderboardItem } from '@streamlayer/sdk-web-t
3
3
  export type LeaderboardItemProps = Partial<ILeaderboardItem> & {
4
4
  userId: string;
5
5
  openItemDetail: () => void;
6
+ style?: React.CSSProperties;
6
7
  };
7
8
  export declare const LeaderboardItem: React.FC<LeaderboardItemProps>;
@@ -1,18 +1,25 @@
1
1
  import { jsxs as e, jsx as r } from "react/jsx-runtime";
2
- import { abbreviate as d } from "../../../utils/common.js";
3
- import { Container as l, RankPosition as c, Avatar as m, AvatarPlaceholder as h, Content as s, NameWrap as p, Name as b, Rank as f, Units as k } from "./styles.js";
2
+ import { abbreviate as l } from "../../../utils/common.js";
3
+ import { Container as c, RankPosition as m, Avatar as h, AvatarPlaceholder as s, Content as p, NameWrap as b, Name as f, Rank as k, Units as v } from "./styles.js";
4
4
  import "@linaria/react";
5
- const j = ({ rank: t, avatar: i, name: n, points: a, openItemDetail: o }) => /* @__PURE__ */ e(l, { onClick: o, children: [
6
- /* @__PURE__ */ r(c, { children: t || 0 }),
7
- i ? /* @__PURE__ */ r(m, { alt: "leaderboard-item-avatar", src: i }) : /* @__PURE__ */ r(h, { children: d(n || "") }),
8
- /* @__PURE__ */ e(s, { children: [
9
- /* @__PURE__ */ r(p, { children: /* @__PURE__ */ r(b, { children: n || "" }) }),
10
- /* @__PURE__ */ e(f, { children: [
11
- /* @__PURE__ */ r(k, { children: "PTS" }),
5
+ const A = ({
6
+ rank: t,
7
+ avatar: i,
8
+ name: n,
9
+ points: a,
10
+ openItemDetail: o,
11
+ style: d
12
+ }) => /* @__PURE__ */ e(c, { onClick: o, style: d, children: [
13
+ /* @__PURE__ */ r(m, { children: t || 0 }),
14
+ i ? /* @__PURE__ */ r(h, { alt: "leaderboard-item-avatar", src: i }) : /* @__PURE__ */ r(s, { children: l(n || "") }),
15
+ /* @__PURE__ */ e(p, { children: [
16
+ /* @__PURE__ */ r(b, { children: /* @__PURE__ */ r(f, { children: n || "" }) }),
17
+ /* @__PURE__ */ e(k, { children: [
18
+ /* @__PURE__ */ r(v, { children: "PTS" }),
12
19
  a || 0
13
20
  ] })
14
21
  ] })
15
22
  ] });
16
23
  export {
17
- j as LeaderboardItem
24
+ A as LeaderboardItem
18
25
  };
@@ -8,13 +8,13 @@ const t = e.div`
8
8
  width: 100%;
9
9
  min-height: 50px;
10
10
  max-height: 50px;
11
- background-color: var(--color-bg-transparent-item-vote);
12
- color: var(--color-white);
11
+ background-color: #fff;
12
+ color: #000;
13
13
  font-size: 14px;
14
14
  font-weight: 600;
15
15
  overflow: hidden;
16
16
  cursor: pointer;
17
- `, r = e.div`
17
+ `, n = e.div`
18
18
  width: 28px;
19
19
  max-width: 28px;
20
20
  display: flex;
@@ -22,7 +22,7 @@ const t = e.div`
22
22
  justify-content: center;
23
23
  margin-right: 4px;
24
24
  overflow: hidden;
25
- `, n = e.img`
25
+ `, r = e.img`
26
26
  width: 32px;
27
27
  height: 32px;
28
28
  border-radius: 50%;
@@ -36,7 +36,6 @@ const t = e.div`
36
36
  display: flex;
37
37
  align-items: center;
38
38
  justify-content: center;
39
- color: var(--color-white);
40
39
  font-size: 12px;
41
40
  flex-shrink: 0;
42
41
  `, a = e.div`
@@ -62,19 +61,18 @@ const t = e.div`
62
61
  display: flex;
63
62
  align-items: center;
64
63
  max-width: 75px;
65
- `, l = e.span`
64
+ `, x = e.span`
66
65
  font-size: 10px;
67
- color: var(--color-leaderboard-unit);
68
66
  margin-right: 4px;
69
67
  `;
70
68
  export {
71
- n as Avatar,
69
+ r as Avatar,
72
70
  o as AvatarPlaceholder,
73
71
  t as Container,
74
72
  a as Content,
75
73
  d as Name,
76
74
  p as NameWrap,
77
75
  s as Rank,
78
- r as RankPosition,
79
- l as Units
76
+ n as RankPosition,
77
+ x as Units
80
78
  };
@@ -3,6 +3,7 @@ import { LeaderboardItemProps } from '../../gamification/leaderboard-item';
3
3
  type LeaderboardListProps = {
4
4
  items: Omit<LeaderboardItemProps, 'openItemDetail'>[];
5
5
  openItemDetail: (id: string) => void;
6
+ fetchMore: () => void;
6
7
  };
7
8
  export declare const LeaderboardList: React.FC<LeaderboardListProps>;
8
9
  export {};
@@ -1,10 +1,39 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { LeaderboardItem as m } from "../leaderboard-item/index.js";
3
- import { Container as p } from "./styles.js";
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import l from "react-virtualized-auto-sizer";
3
+ import { FixedSizeList as u } from "react-window";
4
+ import I from "react-window-infinite-loader";
5
+ import { LeaderboardItem as f } from "../leaderboard-item/index.js";
4
6
  import "../../../utils/common.js";
5
7
  import "../leaderboard-item/styles.js";
6
8
  import "@linaria/react";
7
- const f = ({ items: e, openItemDetail: t }) => /* @__PURE__ */ o(p, { children: e.map((r) => /* @__PURE__ */ o(m, { ...r, openItemDetail: () => t(r.userId) }, r.userId)) });
9
+ const C = ({ items: r, openItemDetail: i, fetchMore: m }) => /* @__PURE__ */ e(l, { children: ({ width: d, height: n }) => /* @__PURE__ */ e(
10
+ I,
11
+ {
12
+ isItemLoaded: (o) => o < r.length,
13
+ itemCount: r.length + 1,
14
+ loadMoreItems: m,
15
+ children: ({ onItemsRendered: o, ref: p }) => /* @__PURE__ */ e(
16
+ u,
17
+ {
18
+ itemSize: 58,
19
+ onItemsRendered: o,
20
+ ref: p,
21
+ itemCount: r.length,
22
+ width: d,
23
+ height: n,
24
+ children: ({ index: t, style: a }) => /* @__PURE__ */ e(
25
+ f,
26
+ {
27
+ style: a,
28
+ ...r[t],
29
+ openItemDetail: () => i(r[t].userId)
30
+ },
31
+ r[t].userId
32
+ )
33
+ }
34
+ )
35
+ }
36
+ ) });
8
37
  export {
9
- f as LeaderboardList
38
+ C as LeaderboardList
10
39
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamlayer/react-ui",
3
- "version": "0.46.0",
3
+ "version": "0.47.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./lib/index.d.ts",
@@ -27,16 +27,19 @@
27
27
  ],
28
28
  "peerDependencies": {
29
29
  "@streamlayer/sl-eslib": "^5.52.0",
30
- "@streamlayer/feature-gamification": "^0.18.3",
31
- "@streamlayer/sdk-web": "^0.28.5",
32
- "@streamlayer/sdk-web-anonymous-auth": "^0.11.0",
30
+ "react-virtualized-auto-sizer": "^1.0.20",
31
+ "react-window": "^1.8.9",
32
+ "react-window-infinite-loader": "^1.0.9",
33
+ "@streamlayer/feature-gamification": "^0.19.0",
34
+ "@streamlayer/sdk-web-anonymous-auth": "^0.11.2",
35
+ "@streamlayer/sdk-web": "^0.28.7",
33
36
  "@streamlayer/sdk-web-api": "^0.1.0",
34
- "@streamlayer/sdk-web-core": "^0.16.0",
35
- "@streamlayer/sdk-web-features": "^0.10.8",
36
- "@streamlayer/sdk-web-interfaces": "^0.18.5",
37
- "@streamlayer/sdk-web-notifications": "^0.10.4",
38
- "@streamlayer/sdk-web-storage": "^0.3.7",
39
- "@streamlayer/sdk-web-types": "^0.16.5"
37
+ "@streamlayer/sdk-web-core": "^0.16.2",
38
+ "@streamlayer/sdk-web-features": "^0.10.10",
39
+ "@streamlayer/sdk-web-interfaces": "^0.18.7",
40
+ "@streamlayer/sdk-web-notifications": "^0.10.6",
41
+ "@streamlayer/sdk-web-storage": "^0.3.9",
42
+ "@streamlayer/sdk-web-types": "^0.16.7"
40
43
  },
41
44
  "nx": {
42
45
  "implicitDependencies": [
@@ -60,6 +63,8 @@
60
63
  "@storybook/jest": "~0.2.3",
61
64
  "@storybook/react": "^7.5.3",
62
65
  "@storybook/testing-library": "~0.2.2",
66
+ "@types/react-window": "^1.8.8",
67
+ "@types/react-window-infinite-loader": "^1.0.9",
63
68
  "esbuild-plugin-babel": "^0.2.3",
64
69
  "glob": "^10.3.10",
65
70
  "react": "18.2.0",
@@ -73,6 +78,6 @@
73
78
  "vite-plugin-svgr": "^4.1.0",
74
79
  "vite-svg-loader": "^4.0.0",
75
80
  "vite-tsconfig-paths": "^4.2.1",
76
- "@streamlayer/react": "^0.24.6"
81
+ "@streamlayer/react": "^0.24.8"
77
82
  }
78
83
  }
@@ -1,2 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const Container: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Record<never, unknown>>;
@@ -1,18 +0,0 @@
1
- import { styled as o } from "@linaria/react";
2
- const t = o.div`
3
- box-sizing: border-box;
4
- display: flex;
5
- flex-direction: column;
6
- height: 100%;
7
- max-height: 100%;
8
- overflow-y: auto;
9
- width: 100%;
10
- padding: 12px 0px;
11
-
12
- & > div {
13
- margin-bottom: 8px;
14
- }
15
- `;
16
- export {
17
- t as Container
18
- };