@streamlayer/react-ui 0.96.2 → 0.97.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 (83) hide show
  1. package/lib/assets/style.css +1 -1
  2. package/lib/hooks/analytics.js +50 -0
  3. package/lib/index-z0QjLiEL.js +75 -0
  4. package/lib/ui/app/Features/FeatureProvider.d.ts +1 -0
  5. package/lib/ui/app/Features/FeatureProvider.js +34 -6
  6. package/lib/ui/app/Features/Gamification/Friends.d.ts +0 -2
  7. package/lib/ui/app/Features/Gamification/Friends.js +20 -23
  8. package/lib/ui/app/Features/Gamification/Leaderboard.js +31 -25
  9. package/lib/ui/app/Features/Gamification/Question.js +4 -2
  10. package/lib/ui/app/Features/Gamification/QuestionsList.js +11 -8
  11. package/lib/ui/app/Features/Gamification/Tabs.js +30 -25
  12. package/lib/ui/app/Features/Gamification/UserSummary.js +14 -12
  13. package/lib/ui/app/Features/Gamification/gamification-feature.js +6 -2
  14. package/lib/ui/app/Features/Gamification/index.d.ts +10 -0
  15. package/lib/ui/app/Features/Gamification/index.js +73 -68
  16. package/lib/ui/app/Features/index.d.ts +8 -0
  17. package/lib/ui/app/Features/index.js +112 -16
  18. package/lib/ui/app/Navigation/MastersNavigation/index.js +5 -4
  19. package/lib/ui/app/Navigation/index.js +7 -6
  20. package/lib/ui/app/Notifications/Onboarding/index.d.ts +2 -0
  21. package/lib/ui/app/Notifications/Onboarding/index.js +76 -78
  22. package/lib/ui/app/Notifications/index.js +98 -91
  23. package/lib/ui/app/Points/index.js +20 -17
  24. package/lib/ui/app/masters.js +167 -86
  25. package/lib/ui/app/useMastersApp.js +12 -11
  26. package/lib/ui/app/useSdkFeature.js +13 -16
  27. package/lib/ui/app/useSdkResponsive.js +1 -1
  28. package/lib/ui/app/useSdkScroll.d.ts +1 -1
  29. package/lib/ui/app/useSdkScroll.js +28 -25
  30. package/lib/ui/gamification/invite-link/index.js +26 -12
  31. package/lib/ui/gamification/onboarding/index.d.ts +0 -2
  32. package/lib/ui/gamification/onboarding/index.js +46 -46
  33. package/lib/ui/gamification/onboarding/slides/onboarding-instructions/index.d.ts +2 -2
  34. package/lib/ui/gamification/onboarding/slides/onboarding-instructions/index.js +21 -20
  35. package/lib/ui/gamification/onboarding/slides/onboarding-instructions/styles.d.ts +1 -0
  36. package/lib/ui/gamification/onboarding/slides/onboarding-instructions/styles.js +20 -15
  37. package/lib/ui/gamification/onboarding/slides/onboarding-invite-card/index.d.ts +0 -3
  38. package/lib/ui/gamification/onboarding/slides/onboarding-invite-card/index.js +34 -29
  39. package/lib/ui/gamification/onboarding/slides/onboarding-invite-card/styles.d.ts +0 -3
  40. package/lib/ui/gamification/onboarding/slides/onboarding-invite-card/styles.js +17 -32
  41. package/lib/ui/gamification/points/index.d.ts +1 -0
  42. package/lib/ui/gamification/points/index.js +9 -9
  43. package/lib/ui/gamification/question/index.d.ts +1 -0
  44. package/lib/ui/gamification/question/index.js +31 -24
  45. package/lib/ui/gamification/question/insight/index.js +11 -15
  46. package/lib/ui/gamification/question/list/index.d.ts +3 -1
  47. package/lib/ui/gamification/question/list/index.js +50 -34
  48. package/lib/ui/gamification/question/notification/index.js +23 -25
  49. package/lib/ui/gamification/question/notification/insight/index.js +10 -9
  50. package/lib/ui/gamification/question/notification/tweet/index.js +3 -2
  51. package/lib/ui/gamification/question/styles.d.ts +2 -0
  52. package/lib/ui/gamification/question/styles.js +39 -28
  53. package/lib/ui/gamification/question/twitter/index.js +14 -18
  54. package/lib/ui/gamification/user-statistics/index.d.ts +3 -2
  55. package/lib/ui/gamification/user-statistics/index.js +48 -45
  56. package/lib/ui/gamification/vote/feedback/index.d.ts +3 -2
  57. package/lib/ui/gamification/vote/feedback/index.js +74 -58
  58. package/lib/ui/gamification/vote/feedback/styles.d.ts +2 -0
  59. package/lib/ui/gamification/vote/feedback/styles.js +33 -21
  60. package/lib/ui/gamification/vote/index.js +94 -83
  61. package/lib/ui/gamification/vote/insight-details/index.js +7 -6
  62. package/lib/ui/gamification/vote/twitter-details/index.js +3 -2
  63. package/lib/ui/gamification/vote/vote-option/index.d.ts +2 -1
  64. package/lib/ui/gamification/vote/vote-option/index.js +47 -39
  65. package/lib/ui/icons/index.d.ts +1 -2
  66. package/lib/ui/icons/index.js +122 -49
  67. package/lib/ui/modal/index.js +27 -21
  68. package/lib/ui/navigation/button/Channels.js +6 -5
  69. package/lib/ui/navigation/button/FeaturedGroups.js +4 -3
  70. package/lib/ui/navigation/button/LeaderBoard.js +6 -5
  71. package/lib/ui/navigation/button/index.js +20 -7
  72. package/lib/ui/navigation/button/styles.d.ts +3 -0
  73. package/lib/ui/navigation/button/styles.js +9 -6
  74. package/lib/ui/questions/insight/index.js +16 -16
  75. package/lib/ui/questions/twitter/index.js +3 -2
  76. package/lib/ui/show-in/index.d.ts +2 -0
  77. package/lib/ui/show-in/index.js +24 -14
  78. package/lib/ui/timer/index.js +32 -28
  79. package/lib/ui/video-player/index.js +41 -39
  80. package/lib/ui/video-player/styles.d.ts +1 -0
  81. package/lib/ui/video-player/styles.js +10 -9
  82. package/package.json +22 -21
  83. package/lib/index-keh7OLCY.js +0 -67
