@streamlayer/feature-gamification 0.41.0 → 0.41.2

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/detail.d.ts CHANGED
@@ -8,9 +8,9 @@ export declare const detail: (transport: Transport, $openedQuestionId: ReadableA
8
8
  openedFrom?: 'list' | 'notification';
9
9
  };
10
10
  } | undefined>, $feedList: ReturnType<GamificationBackground['feedList']['getStore']>) => {
11
- $store: ReadableAtom<import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").FeedItem | (import("@streamlayer/sdk-web-types").PickHistory<import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").FeedItem> & {
11
+ $store: ReadableAtom<import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").FeedItem | (import("@bufbuild/protobuf").PlainMessage<import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").FeedItem> & {
12
12
  openedFrom?: "list" | "notification" | undefined;
13
13
  }) | undefined>;
14
- $extendedStore: import("@nanostores/query").FetcherStore<import("@streamlayer/sdk-web-types").PickHistory<import("@streamlayer/sl-eslib/interactive/interactive.common_pb").ExtendedQuestion>, any>;
14
+ $extendedStore: import("@nanostores/query").FetcherStore<import("@bufbuild/protobuf").PlainMessage<import("@streamlayer/sl-eslib/interactive/interactive.common_pb").ExtendedQuestion>, any>;
15
15
  updateExtendedQuestion: (question: ExtendedQuestion | undefined) => void;
16
16
  };
@@ -81,25 +81,10 @@ export class Gamification extends AbstractFeature {
81
81
  this.connect();
82
82
  // refresh leaderboard on user summary update after earning points
83
83
  this.cancels.add(this.userSummary.$store.listen((userSummary, prevValue) => {
84
- if (prevValue?.summary && userSummary?.summary && !userSummary.fromLeaderboard) {
84
+ if (prevValue?.summary && userSummary?.summary) {
85
85
  this.leaderboardList.invalidate(); // verified, it's necessary
86
86
  }
87
87
  }));
88
- this.cancels.add(this.leaderboardList.$store.subscribe((leaderboard) => {
89
- const userSummary = { ...(this.userSummary.$store.get() || {}) };
90
- const userId = userSummary?.summary?.userId;
91
- if (leaderboard.data.length && userId) {
92
- const userRank = leaderboard.data.find((item) => item.userId === userId)?.rank;
93
- if (userRank !== undefined) {
94
- if (userSummary?.summary) {
95
- userSummary.fromLeaderboard = true;
96
- userSummary.summary.friendsRank = userRank;
97
- // @ts-ignore
98
- this.userSummary.$store.set(userSummary);
99
- }
100
- }
101
- }
102
- }));
103
88
  /**
104
89
  * listen for active question and show in-app notification
105
90
  */
@@ -329,7 +329,7 @@ export declare const questionSubscription: (questionId: string, transport: Trans
329
329
  }, QuestionSubscriptionRequest, QuestionSubscriptionResponse, "subscription" | "votingSubscription" | "questionSubscription" | "feedSubscription", ((request: import("@bufbuild/protobuf").PartialMessage<SubscriptionRequest>, options?: import("@connectrpc/connect").CallOptions | undefined) => AsyncIterable<SubscriptionResponse>) | ((request: import("@bufbuild/protobuf").PartialMessage<VotingSubscriptionRequest>, options?: import("@connectrpc/connect").CallOptions | undefined) => AsyncIterable<VotingSubscriptionResponse>) | ((request: import("@bufbuild/protobuf").PartialMessage<QuestionSubscriptionRequest>, options?: import("@connectrpc/connect").CallOptions | undefined) => AsyncIterable<QuestionSubscriptionResponse>) | ((request: import("@bufbuild/protobuf").PartialMessage<import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").FeedSubscriptionRequest>, options?: import("@connectrpc/connect").CallOptions | undefined) => AsyncIterable<import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").FeedSubscriptionResponse>)>;
330
330
  export declare const getQuestionByUser: (questionId: string, transport: Transport) => Promise<import("@streamlayer/sl-eslib/interactive/interactive.common_pb").ExtendedQuestion | undefined>;
331
331
  export declare const getQuestionDetail: (questionId: string, transport: Transport) => Promise<import("@streamlayer/sl-eslib/interactive/interactive.common_pb").Question | undefined>;
332
- export declare const $questionByUser: ($questionId: ReadableAtom<string | undefined> | string, transport: Transport) => import("@nanostores/query").FetcherStore<import("@streamlayer/sdk-web-types").PickHistory<import("@streamlayer/sl-eslib/interactive/interactive.common_pb").ExtendedQuestion>, any>;
332
+ export declare const $questionByUser: ($questionId: ReadableAtom<string | undefined> | string, transport: Transport) => import("@nanostores/query").FetcherStore<import("@bufbuild/protobuf").PlainMessage<import("@streamlayer/sl-eslib/interactive/interactive.common_pb").ExtendedQuestion>, any>;
333
333
  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)[], any>;
334
334
  export declare const $feedList: ($slStreamId: ReadableAtom<string | undefined>, $interactiveAllowed: ReadableAtom<InteractiveAllowed>, transport: Transport) => import("@nanostores/query").FetcherStore<import("@streamlayer/sl-eslib/interactive/feed/interactive.feed_pb").FeedItem[], any>;
335
335
  export { $userSummary, $leaderboardList } from './leaderboard';
@@ -3,8 +3,6 @@ import { ReadableAtom } from 'nanostores';
3
3
  import { LeaderboardSummaryItem } from '@streamlayer/sl-eslib/interactive/leaderboard/interactive.leaderboard_pb';
4
4
  import { Gamification } from '.';
5
5
  export declare const summary: ($eventId: ReadableAtom<string | undefined>, $userId: ReadableAtom<string | undefined>, $friends: Gamification['friends'], transport: Transport) => {
6
- $store: import("nanostores").MapStore<(LeaderboardSummaryItem & {
7
- fromLeaderboard?: boolean | undefined;
8
- }) | undefined>;
6
+ $store: import("nanostores").MapStore<LeaderboardSummaryItem | undefined>;
9
7
  invalidate: () => void;
10
8
  };
@@ -22,10 +22,6 @@ export const summary = ($eventId, $userId, $friends, transport) => {
22
22
  usersIds: [...usersIds, userId],
23
23
  };
24
24
  const res = await fetch(request);
25
- const prevData = $store.get()?.summary?.friendsRank;
26
- if (res.data?.attributes?.summary?.friendsRank && prevData !== undefined) {
27
- res.data.attributes.summary.friendsRank = prevData;
28
- }
29
25
  $store.set(res.data?.attributes);
30
26
  };
