@amityco/ts-sdk 7.7.1-47be9e51.0 → 7.7.1-4fc282b6.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 (88) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts +0 -31
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js +1 -21
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js.map +1 -1
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts +11 -0
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts.map +1 -0
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js +2 -0
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js.map +1 -0
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts +3 -1
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts.map +1 -1
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.js.map +1 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts +0 -1
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js +0 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js.map +1 -1
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.d.ts +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.js.map +1 -1
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.d.ts +1 -1
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.js.map +1 -1
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.d.ts.map +1 -1
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.js +3 -3
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostPaginationController.js.map +1 -1
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  28. package/dist/@types/domains/feed.d.ts +0 -31
  29. package/dist/@types/domains/feed.d.ts.map +1 -1
  30. package/dist/@types/domains/hashtag.d.ts +11 -0
  31. package/dist/@types/domains/hashtag.d.ts.map +1 -0
  32. package/dist/@types/domains/post.d.ts +3 -1
  33. package/dist/@types/domains/post.d.ts.map +1 -1
  34. package/dist/@types/index.d.ts +1 -0
  35. package/dist/@types/index.d.ts.map +1 -1
  36. package/dist/feedRepository/index.d.ts +0 -1
  37. package/dist/feedRepository/index.d.ts.map +1 -1
  38. package/dist/index.cjs.js +1095 -1332
  39. package/dist/index.esm.js +1094 -1331
  40. package/dist/index.umd.js +1 -1
  41. package/dist/postRepository/api/createPost.d.ts +1 -1
  42. package/dist/postRepository/api/editPost.d.ts +1 -1
  43. package/dist/postRepository/observers/getPosts/PostPaginationController.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/@types/domains/feed.ts +0 -43
  46. package/src/@types/domains/hashtag.ts +11 -0
  47. package/src/@types/domains/post.ts +3 -1
  48. package/src/@types/index.ts +1 -0
  49. package/src/feedRepository/index.ts +0 -1
  50. package/src/postRepository/api/createPost.ts +1 -1
  51. package/src/postRepository/api/editPost.ts +1 -1
  52. package/src/postRepository/observers/getPosts/PostPaginationController.ts +3 -0
  53. package/tsconfig.tsbuildinfo +1 -1
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts +0 -14
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js +0 -129
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js.map +0 -1
  58. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  59. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  60. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js +0 -15
  61. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js.map +0 -1
  62. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts +0 -15
  63. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  64. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js +0 -78
  65. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js.map +0 -1
  66. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  67. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  68. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js +0 -46
  69. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js.map +0 -1
  70. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts +0 -2
  71. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts.map +0 -1
  72. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js +0 -2
  73. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js.map +0 -1
  74. package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts +0 -14
  75. package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  76. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  77. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  78. package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts +0 -15
  79. package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  80. package/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  81. package/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  82. package/dist/feedRepository/observers/index.d.ts +0 -2
  83. package/dist/feedRepository/observers/index.d.ts.map +0 -1
  84. package/src/feedRepository/observers/getUserFeed/LiveCollectionController.ts +0 -192
  85. package/src/feedRepository/observers/getUserFeed/PaginationController.ts +0 -37
  86. package/src/feedRepository/observers/getUserFeed/QueryStreamController.ts +0 -119
  87. package/src/feedRepository/observers/getUserFeed.ts +0 -56
  88. package/src/feedRepository/observers/index.ts +0 -1