@@ -1,35 +1,32 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
- import { OnboardingInviteCard as r } from "../../../gamification/onboarding/slides/onboarding-invite-card/index.js";
3
- import "../../useClipboardCopy.js";
2
+ import { styled as r } from "@linaria/react";
3
+ import { OnboardingInviteCard as o } from "../../../gamification/onboarding/slides/onboarding-invite-card/index.js";
4
+ import "../../../../hooks/analytics.js";
5
+ import "lodash.throttle";
4
6
  import "react";
7
+ import "@streamlayer/sdk-web-interfaces";
8
+ import "../../../theme/constants.js";
9
+ import "@streamlayer/sdk-web-types";
10
+ import "../../useClipboardCopy.js";
5
11
  import "../../../../index-jRXrW6ie.js";
6
12
  import "../../../../index-uEuzH3jr.js";
7
13
  import "../../../gamification/copyNotification/index.js";
8
14
  import "../../../icons/index.js";
9
- import "@linaria/react";
10
15
  import "../../../gamification/copyNotification/styles.js";
11
16
  import "../../../gamification/onboarding/slides/onboarding-invite-card/styles.js";
12
- const k = ({ renderClipBoardNode: t, deepLink: o }) => /* @__PURE__ */ i(
13
- r,
14
- {
15
- renderToNode: t,
16
- inviteLink: o,
17
- socialLinks: [
18
- {
19
- icon: "icon-facebook",
20
- link: "https://www.facebook.com/TheMasters",
21
- label: "Facebook"
22
- },
23
- {
24
- icon: "icon-twitter",
25
- link: "https://twitter.com/@TheMasters",
26
- label: "X"
27
- }
28
- ],
17
+ const e = /* @__PURE__ */ r("div")({
18
+ name: "InviteFriendsContainer",
19
+ class: "i1xmyxez",
20
+ propsAsIs: !1
21
+ }), b = ({
22
+ deepLink: t
23
+ }) => /* @__PURE__ */ i(e, {
24
+ children: /* @__PURE__ */ i(o, {
25
+ inviteLink: t,
29
26
  inviteCardTitle: "It’s More Fun With Friends",
30
27
  inviteCardSubtext: "Invite and compete against your friends for the top spot on the leaderboard."
31
- }
32
- );
28
+ })
29
+ });
33
30
  export {
34
- k as Friends
31
+ b as Friends
35
32
  };
@@ -1,66 +1,72 @@
1
- import { jsx as t, jsxs as L, Fragment as f } from "react/jsx-runtime";
2
- import { styled as h } from "@linaria/react";
1
+ import { jsx as t, jsxs as L, Fragment as h } from "react/jsx-runtime";
2
+ import { styled as k } from "@linaria/react";
3
3
  import { useStore as p } from "@nanostores/react";
4
+ import { useRef as u } from "react";
4
5
  import { useClipboardCopy as I } from "../../useClipboardCopy.js";
5
- import { InviteLink as k } from "../../../gamification/invite-link/index.js";
6
+ import { InviteLink as y } from "../../../gamification/invite-link/index.js";
6
7
  import "react-virtualized-auto-sizer";
