@streamlayer/feature-gamification 0.14.2 → 0.15.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.
@@ -36,6 +36,8 @@ export declare class Gamification extends AbstractFeature<'games', PlainMessage<
36
36
  questions?: ApiStore<GetApiResponseType<typeof queries.$pickHistory>>;
37
37
  /** pinned leaderboard id */
38
38
  leaderboardId: WritableAtom<string | undefined>;
39
+ /** leaderboard list */
40
+ leaderboardList?: ApiStore<GetApiResponseType<typeof queries.$leaderboardList>>;
39
41
  /** onboarding status */
40
42
  onboardingStatus: WritableAtom<OnboardingStatus | undefined>;
41
43
  /** opened question */
@@ -39,6 +39,8 @@ export class Gamification extends AbstractFeature {
39
39
  questions;
40
40
  /** pinned leaderboard id */
41
41
  leaderboardId;
42
+ /** leaderboard list */
43
+ leaderboardList;
42
44
  /** onboarding status */
43
45
  onboardingStatus;
44
46
  /** opened question */
@@ -189,6 +191,7 @@ export class Gamification extends AbstractFeature {
189
191
  else {
190
192
  this.userSummary.invalidate();
191
193
  }
194
+ this.leaderboardList = new ApiStore(queries.$leaderboardList(this.background.slStreamId, this.leaderboardId, transport), 'gamification:leaderboardList');
192
195
  if (!this.questions) {
193
196
  this.questions = new ApiStore(queries.$pickHistory(this.background.slStreamId, transport), 'gamification:questions');
194
197
  }
@@ -294,5 +294,5 @@ export declare const getQuestionByUser: (questionId: string, transport: Transpor
294
294
  export declare const $questionByUser: ($questionId: ReadableAtom<string | undefined>, transport: Transport) => import("@nanostores/query").FetcherStore<import("packages/sdk-web-types/lib").ExtendedQuestion | undefined, any>;
295
295
  export declare const $pickHistory: (slStreamId: ReadableAtom<string | undefined>, transport: Transport) => import("@nanostores/query").FetcherStore<(import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").PickHistory | undefined)[] | undefined, any>;
296
296
  export declare const $insightHistory: (slStreamId: ReadableAtom<string | undefined>, transport: Transport) => import("@nanostores/query").FetcherStore<(import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").InsightHistory | undefined)[] | undefined, any>;
297
- export { $userSummary } from './leaderboard';
297
+ export { $userSummary, $leaderboardList } from './leaderboard';
298
298
  export { $moderation } from './moderation';
@@ -81,5 +81,5 @@ export const $insightHistory = (slStreamId, transport) => {
81
81
  },
82
82
  });
83
83
  };
84
- export { $userSummary } from './leaderboard';
84
+ export { $userSummary, $leaderboardList } from './leaderboard';
85
85
  export { $moderation } from './moderation';
@@ -1,3 +1,4 @@
1
1
  import type { Transport } from '@streamlayer/sdk-web-api';
2
2
  import { ReadableAtom } from 'nanostores';
3
3
  export declare const $userSummary: ($eventId: ReadableAtom<string | undefined>, $userId: ReadableAtom<string | undefined>, transport: Transport) => import("@nanostores/query").FetcherStore<import("@streamlayer/sl-eslib/interactive/leaderboard/interactive.leaderboard_pb").LeaderboardSummaryItem | undefined, any>;
4
+ export declare const $leaderboardList: ($eventId: ReadableAtom<string | undefined>, $leaderboardId: ReadableAtom<string | undefined>, transport: Transport) => import("@nanostores/query").FetcherStore<import("@streamlayer/sl-eslib/interactive/leaderboard/interactive.leaderboard_pb").ListResponse_ListResponseData[], any>;
@@ -14,3 +14,19 @@ export const $userSummary = ($eventId, $userId, transport) => {
14
14
  },
15
15
  });
16
16
  };
17
+ export const $leaderboardList = ($eventId, $leaderboardId, transport) => {
18
+ const { client, queryKey } = transport.createPromiseClient(Leaderboard, {
19
+ method: 'list',
20
+ params: [$eventId, $leaderboardId],
21
+ });
22
+ return transport.nanoquery.createFetcherStore(queryKey, {
23
+ fetcher: async (_, __, eventId, leaderboardId) => {
24
+ const res = await client.list({
25
+ usersIds: [],
26
+ eventId: eventId,
27
+ leaderboardId: leaderboardId,
28
+ });
29
+ return res.data;
30
+ },
31
+ });
32
+ };
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@streamlayer/feature-gamification",
3
- "version": "0.14.2",
3
+ "version": "0.15.0",
4
4
  "peerDependencies": {
5
5
  "@bufbuild/protobuf": "^1.4.2",
6
6
  "@streamlayer/sl-eslib": "^5.45.1",
7
7
  "nanostores": "^0.9.4",
8
- "@streamlayer/sdk-web-interfaces": "^0.17.1",
9
- "@streamlayer/sdk-web-core": "^0.11.2",
8
+ "@streamlayer/sdk-web-interfaces": "^0.17.2",
9
+ "@streamlayer/sdk-web-core": "^0.11.3",
10
10
  "@streamlayer/sdk-web-api": "^0.1.0",
11
- "@streamlayer/sdk-web-types": "^0.14.1",
11
+ "@streamlayer/sdk-web-types": "^0.15.0",
12
12
  "@streamlayer/sdk-web-storage": "^0.3.1",
13
13
  "@streamlayer/sdk-web-logger": "^0.5.1",
14
- "@streamlayer/sdk-web-notifications": "^0.9.1"
14
+ "@streamlayer/sdk-web-notifications": "^0.9.2"
15
15
  },
16
16
  "devDependencies": {
17
17
  "tslib": "^2.6.2"