@@ -1,192 +0,0 @@
1
- import hash from 'object-hash';
2
- import { pullFromCache, pushToCache } from '~/cache/api';
3
- import { UserFeedPaginationController } from './PaginationController';
4
- import { UserFeedQueryStreamController } from './QueryStreamController';
5
- import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
6
- import {
7
- onPostCreated,
8
- onPostUpdated,
9
- onPostDeleted,
10
- onPostFlagged,
11
- onPostUnflagged,
12
- onPostReactionAdded,
13
- onPostReactionRemoved,
14
- onPostApproved,
15
- onPostDeclined,
16
- } from '~/postRepository/events';
17
- import {
18
- filterByPostDataTypes,
19
- filterByPropEquality,
20
- sortByFirstCreated,
21
- sortByLastCreated,
22
- } from '~/core/query';
23
- import { isNonNullable } from '~/utils';
24
- import { EnumPostActions } from '~/postRepository/observers/enums';
25
- import { LinkedObject } from '~/utils/linkedObject';
26
- import { preparePostPayload } from '~/postRepository/utils/payload';
27
- import { convertEventPayload } from '~/utils/event';
28
- import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
29
- import { getPost } from '~/postRepository/internalApi/getPost';
30
- import { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';
31
- import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';
32
- import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
33
- import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
34
-
35
- export class UserFeedLiveCollectionController extends LiveCollectionController<
36
- 'post',
37
- Amity.UserFeedLiveCollection,
38
- Amity.Post,
39
- UserFeedPaginationController
40
- > {
41
- private queryStreamController: UserFeedQueryStreamController;
42
-
43
- private query: Amity.UserFeedLiveCollection;
44
-
45
- constructor(
46
- query: Amity.UserFeedLiveCollection,
47
- callback: Amity.LiveCollectionCallback<Amity.Post>,
48
- ) {
49
- const queryStreamId = hash(query);
50
- const cacheKey = ['userFeed', 'collection', queryStreamId];
51
- const paginationController = new UserFeedPaginationController(query);
52
-
53
- super(paginationController, queryStreamId, cacheKey, callback);
54
-
55
- this.query = query;
56
- this.queryStreamController = new UserFeedQueryStreamController(
57
- this.query,
58
- this.cacheKey,
59
- this.notifyChange.bind(this),
60
- preparePostPayload,
61
- );
62
-
63
- this.callback = callback.bind(this);
64
- this.loadPage({ initial: true });
65
- }
66
-
67
- protected setup() {
68
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
69
- if (!collection) {
70
- pushToCache(this.cacheKey, {
71
- data: [],
72
- params: {},
73
- });
74
- }
75
- }
76
-
77
- protected async persistModel(queryPayload: Amity.PostPayload & Amity.Pagination) {
78
- await this.queryStreamController.saveToMainDB(queryPayload);
79
- }
80
-
81
- protected persistQueryStream({
82
- response,
83
- direction,
84
- refresh,
85
- }: Amity.LiveCollectionPersistQueryStreamParams<'post'>) {
86
- this.queryStreamController.appendToQueryStream(response, direction, refresh);
87
- }
88
-
89
- startSubscription() {
90
- return this.queryStreamController.subscribeRTE([
91
- { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
92
- { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
93
- { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
94
- { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
95
- { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
96
- { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
97
- { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
98
- { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
99
- { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
100
- { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
101
- { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
102
- { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
103
- { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
104
- {
105
- fn: convertEventPayload(
106
- (callback: Amity.Listener<Amity.InternalComment>) => {
107
- return onCommentCreated(async (comment: Amity.InternalComment) => {
108
- const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(
109
- this.cacheKey,
110
- )?.data;
111
-
112
- if (!currentCollection || currentCollection.data.includes(comment.referenceId))
113
- return;
114
-
115
- await getPost(comment.referenceId);
116
- callback(comment);
117
- });
118
- },
119
- 'referenceId',
120
- 'post',
121
- ),
122
- action: EnumPostActions.OnPostUpdated,
123
- },
124
- {
125
- fn: convertEventPayload(
126
- (callback: Amity.Listener<Amity.InternalComment>) => {
127
- return onCommentDeleted(async (comment: Amity.InternalComment) => {
128
- const currentCollection = pullFromCache<Amity.UserFeedLiveCollectionCache>(
129
- this.cacheKey,
130
- )?.data;
131
-
132
- if (!currentCollection || currentCollection.data.includes(comment.referenceId))
133
- return;
134
-
135
- await getPost(comment.referenceId);
136
- callback(comment);
137
- });
138
- },
139
- 'referenceId',
140
- 'post',
141
- ),
142
- action: EnumPostActions.OnPostUpdated,
143
- },
144
- ]);
145
- }
146
-
147
- notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
148
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
149
- if (!collection) return;
150
-
151
- const data = this.applyFilter(
152
- collection.data
153
- .map(id => pullFromCache<Amity.InternalPost>(['post', 'get', id])!)
154
- .filter(isNonNullable)
155
- .map(({ data }) => data) ?? [],
156
- ).map(LinkedObject.post);
157
-
158
- if (!this.shouldNotify(data) && origin === 'event') return;
159
-
160
- this.callback({
161
- onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),
162
- data,
163
- hasNextPage: !!this.paginationController.getNextToken(),
164
- loading,
165
- error,
166
- });
167
- }
168
-
169
- applyFilter(data: Amity.InternalPost[]) {
170
- let posts = data;
171
-
172
- if (!this.query.includeDeleted) {
173
- posts = filterByPropEquality(posts, 'isDeleted', false);
174
- }
175
-
176
- if (this.query.dataTypes?.length) {
177
- posts = filterByPostDataTypes(posts, this.query.dataTypes);
178
- }
179
-
180
- switch (this.query.sortBy) {
181
- case 'firstCreated':
182
- posts = posts.sort(sortByFirstCreated);
183
- break;
184
- case 'lastCreated':
185
- default:
186
- posts = posts.sort(sortByLastCreated);
187
- break;
188
- }
189
-
190
- return posts;
191
- }
192
- }
@@ -1,37 +0,0 @@
1
- import { PaginationController } from '~/core/liveCollection/PaginationController';
2
- import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
3
- import { inferIsDeleted } from '~/utils/inferIsDeleted';
4
-
5
- export class UserFeedPaginationController extends PaginationController<
6
- 'post',
7
- Amity.UserFeedLiveCollection
8
- > {
9
- async getRequest(queryParams: Amity.UserFeedLiveCollection, token: string | undefined) {
10
- const {
11
- userId,
12
- feedSources,
13
- dataTypes,
14
- includeDeleted,
15
- matchingOnlyParentPost,
16
- limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,
17
- ...params
18
- } = queryParams;
19
-
20
- const options = token ? { token } : { limit };
21
-
22
- const { data: queryResponse } = await this.http.get<Amity.PostPayload & Amity.Pagination>(
23
- `/api/v4/user-feeds/${userId}`,
24
- {
25
- params: {
26
- ...params,
27
- options,
28
- dataTypes: dataTypes?.length ? dataTypes : undefined,
29
- includePostedFeed: feedSources,
30
- isDeleted: inferIsDeleted(includeDeleted),
31
- matchingOnlyParentPost: matchingOnlyParentPost ?? !dataTypes?.length,
32
- },
33
- },
34
- );
35
- return queryResponse;
36
- }
37
- }
@@ -1,119 +0,0 @@
1
- import { getResolver } from '~/core/model';
2
- import { getActiveClient } from '~/client';
3
- import { pullFromCache, pushToCache } from '~/cache/api';
4
- import { ingestInCache } from '~/cache/api/ingestInCache';
5
- import { EnumPostActions } from '~/postRepository/observers/enums';
6
- import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
7
-
8
- export class UserFeedQueryStreamController extends QueryStreamController<
9
- Amity.PostPayload,
10
- Amity.UserFeedLiveCollection
11
- > {
12
- private notifyChange: (params: Amity.LiveCollectionNotifyParams) => void;
13
-
14
- private preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload;
15
-
16
- constructor(
17
- query: Amity.UserFeedLiveCollection,
18
- cacheKey: string[],
19
- notifyChange: (params: Amity.LiveCollectionNotifyParams) => void,
20
- preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload,
21
- ) {
22
- super(query, cacheKey);
23
- this.notifyChange = notifyChange;
24
- this.preparePayload = preparePayload;
25
- }
26
-
27
- async saveToMainDB(response: Amity.PostPayload) {
28
- const processedPayload = await this.preparePayload(response);
29
-
30
- const client = getActiveClient();
31
- const cachedAt = client.cache && Date.now();
32
-
33
- if (client.cache) {
34
- ingestInCache(processedPayload, { cachedAt });
35
- }
36
- }
37
-
38
- appendToQueryStream(
39
- response: Amity.PostPayload & Partial<Amity.Pagination>,
40
- direction: Amity.LiveCollectionPageDirection,
41
- refresh = false,
42
- ) {
43
- if (refresh) {
44
- pushToCache(this.cacheKey, {
45
- data: response.posts.map(getResolver('post')),
46
- });
47
- } else {
48
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
49
-
50
- const posts = collection?.data ?? [];
51
-
52
- pushToCache(this.cacheKey, {
53
- ...collection,
54
- data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])],
55
- });
56
- }
57
- }
58
-
59
- reactor(action: EnumPostActions) {
60
- return (post: Amity.InternalPost) => {
61
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
62
-
63
- if (!collection) return;
64
-
65
- // if the collection is parent post collection and
66
- // post is not included in the collection or post is child post
67
- if (
68
- (!this.query.dataTypes || this.query.dataTypes.length === 0) &&
69
- !collection.data.includes(post.parentPostId ? post.parentPostId : post.postId)
70
- )
71
- return;
72
-
73
- if (action === EnumPostActions.OnPostDeleted) {
74
- collection.data = collection.data.filter(postId => postId !== post.postId);
75
- }
76
-
77
- if (post.parentPostId && post.isDeleted) {
78
- const parentPost = pullFromCache<Amity.InternalPost>([
79
- 'post',
80
- 'get',
81
- post.parentPostId,
82
- ])?.data;
83
-
84
- if (!parentPost) return;
85
-
86
- parentPost.children = parentPost.children.filter(childId => childId !== post.postId);
87
- pushToCache(['post', 'get', parentPost.postId], parentPost);
88
- }
89
-
90
- if (action === EnumPostActions.OnPostDeclined) {
91
- collection.data = collection.data.filter(postId => postId !== post.postId);
92
- }
93
-
94
- if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
95
- if (
96
- this.query.dataTypes &&
97
- this.query.dataTypes.length > 0 &&
98
- !this.query.dataTypes.includes(post.dataType)
99
- ) {
100
- return;
101
- }
102
-
103
- collection.data = [...new Set([post.postId, ...collection.data])];
104
- }
105
-
106
- pushToCache(this.cacheKey, collection);
107
- this.notifyChange({ origin: Amity.LiveDataOrigin.EVENT, loading: false });
108
- };
109
- }
110
-
111
- subscribeRTE(
112
- createSubscriber: {
113
- fn: (reactor: (post: Amity.InternalPost) => void) => Amity.Unsubscriber;
114
- action: EnumPostActions;
115
- }[],
116
- ) {
117
- return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
118
- }
119
- }
@@ -1,56 +0,0 @@
1
- import { getActiveClient } from '~/client/api/activeClient';
2
- import { dropFromCache } from '~/cache/api/dropFromCache';
3
- import { ENABLE_CACHE_MESSAGE } from '~/utils/constants';
4
- import { UserFeedLiveCollectionController } from './getUserFeed/LiveCollectionController';
5
-
6
- /* begin_public_function
7
- id: feed.query.user_feed
8
- */
9
- /**
10
- * ```js
11
- * import { FeedRepository } from '@amityco/ts-sdk'
12
- *
13
- * let posts = []
14
- * const unsubscribe = FeedRepository.getUserFeed({
15
- * userId: string,
16
- * feedSources: ['user', 'community'],
17
- * }, response => response => processResponse(response))
18
- * ```
19
- *
20
- * Observe all mutations on a list of {@link Amity.Post} for a given user and feedSources
21
- *
22
- * @param params.userId the ID of the user
23
- * @param params.feedSources the sources of the feed
24
- * @param callback the function to call when new data are available
25
- * @param config
26
- * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
27
- *
28
- * @category Posts Live Collection
29
- */
30
- export const getUserFeed = (
31
- params: Amity.UserFeedLiveCollection,
32
- callback: Amity.LiveCollectionCallback<Amity.Post>,
33
- config?: Amity.LiveCollectionConfig,
34
- ): Amity.Unsubscriber => {
35
- const { log, cache } = getActiveClient();
36
-
37
- if (!cache) {
38
- console.log(ENABLE_CACHE_MESSAGE);
39
- }
40
-
41
- const timestamp = Date.now();
42
- log(`getUserFeed(tmpid: ${timestamp}) > listen`);
43
-
44
- const userFeedLiveCollection = new UserFeedLiveCollectionController(params, callback);
45
- const disposers = userFeedLiveCollection.startSubscription();
46
-
47
- const cacheKey = userFeedLiveCollection.getCacheKey();
48
-
49
- disposers.push(() => dropFromCache(cacheKey));
50
-
51
- return () => {
52
- log(`getUserFeed(tmpid: ${timestamp}) > dispose`);
53
- disposers.forEach(fn => fn());
54
- };
55
- };
56
- /* end_public_function */
@@ -1 +0,0 @@
1
- export * from './getUserFeed';