7
8
  import "react-window";
8
9
  import "react-window-infinite-loader";
9
- import "react";
10
10
  import "../../../icons/index.js";
11
11
  import "../../../gamification/leaderboard/list-item/styles.js";
12
12
  import "../../../../styles_z07sl8-w40geAFS.js";
13
- import { LeaderboardStaticList as u } from "../../../gamification/leaderboard/static.js";
14
- import { Friends as y } from "./Friends.js";
13
+ import { LeaderboardStaticList as C } from "../../../gamification/leaderboard/static.js";
14
+ import { Friends as b } from "./Friends.js";
15
15
  import "../../../../index-jRXrW6ie.js";
16
16
  import "../../../../index-uEuzH3jr.js";
17
17
  import "../../../gamification/copyNotification/index.js";
18
18
  import "../../../gamification/copyNotification/styles.js";
19
+ import "../../../../hooks/analytics.js";
20
+ import "lodash.throttle";
21
+ import "@streamlayer/sdk-web-interfaces";
22
+ import "../../../theme/constants.js";
23
+ import "@streamlayer/sdk-web-types";
19
24
  import "../../../gamification/invite-link/styles.js";
20
25
  import "react-infinite-scroller";
21
26
  import "../../../gamification/leaderboard/list-item/index.js";
22
27
  import "../../../../utils/common.js";
23
28
  import "../../../gamification/onboarding/slides/onboarding-invite-card/index.js";
24
29
  import "../../../gamification/onboarding/slides/onboarding-invite-card/styles.js";