31
27
  const invalidate = () => {
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@streamlayer/feature-gamification",
3
- "version": "0.41.0",
3
+ "version": "0.41.2",
4
4
  "peerDependencies": {
5
5
  "@bufbuild/protobuf": "^1.8.0",
6
6
  "@fastify/deepmerge": "^1.3.0",
7
7
  "@streamlayer/sl-eslib": "^5.85.0",
8
8
  "nanostores": "^0.10.0",
9
- "@streamlayer/sdk-web-api": "^0.25.0",
10
- "@streamlayer/sdk-web-core": "^0.23.0",
11
- "@streamlayer/sdk-web-logger": "^0.5.20",
12
- "@streamlayer/sdk-web-interfaces": "^0.22.0",
13
- "@streamlayer/sdk-web-notifications": "^0.16.0",
14
- "@streamlayer/sdk-web-storage": "^0.4.7",
15
- "@streamlayer/sdk-web-types": "^0.23.2"
9
+ "@streamlayer/sdk-web-api": "^0.25.1",
10
+ "@streamlayer/sdk-web-core": "^0.23.1",
11
+ "@streamlayer/sdk-web-interfaces": "^0.22.1",
12
+ "@streamlayer/sdk-web-logger": "^0.5.21",
13
+ "@streamlayer/sdk-web-notifications": "^0.16.1",
14
+ "@streamlayer/sdk-web-storage": "^0.4.8",
15
+ "@streamlayer/sdk-web-types": "^0.23.3"
16
16
  },
17
17
  "devDependencies": {
18
18
  "tslib": "^2.6.2"