25
- const b = /* @__PURE__ */ h("div")({
30
+ const v = /* @__PURE__ */ k("div")({
26
31
  name: "InviteLinkContainer",
27
32
  class: "i1chxfpe",
28
33
  propsAsIs: !1
29
- }), R = ({
34
+ }), Z = ({
30
35
  gamification: r,
31
36
  scrollNode: m,
32
37
  scrollStore: n,
33
- renderClipBoardNode: o
38
+ renderClipBoardNode: s
34
39
  }) => {
35
- const {
40
+ const e = u(null), {
36
41
  data: i,
37
- hasMore: s,
38
- loading: d,
42
+ hasMore: d,
43
+ loading: l,
39
44
  key: a
40
45
  } = p(r.leaderboardList.$store), {
41
- data: e
42
- } = p(r.deepLink.$store), [c, l] = I(o);
43
- return !i.length && !d ? /* @__PURE__ */ t(y, {
44
- renderClipBoardNode: o,
45
- deepLink: e
46
- }) : /* @__PURE__ */ L(f, {
47
- children: [/* @__PURE__ */ t(u, {
46
+ data: o
47
+ } = p(r.deepLink.$store), [c, f] = I(e);
48
+ return !i.length && !l ? /* @__PURE__ */ t(b, {
49
+ renderClipBoardNode: s,
50
+ deepLink: o
51
+ }) : /* @__PURE__ */ L(h, {
52
+ children: [/* @__PURE__ */ t(C, {
48
53
  items: i,
49
54
  scrollNode: m,
50
55
  scrollStore: n,
51
56
  fetchMore: r.leaderboardList.fetchMore,
52
- hasMore: s,
57
+ hasMore: d,
53
58
  openItemDetail: r.openUser,
54
59
  currentUserId: r.currentUserId.get()
55
- }, a), e && /* @__PURE__ */ t(b, {
56
- children: /* @__PURE__ */ t(k, {
57
- onClick: () => c(e),
60
+ }, a), o && /* @__PURE__ */ t(v, {
61
+ ref: e,
62
+ children: /* @__PURE__ */ t(y, {
63
+ onClick: () => c(o),
58
64
  title: "Invite Friends",
59
65
  description: "Challenge them now!"
60
66
  })
61
- }), l]
67
+ }), f]
62
68
  });
63
69
  };
64
70
  export {
65
- R as Leaderboard
71
+ Z as Leaderboard
66
72
  };
@@ -16,6 +16,8 @@ import "../../../gamification/vote/expired-alert/index.js";
16
16
  import "../../../gamification/vote/expired-alert/styles.js";
17
17
  import "../../../gamification/vote/feedback/index.js";
18
18
  import "../../../gamification/vote/feedback/styles.js";
19
+ import "../../../show-in/index.js";
20
+ import "@linaria/core";
19
21
  import "../../../gamification/vote/styles.js";
20
22
  import "../../styles.js";
21
23
  import "../../../gamification/vote/vote-option/index.js";
@@ -71,7 +73,7 @@ const d = /* @__PURE__ */ n("div")({
71
73
  openedQuestion: s,
72
74
  isLoading: !!o
73
75
  }) : null;
74
- }, st = ({
76
+ }, pt = ({
75
77
  gamification: t
76
78
  }) => {
77
79
  var s;
@@ -95,5 +97,5 @@ const d = /* @__PURE__ */ n("div")({
95
97
  });
96
98
  };
97
99
  export {
98
- st as Question
100
+ pt as Question
99
101
  };
@@ -1,17 +1,20 @@
1
- import { jsx as r } from "react/jsx-runtime";
1
+ import { jsx as m } from "react/jsx-runtime";
2
2
  import { useStore as p } from "@nanostores/react";
3
- import { useMastersContext as s } from "../../useMastersContext.js";
4
- import { QuestionList as e } from "../../../gamification/question/list/index.js";
3
+ import { useMastersContext as e } from "../../useMastersContext.js";
4
+ import { QuestionList as s } from "../../../gamification/question/list/index.js";
5
5
  import "react";
6
6
  import "../../../gamification/question/index.js";
7
7
  import "@streamlayer/sdk-web-types";
8
8
  import "../../../gamification/constants.js";
9
- import "../../../gamification/question/styles.js";
9
+ import "../../../skeleton/index.js";
10
+ import "../../../skeleton/styles.js";
10
11
  import "@linaria/react";
12
+ import "../../../gamification/question/styles.js";
11
13
  import "../../../icons/index.js";
12
14
  import "../../../gamification/question/insight/index.js";
13
15
  import "../../../questions/insight/index.js";
14
16
  import "../../../video-player/index.js";
17
+ import "@linaria/core";
15
18
  import "../../../video-player/styles.js";
16
19
  import "../../../questions/insight/styles.js";
17
20
  import "../../../gamification/question/insight/styles.js";
@@ -25,10 +28,10 @@ import "../../../gamification/question/twitter/styles.js";
25
28
  import "../../../button/index.js";
26
29
  import "../../../button/styles.js";
27
30
  import "../../../gamification/question/list/styles.js";
28
- const E = ({ store: i, openQuestion: m }) => {
29
- const { sdk: t } = s(), o = p(i);
30
- return o != null && o.data ? /* @__PURE__ */ r(e, { openQuestion: m, questions: o.data, controlVideo: t == null ? void 0 : t.controlVideoPlayer }) : /* @__PURE__ */ r("div", { children: "wait questions..." });
31
+ const H = ({ store: t, openQuestion: r }) => {
32
+ const { sdk: o } = e(), i = p(t);
33
+ return /* @__PURE__ */ m(s, { openQuestion: r, questions: i.data, controlVideo: o == null ? void 0 : o.controlVideoPlayer });
31
34
  };
32
35
  export {
33
- E as QuestionsList
36
+ H as QuestionsList
34
37
  };
@@ -1,16 +1,16 @@
1
- import { jsxs as h, jsx as t, Fragment as C } from "react/jsx-runtime";
1
+ import { jsxs as h, jsx as t, Fragment as D } from "react/jsx-runtime";
2
2
  import { useStore as f } from "@nanostores/react";
3
- import { useState as D, useTransition as T, useEffect as v } from "react";
4
- import { TabsContainer as A, TabsNavContainer as I, SDKWhiteContainer as P, UserSummaryContainer as S, SDKContentContainer as V, LeaderboardContainer as E } from "../../styles.js";
5
- import { scrollIntoAppView as K } from "../../useSdkScroll.js";
6
- import { ActivePages as a, Tabs as L } from "../../../gamification/tabs/index.js";
7
- import { Leaderboard as B } from "./Leaderboard.js";
8
- import { QuestionsList as F } from "./QuestionsList.js";
9
- import { UserSummary as O } from "./UserSummary.js";
3
+ import { useState as T, useTransition as v, useEffect as A } from "react";
4
+ import { TabsContainer as I, TabsNavContainer as P, SDKWhiteContainer as S, UserSummaryContainer as V, SDKContentContainer as E, LeaderboardContainer as K } from "../../styles.js";
5
+ import { scrollIntoAppView as L } from "../../useSdkScroll.js";
6
+ import { ActivePages as a, Tabs as B } from "../../../gamification/tabs/index.js";
7
+ import { Leaderboard as F } from "./Leaderboard.js";
8
+ import { QuestionsList as O } from "./QuestionsList.js";
9
+ import { UserSummary as Q } from "./UserSummary.js";
10
10
  import "@linaria/react";
11
11
  import "lodash.throttle";
12
12
  import "../../../theme/constants.js";
13
- import "../../../../index-keh7OLCY.js";
13
+ import "../../../../index-z0QjLiEL.js";
14
14
  import "../../../../index-uEuzH3jr.js";
15
15
  import "../../../gamification/tabs/styles.js";
16
16
  import "../../useClipboardCopy.js";
@@ -19,6 +19,9 @@ import "../../../gamification/copyNotification/index.js";
19
19
  import "../../../icons/index.js";
20
20
  import "../../../gamification/copyNotification/styles.js";
21
21
  import "../../../gamification/invite-link/index.js";
22
+ import "../../../../hooks/analytics.js";
23
+ import "@streamlayer/sdk-web-interfaces";
24
+ import "@streamlayer/sdk-web-types";
22
25
  import "../../../gamification/invite-link/styles.js";
23
26
  import "react-virtualized-auto-sizer";
24
27
  import "react-window";
@@ -35,12 +38,14 @@ import "../../../gamification/onboarding/slides/onboarding-invite-card/styles.js
35
38
  import "../../useMastersContext.js";
36
39
  import "../../../gamification/question/list/index.js";
37
40
  import "../../../gamification/question/index.js";
38
- import "@streamlayer/sdk-web-types";
39
41
  import "../../../gamification/constants.js";
42
+ import "../../../skeleton/index.js";
43
+ import "../../../skeleton/styles.js";
40
44
  import "../../../gamification/question/styles.js";
41
45
  import "../../../gamification/question/insight/index.js";
42
46
  import "../../../questions/insight/index.js";
43
47
  import "../../../video-player/index.js";
48
+ import "@linaria/core";
44
49
  import "../../../video-player/styles.js";
45
50
  import "../../../questions/insight/styles.js";
46
51
  import "../../../gamification/question/insight/styles.js";
@@ -59,14 +64,14 @@ import "../../../gamification/user-statistics/components/rank/styles.js";
59
64
  import "../../../gamification/user-statistics/components/statistic/index.js";
60
65
  import "../../../gamification/user-statistics/components/statistic/styles.js";
61
66
  import "../../../gamification/user-statistics/styles.js";
62
- const qt = ({ gamification: o, className: l, scrollStore: r, scrollNode: u, appNode: e, style: b, responsiveStore: m, headerNode: w }) => {
63
- const { tabsShown: d } = f(r, { keys: ["tabsShown"] }), [p, y] = D(a.HOME), [, g] = T(), { sdkInDesktopView: n } = f(m, { keys: ["sdkInDesktopView"] }), k = (i) => {
67
+ const Yt = ({ gamification: o, className: l, scrollStore: r, scrollNode: u, appNode: e, style: b, responsiveStore: m, headerNode: w }) => {
68
+ const { tabsShown: d } = f(r, { keys: ["tabsShown"] }), [p, y] = T(a.HOME), [, g] = v(), { sdkInDesktopView: n, screen: k } = f(m, { keys: ["sdkInDesktopView"] }), x = (i) => {
64
69
  g(() => {
65
70
  var c;
66
- y(i), n === !1 && (((c = e.current) == null ? void 0 : c.getBoundingClientRect().y) || 0) < 0 && K(e, { behavior: "instant" });
71
+ y(i), n === !1 && (((c = e.current) == null ? void 0 : c.getBoundingClientRect().y) || 0) < 0 && L(e, k.size, { behavior: "instant" });
67
72
  });
68
73
  };
69
- v(() => r.listen((i) => {
74
+ A(() => r.listen((i) => {
70
75
  if (i.scrollPosition === 0) {
71
76
  r.setKey("tabsShown", !0);
72
77
  return;
@@ -75,25 +80,25 @@ const qt = ({ gamification: o, className: l, scrollStore: r, scrollNode: u, appN
75
80
  }), [r, m]);
76
81
  let s = "0px";
77
82
  n ? s = d ? "0px" : "calc(8px - var(--header-height) - var(--header-offset))" : s = d ? "calc(var(--header-height) + var(--header-offset) - 2px)" : "0px";
78
- const x = n ? e : w;
79
- return /* @__PURE__ */ h(A, { className: l, style: b, children: [
83
+ const C = n ? e : w;
84
+ return /* @__PURE__ */ h(I, { className: l, style: b, children: [
80
85
  /* @__PURE__ */ t(
81
- I,
86
+ P,
82
87
  {
83
88
  style: {
84
89
  top: s
85
90
  },
86
- children: /* @__PURE__ */ t(L, { activePage: p, toggleActivePage: k })
91
+ children: /* @__PURE__ */ t(B, { activePage: p, toggleActivePage: x })
87
92
  }
88
93
  ),
89
- p === a.HOME && /* @__PURE__ */ h(C, { children: [
90
- /* @__PURE__ */ t(P, { style: { paddingTop: "8px" }, children: /* @__PURE__ */ t(S, { children: /* @__PURE__ */ t(O, { userSummary: o.userSummary }) }) }),
91
- /* @__PURE__ */ t(V, { style: { flex: 1 }, children: /* @__PURE__ */ t(F, { openQuestion: o.openQuestion, store: o.feedList.getStore() }) })
94
+ p === a.HOME && /* @__PURE__ */ h(D, { children: [
95
+ /* @__PURE__ */ t(S, { style: { paddingTop: "8px" }, children: /* @__PURE__ */ t(V, { children: /* @__PURE__ */ t(Q, { userSummary: o.userSummary }) }) }),
96
+ /* @__PURE__ */ t(E, { style: { flex: 1 }, children: /* @__PURE__ */ t(O, { openQuestion: o.openQuestion, store: o.feedList.getStore() }) })
92
97
  ] }),
93
- p === a.LEADERBOARD && /* @__PURE__ */ t(E, { children: /* @__PURE__ */ t(
94
- B,
98
+ p === a.LEADERBOARD && /* @__PURE__ */ t(K, { children: /* @__PURE__ */ t(
99
+ F,
95
100
  {
96
- renderClipBoardNode: x,
101
+ renderClipBoardNode: C,
97
102
  scrollStore: r,
98
103
  scrollNode: u,
99
104
  gamification: o
@@ -102,5 +107,5 @@ const qt = ({ gamification: o, className: l, scrollStore: r, scrollNode: u, appN
102
107
  ] });
103
108
  };
104
109
  export {
105
- qt as Tabs
110
+ Yt as Tabs
106
111
  };
@@ -1,25 +1,27 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { useState as c, useEffect as p } from "react";
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { useState as e, useEffect as s } from "react";
3
3
  import { UserStatistics as n } from "../../../gamification/user-statistics/index.js";
4
+ import "../../../skeleton/index.js";
5
+ import "../../../skeleton/styles.js";
6
+ import "@linaria/react";
4
7
  import "../../../../utils/common.js";
5
8
  import "../../../gamification/user-statistics/components/rank/index.js";
6
9
  import "../../../gamification/user-statistics/components/rank/styles.js";
7
- import "@linaria/react";
8
10
  import "../../../gamification/user-statistics/components/statistic/index.js";
9
11
  import "../../../gamification/user-statistics/components/statistic/styles.js";
10
12
  import "../../../gamification/user-statistics/styles.js";
11
- const g = ({ userSummary: e }) => {
12
- var i;
13
- const [r, s] = c(void 0);
14
- return p(() => {
15
- const m = e.subscribe((t) => {
16
- t != null && t.data && s(t.data);
13
+ const E = ({ userSummary: o }) => {
14
+ var m;
15
+ const [t, i] = e(void 0);
16
+ return s(() => {
17
+ const p = o.subscribe((r) => {
18
+ r != null && r.data && i(r.data);
17
19
  });
18
20
  return () => {
19
- m();
21
+ p();
20
22
  };
21
- }, [e]), r != null && r.summary ? /* @__PURE__ */ o(n, { ...r.summary, successRate: (i = r.percentage) == null ? void 0 : i.correct }) : /* @__PURE__ */ o("div", { children: "wait user..." });
23
+ }, [o]), /* @__PURE__ */ c(n, { loading: !(t != null && t.summary), ...t == null ? void 0 : t.summary, successRate: (m = t == null ? void 0 : t.percentage) == null ? void 0 : m.correct });
22
24
  };
23
25
  export {
24
- g as UserSummary
26
+ E as UserSummary
25
27
  };
@@ -2,14 +2,16 @@ import { GamificationOverlay as o } from "./index.js";
2
2
  import "react/jsx-runtime";
3
3
  import "@linaria/react";
4
4
  import "@nanostores/react";
5
- import "react";
6
5
  import "../../styles.js";
7
6
  import "../../../gamification/detail/header/index.js";
8
7
  import "@streamlayer/sdk-web-types";
9
8
  import "../../../gamification/constants.js";
10
9
  import "../../../gamification/detail/header/styles.js";
11
10
  import "../../../icons/index.js";
11
+ import "react";
12
12
  import "../../../gamification/user-statistics/index.js";
13
+ import "../../../skeleton/index.js";
14
+ import "../../../skeleton/styles.js";
13
15
  import "../../../../utils/common.js";
14
16
  import "../../../gamification/user-statistics/components/rank/index.js";
15
17
  import "../../../gamification/user-statistics/components/rank/styles.js";
@@ -54,7 +56,7 @@ import "../../../gamification/vote/twitter-details/styles.js";
54
56
  import "./Tabs.js";
55
57
  import "../../useSdkScroll.js";
56
58
  import "lodash.throttle";
57
- import "../../../../index-keh7OLCY.js";
59
+ import "../../../../index-z0QjLiEL.js";
58
60
  import "../../../gamification/tabs/index.js";
59
61
  import "../../../gamification/tabs/styles.js";
60
62
  import "./Leaderboard.js";
@@ -62,6 +64,8 @@ import "../../useClipboardCopy.js";
62
64
  import "../../../gamification/copyNotification/index.js";
63
65
  import "../../../gamification/copyNotification/styles.js";
64
66
  import "../../../gamification/invite-link/index.js";
67
+ import "../../../../hooks/analytics.js";
68
+ import "@streamlayer/sdk-web-interfaces";
65
69
  import "../../../gamification/invite-link/styles.js";
66
70
  import "react-virtualized-auto-sizer";
67
71
  import "react-window";
@@ -12,3 +12,13 @@ export declare const GamificationOverlay: React.FC<{
12
12
  scrollNode: ScrollNodeRef;
13
13
  headerNode: HeaderNodeRef;
14
14
  }>;
15
+ /**
16
+ * Standalone version of the gamification overlay
17
+ * includes the question and user details, which are shown in a modal and should be available on any overlay
18
+ */
19
+ export declare const GamificationOverlayStandalone: React.FC<{
20
+ gamification: GamificationClass;
21
+ className?: string;
22
+ responsiveStore: ResponsiveStore;
23
+ appNode: AppNodeRef;
24
+ }>;
@@ -1,18 +1,20 @@
1
- import { jsx as o, jsxs as c, Fragment as U } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as f } from "react/jsx-runtime";
2
2
  import { styled as a } from "@linaria/react";
3
- import { useStore as n } from "@nanostores/react";
4
- import { useMemo as w } from "react";
5
- import { SDKWhiteContainer as x } from "../../styles.js";
6
- import { VoteHeader as V } from "../../../gamification/detail/header/index.js";
7
- import { UserStatistics as y } from "../../../gamification/user-statistics/index.js";
8
- import { ModalPortal as R } from "../../../modal/index.js";
3
+ import { useStore as s } from "@nanostores/react";
4
+ import { SDKWhiteContainer as h } from "../../styles.js";
5
+ import { VoteHeader as C } from "../../../gamification/detail/header/index.js";
6
+ import { UserStatistics as k } from "../../../gamification/user-statistics/index.js";
7
+ import { ModalPortal as I } from "../../../modal/index.js";
9
8
  import { ShowIn as S } from "../../../show-in/index.js";
10
- import { Question as D } from "./Question.js";
11
- import { Tabs as F } from "./Tabs.js";
9
+ import { Question as U } from "./Question.js";
10
+ import { Tabs as w } from "./Tabs.js";
12
11
  import "@streamlayer/sdk-web-types";
13
12
  import "../../../gamification/constants.js";
14
13
  import "../../../gamification/detail/header/styles.js";
15
14
  import "../../../icons/index.js";
15
+ import "react";
16
+ import "../../../skeleton/index.js";
17
+ import "../../../skeleton/styles.js";
16
18
  import "../../../../utils/common.js";
17
19
  import "../../../gamification/user-statistics/components/rank/index.js";
18
20
  import "../../../gamification/user-statistics/components/rank/styles.js";
@@ -53,7 +55,7 @@ import "../../../questions/twitter/styles.js";
53
55
  import "../../../gamification/vote/twitter-details/styles.js";
54
56
  import "../../useSdkScroll.js";
55
57
  import "lodash.throttle";
56
- import "../../../../index-keh7OLCY.js";
58
+ import "../../../../index-z0QjLiEL.js";
57
59
  import "../../../gamification/tabs/index.js";
58
60
  import "../../../gamification/tabs/styles.js";
59
61
  import "./Leaderboard.js";
@@ -61,6 +63,8 @@ import "../../useClipboardCopy.js";
61
63
  import "../../../gamification/copyNotification/index.js";
62
64
  import "../../../gamification/copyNotification/styles.js";
63
65
  import "../../../gamification/invite-link/index.js";
66
+ import "../../../../hooks/analytics.js";
67
+ import "@streamlayer/sdk-web-interfaces";
64
68
  import "../../../gamification/invite-link/styles.js";
65
69
  import "react-virtualized-auto-sizer";
66
70
  import "react-window";
@@ -85,76 +89,77 @@ import "../../../button/index.js";
85
89
  import "../../../button/styles.js";
86
90
  import "../../../gamification/question/list/styles.js";
87
91
  import "./UserSummary.js";
88
- const M = () => S, d = /* @__PURE__ */ a(M())({
92
+ const x = () => S, c = /* @__PURE__ */ a(x())({
89
93
  name: "OpenedContainer",
90
94
  class: "oar61gl",
91
95
  propsAsIs: !0
92
- }), O = /* @__PURE__ */ a("div")({
96
+ }), y = /* @__PURE__ */ a("div")({
93
97
  name: "UserContainer",
94
98
  class: "u14zaal4",
95
99
  propsAsIs: !1
96
- }), Q = ({
100
+ }), V = ({
97
101
  correct: r,
98
- incorrect: p
102
+ incorrect: i
99
103
  }) => {
100
- const t = r + p;
101
- return t === 0 ? 0 : Math.round(r / t * 100);
102
- }, uo = ({
104
+ const o = r + i;
105
+ return o === 0 ? 0 : Math.round(r / o * 100);
106
+ }, so = ({
103
107
  gamification: r,
104
- scrollStore: p,
105
- className: t,
106
- appNode: i,
107
- scrollNode: f,
108
- headerNode: h,
109
- responsiveStore: s
108
+ scrollStore: i,
109
+ className: o,
110
+ appNode: e,
111
+ scrollNode: p,
112
+ headerNode: m,
113
+ responsiveStore: n
114
+ }) => /* @__PURE__ */ t(w, {
115
+ appNode: e,
116
+ headerNode: m,
117
+ scrollStore: i,
118
+ scrollNode: p,
119
+ className: o,
120
+ gamification: r,
121
+ responsiveStore: n
122
+ }), lo = ({
123
+ gamification: r,
124
+ className: i,
125
+ appNode: o,
126
+ responsiveStore: e
110
127
  }) => {
111
- const e = n(r.openedQuestion.$store), m = n(r.openedUser), {
112
- sdkInDesktopView: l
113
- } = n(s, {
128
+ var l;
129
+ const p = s(r.openedQuestion.$store), m = s(r.openedUser), {
130
+ sdkInDesktopView: n
131
+ } = s(e, {
114
132
  keys: ["sdkInDesktopView"]
115
- }), C = w(() => {
116
- var u;
117
- const k = (((u = i.current) == null ? void 0 : u.getBoundingClientRect().y) || 0) < 0;
118
- if (!i.current || !e && !m)
119
- return null;
120
- const I = e ? /* @__PURE__ */ o(d, {
121
- className: t,
122
- children: /* @__PURE__ */ o(D, {
123
- gamification: r
124
- })
125
- }) : m ? /* @__PURE__ */ o(d, {
126
- className: t,
127
- children: /* @__PURE__ */ c(O, {
128
- children: [/* @__PURE__ */ o(V, {
129
- label: "Friend's Rank",
130
- close: r.closeUser
131
- }), /* @__PURE__ */ o(x, {
132
- children: /* @__PURE__ */ o(y, {
133
- ...m,
134
- successRate: Q(m)
135
- })
136
- })]
137
- })
138
- }) : null;
139
- return /* @__PURE__ */ o(R, {
140
- container: i,
141
- useContainer: !l,
142
- fixedView: k,
143
- children: I
144
- });
145
- }, [i, t, r, e, m, l]);
146
- return /* @__PURE__ */ c(U, {
147
- children: [C, /* @__PURE__ */ o(F, {
148
- appNode: i,
149
- headerNode: h,
150
- scrollStore: p,
151
- scrollNode: f,
152
- className: t,
153
- gamification: r,
154
- responsiveStore: s
155
- })]
133
+ }), u = (((l = o.current) == null ? void 0 : l.getBoundingClientRect().y) || 0) < 0;
134
+ if (!o.current || !p && !m)
135
+ return null;
136
+ const d = p ? /* @__PURE__ */ t(c, {
137
+ className: i,
138
+ children: /* @__PURE__ */ t(U, {
139
+ gamification: r
140
+ })
141
+ }) : m ? /* @__PURE__ */ t(c, {
142
+ className: i,
143
+ children: /* @__PURE__ */ f(y, {
144
+ children: [/* @__PURE__ */ t(C, {
145
+ label: "Friend's Rank",
146
+ close: r.closeUser
147
+ }), /* @__PURE__ */ t(h, {
148
+ children: /* @__PURE__ */ t(k, {
149
+ ...m,
150
+ successRate: V(m)
151
+ })
152
+ })]
153
+ })
154
+ }) : null;
155
+ return /* @__PURE__ */ t(I, {
156
+ container: o,
157
+ useContainer: !n,
158
+ fixedView: u,
159
+ children: d
156
160
  });
157
161
  };
158
162
  export {
159
- uo as GamificationOverlay
163
+ so as GamificationOverlay,
164
+ lo as GamificationOverlayStandalone
160
165
  };
@@ -15,3 +15,11 @@ export declare const ActiveFeature: React.FC<{
15
15
  headerNode: HeaderNodeRef;
16
16
  className?: string;
17
17
  }>;
18
+ /** render feature by type */
19
+ export declare const StandaloneFeature: React.FC<{
20
+ sdk: StreamLayerSDK;
21
+ feature: Features | null;
22
+ responsiveStore: ResponsiveStore;
23
+ appNode: AppNodeRef;
24
+ className?: string;
25
+ }>;