@amityco/ts-sdk-react-native 7.8.4-aa55e14.0 → 7.8.5-4bb97e7.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 (61) hide show
  1. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/core/payload.d.ts +1 -1
  2. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/core/payload.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/core/payload.js.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/domains/message.d.ts +4 -0
  5. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/domains/message.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/domains/message.js.map +1 -1
  7. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/categoryRepository/internalApi/queryCategories.js +2 -2
  8. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/categoryRepository/internalApi/queryCategories.js.map +1 -1
  9. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/addReactionToMessage.d.ts +2 -0
  10. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/addReactionToMessage.d.ts.map +1 -0
  11. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/addReactionToMessage.js +6 -0
  12. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/addReactionToMessage.js.map +1 -0
  13. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/removeReactionToMessage.d.ts +2 -0
  14. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/removeReactionToMessage.d.ts.map +1 -0
  15. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/removeReactionToMessage.js +6 -0
  16. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/messageRepository/utils/removeReactionToMessage.js.map +1 -0
  17. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/addReaction.d.ts +5 -0
  18. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/addReaction.d.ts.map +1 -0
  19. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/addReaction.js +92 -0
  20. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/addReaction.js.map +1 -0
  21. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/index.d.ts +3 -0
  22. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/index.d.ts.map +1 -0
  23. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/index.js +3 -0
  24. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/index.js.map +1 -0
  25. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/removeReaction.d.ts +2 -0
  26. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/removeReaction.d.ts.map +1 -0
  27. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/removeReaction.js +68 -0
  28. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/reactionRepository/internalApi/removeReaction.js.map +1 -0
  29. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/utils/linkedObject/messageLinkedObject.d.ts.map +1 -1
  30. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/utils/linkedObject/messageLinkedObject.js +3 -1
  31. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/utils/linkedObject/messageLinkedObject.js.map +1 -1
  32. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  33. package/dist/@types/core/payload.d.ts +1 -1
  34. package/dist/@types/core/payload.d.ts.map +1 -1
  35. package/dist/@types/domains/message.d.ts +4 -0
  36. package/dist/@types/domains/message.d.ts.map +1 -1
  37. package/dist/index.cjs.js +189 -29
  38. package/dist/index.esm.js +189 -29
  39. package/dist/index.umd.js +2 -2
  40. package/dist/messageRepository/utils/addReactionToMessage.d.ts +2 -0
  41. package/dist/messageRepository/utils/addReactionToMessage.d.ts.map +1 -0
  42. package/dist/messageRepository/utils/removeReactionToMessage.d.ts +2 -0
  43. package/dist/messageRepository/utils/removeReactionToMessage.d.ts.map +1 -0
  44. package/dist/reactionRepository/internalApi/addReaction.d.ts +5 -0
  45. package/dist/reactionRepository/internalApi/addReaction.d.ts.map +1 -0
  46. package/dist/reactionRepository/internalApi/index.d.ts +3 -0
  47. package/dist/reactionRepository/internalApi/index.d.ts.map +1 -0
  48. package/dist/reactionRepository/internalApi/removeReaction.d.ts +2 -0
  49. package/dist/reactionRepository/internalApi/removeReaction.d.ts.map +1 -0
  50. package/dist/utils/linkedObject/messageLinkedObject.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/src/@types/core/payload.ts +1 -1
  53. package/src/@types/domains/message.ts +4 -0
  54. package/src/categoryRepository/internalApi/queryCategories.ts +2 -2
  55. package/src/messageRepository/utils/addReactionToMessage.ts +12 -0
  56. package/src/messageRepository/utils/removeReactionToMessage.ts +12 -0
  57. package/src/reactionRepository/internalApi/addReaction.ts +137 -0
  58. package/src/reactionRepository/internalApi/index.ts +2 -0
  59. package/src/reactionRepository/internalApi/removeReaction.ts +95 -0
  60. package/src/utils/linkedObject/messageLinkedObject.ts +4 -0
  61. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,2 @@
1
+ export declare const addReactionToMessage: (reactionName: string, message: Amity.InternalMessage) => Promise<boolean>;
2
+ //# sourceMappingURL=addReactionToMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addReactionToMessage.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/utils/addReactionToMessage.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,WAAW,MAAM,eAAe,qBASxF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const removeReactionToMessage: (reactionName: string, message: Amity.InternalMessage) => Promise<boolean>;
2
+ //# sourceMappingURL=removeReactionToMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeReactionToMessage.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/utils/removeReactionToMessage.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,WAAW,MAAM,eAAe,qBAS3F,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const addReaction: {
2
+ (referenceType: Amity.Reaction['referenceType'], referenceId: Amity.Reaction['referenceId'], reactionName: Amity.InternalReactor['reactionName'], referenceVersion?: number): Promise<boolean>;
3
+ optimistically(referenceType: Amity.ReactableType, referenceId: Amity.Reaction['referenceId'], reactionName: Amity.InternalReactor['reactionName']): boolean | undefined;
4
+ };
5
+ //# sourceMappingURL=addReaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addReaction.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/internalApi/addReaction.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,WAAW;oBACP,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,eAAe,CAAC,cAAc,CAAC,qBAChC,MAAM,GACxB,QAAQ,OAAO,CAAC;kCAoFF,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,eAAe,CAAC,cAAc,CAAC,GAClD,OAAO,GAAG,SAAS;CANrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './addReaction';
2
+ export * from './removeReaction';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/internalApi/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const removeReaction: (referenceType: Amity.Reaction['referenceType'], referenceId: Amity.Reaction['referenceId'], reactionName: Amity.InternalReactor['reactionName'], referenceVersion?: number) => Promise<boolean>;
2
+ //# sourceMappingURL=removeReaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeReaction.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/internalApi/removeReaction.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,kBACV,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,eAAe,CAAC,cAAc,CAAC,qBAChC,MAAM,KACxB,QAAQ,OAAO,CAoFjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"messageLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/messageLinkedObject.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAe1E,CAAC"}
1
+ {"version":3,"file":"messageLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/messageLinkedObject.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAiB1E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk-react-native",
3
- "version": "7.8.4-aa55e14.0",
3
+ "version": "7.8.5-4bb97e7.0",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -330,7 +330,7 @@ declare global {
330
330
  };
331
331
 
332
332
  type CategoryPayload = {
333
- categories: Amity.InternalCategory[];
333
+ categories?: Amity.InternalCategory[];
334
334
  files: Amity.File[];
335
335
  };
336
336
 
@@ -39,6 +39,7 @@ declare global {
39
39
  Amity.ChannelMention | (Amity.UserMention & { userPublicIds: string[] })
40
40
  >;
41
41
  messageFeedId: Amity.RawSubChannel['messageFeedId'];
42
+ publicId: string;
42
43
  messageId: string;
43
44
  myReactions?: string[];
44
45
  parentId?: string;
@@ -64,6 +65,7 @@ declare global {
64
65
  editedAt?: Amity.timestamp;
65
66
  parentId?: string;
66
67
  messageId: string;
68
+ publicId: string;
67
69
  subChannelId: Amity.SubChannel['subChannelId'];
68
70
  channelType: Amity.Channel['type'];
69
71
  uniqueId: string;
@@ -71,6 +73,8 @@ declare global {
71
73
  deliveredCount: number;
72
74
  referenceId?: string;
73
75
  markRead: () => void;
76
+ addReaction: (reactionName: string) => Promise<boolean>;
77
+ removeReaction: (reactionName: string) => Promise<boolean>;
74
78
  } & Amity.Content<T> &
75
79
  Amity.Flaggable &
76
80
  Amity.Mentionable<'user' | 'channel'> &
@@ -47,11 +47,11 @@ export const queryCategories = async (
47
47
  'query',
48
48
  { ...params, includeDeleted, options } as Amity.Serializable,
49
49
  ];
50
- pushToCache(cacheKey, { categories: categories.map(getResolver('category')), paging });
50
+ pushToCache(cacheKey, { categories: categories?.map(getResolver('category')), paging });
51
51
  }
52
52
 
53
53
  return {
54
- data: categories,
54
+ data: categories ?? [],
55
55
  cachedAt,
56
56
  paging,
57
57
  };
@@ -0,0 +1,12 @@
1
+ import { addReaction as _addReaction } from '~/reactionRepository/internalApi';
2
+
3
+ export const addReactionToMessage = (reactionName: string, message: Amity.InternalMessage) => {
4
+ const isMessageV3 = message.publicId !== message.messageId;
5
+
6
+ return _addReaction(
7
+ 'message',
8
+ isMessageV3 ? message.publicId : message.messageId,
9
+ reactionName,
10
+ isMessageV3 ? 3 : 5,
11
+ );
12
+ };
@@ -0,0 +1,12 @@
1
+ import { removeReaction as _removeReaction } from '~/reactionRepository/internalApi';
2
+
3
+ export const removeReactionToMessage = (reactionName: string, message: Amity.InternalMessage) => {
4
+ const isMessageV3 = message.publicId !== message.messageId;
5
+
6
+ return _removeReaction(
7
+ 'message',
8
+ isMessageV3 ? message.publicId : message.messageId,
9
+ reactionName,
10
+ isMessageV3 ? 3 : 5,
11
+ );
12
+ };
@@ -0,0 +1,137 @@
1
+ import { getActiveClient } from '~/client/api';
2
+
3
+ import { upsertInCache, pullFromCache } from '~/cache/api';
4
+
5
+ import { UNSYNCED_OBJECT_CACHED_AT_VALUE } from '~/utils/constants';
6
+ import { dispatchReactable } from '../utils/dispatchReactable';
7
+ import { fireEvent } from '~/core/events';
8
+ import { ASCApiError } from '~/core/errors';
9
+
10
+ export const addReaction = async (
11
+ referenceType: Amity.Reaction['referenceType'],
12
+ referenceId: Amity.Reaction['referenceId'],
13
+ reactionName: Amity.InternalReactor['reactionName'],
14
+ referenceVersion?: number,
15
+ ): Promise<boolean> => {
16
+ const client = getActiveClient();
17
+ client.log('reaction/createReaction', {
18
+ referenceId,
19
+ referenceType,
20
+ reactionName,
21
+ });
22
+
23
+ if (!['post', 'comment', 'story', 'message'].includes(referenceType))
24
+ throw new ASCApiError(
25
+ 'The reference type is not valid. It should be one of post, comment, story, or message',
26
+ Amity.ServerError.BAD_REQUEST,
27
+ Amity.ErrorLevel.ERROR,
28
+ );
29
+
30
+ const { data } = await client.http.post<{ addedId: 'string' }>('/api/v2/reactions', {
31
+ referenceId,
32
+ referenceType,
33
+ reactionName,
34
+ referenceVersion,
35
+ });
36
+
37
+ if (client.cache) {
38
+ const model = pullFromCache<Amity.Models[Amity.ReactableType]>([
39
+ referenceType,
40
+ 'get',
41
+ referenceId,
42
+ ]);
43
+
44
+ if (!model || model.data.myReactions?.includes(reactionName)) return true;
45
+
46
+ const updatedModel = {
47
+ ...model.data,
48
+ reactionsCount: model.data.reactionsCount + 1,
49
+ myReactions: [...(model.data.myReactions ?? []), reactionName],
50
+ reactions: {
51
+ ...model.data.reactions,
52
+ [reactionName]: (model.data.reactions[reactionName] ?? 0) + 1,
53
+ },
54
+ updatedAt: new Date().toISOString(),
55
+ } as Amity.Models[Amity.ReactableType];
56
+
57
+ if (referenceType === 'comment') {
58
+ fireEvent('local.comment.addReaction', {
59
+ comment: updatedModel as Amity.InternalComment,
60
+ reactor: {
61
+ userId: client.userId!,
62
+ reactionName,
63
+ reactionId: data.addedId,
64
+ },
65
+ });
66
+
67
+ return true;
68
+ }
69
+ if (referenceType === 'post') {
70
+ fireEvent('local.post.addReaction', {
71
+ post: updatedModel as Amity.InternalPost,
72
+ reactor: {
73
+ userId: client.userId!,
74
+ reactionName,
75
+ reactionId: data.addedId,
76
+ },
77
+ });
78
+
79
+ return true;
80
+ }
81
+ if (referenceType === 'story') {
82
+ fireEvent('local.story.reactionAdded', {
83
+ story: updatedModel as Amity.InternalStory,
84
+ reactor: {
85
+ userId: client.userId!,
86
+ reactionName,
87
+ reactionId: data.addedId,
88
+ },
89
+ });
90
+
91
+ return true;
92
+ }
93
+ }
94
+
95
+ return true;
96
+ };
97
+
98
+ addReaction.optimistically = (
99
+ referenceType: Amity.ReactableType,
100
+ referenceId: Amity.Reaction['referenceId'],
101
+ reactionName: Amity.InternalReactor['reactionName'],
102
+ ): boolean | undefined => {
103
+ const client = getActiveClient();
104
+ client.log('reaction/createReaction.optimistically', {
105
+ referenceId,
106
+ referenceType,
107
+ reactionName,
108
+ });
109
+
110
+ if (!client.cache) return;
111
+
112
+ const model = pullFromCache<Amity.Models[Amity.ReactableType]>([
113
+ referenceType,
114
+ 'get',
115
+ referenceId,
116
+ ]);
117
+
118
+ if (!model?.data || model.data.myReactions?.includes(reactionName)) return;
119
+
120
+ const reaction = {
121
+ ...model.data,
122
+ reactionsCount: model.data.reactionsCount + 1,
123
+ myReactions: [...(model.data.myReactions ?? []), reactionName],
124
+ reactions: {
125
+ ...model.data.reactions,
126
+ [reactionName]: (model.data.reactions[reactionName] ?? 0) + 1,
127
+ },
128
+ } as Amity.Models[Amity.ReactableType];
129
+
130
+ upsertInCache([referenceType, 'get', referenceId], reaction, {
131
+ cachedAt: UNSYNCED_OBJECT_CACHED_AT_VALUE,
132
+ });
133
+
134
+ dispatchReactable(referenceType, reaction);
135
+
136
+ return reaction?.myReactions?.includes(reactionName) ?? false;
137
+ };
@@ -0,0 +1,2 @@
1
+ export * from './addReaction';
2
+ export * from './removeReaction';
@@ -0,0 +1,95 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { pullFromCache } from '~/cache/api';
3
+ import { fireEvent } from '~/core/events';
4
+ import { ASCApiError } from '~/core/errors';
5
+
6
+ export const removeReaction = async (
7
+ referenceType: Amity.Reaction['referenceType'],
8
+ referenceId: Amity.Reaction['referenceId'],
9
+ reactionName: Amity.InternalReactor['reactionName'],
10
+ referenceVersion?: number,
11
+ ): Promise<boolean> => {
12
+ const client = getActiveClient();
13
+ client.log('reaction/removeReaction', {
14
+ referenceId,
15
+ referenceType,
16
+ reactionName,
17
+ });
18
+
19
+ if (!['post', 'comment', 'story', 'message'].includes(referenceType))
20
+ throw new ASCApiError(
21
+ 'The reference type is not valid. It should be one of post, comment, story, or message',
22
+ Amity.ServerError.BAD_REQUEST,
23
+ Amity.ErrorLevel.ERROR,
24
+ );
25
+
26
+ const { data } = await client.http.delete<{ removedId: string }>(`/api/v2/reactions`, {
27
+ data: {
28
+ referenceId,
29
+ referenceType,
30
+ reactionName,
31
+ referenceVersion,
32
+ },
33
+ });
34
+
35
+ if (client.cache) {
36
+ const model = pullFromCache<Amity.Models[Amity.ReactableType]>([
37
+ referenceType,
38
+ 'get',
39
+ referenceId,
40
+ ]);
41
+
42
+ if (!model) return true;
43
+
44
+ const updatedModel = {
45
+ ...model.data,
46
+ reactionsCount: Math.max(0, model.data.reactionsCount - 1),
47
+ myReactions: (model.data.myReactions ?? []).filter(item => item !== reactionName),
48
+ reactions: {
49
+ ...model.data.reactions,
50
+ [reactionName]: Math.max(0, (model.data.reactions[reactionName] ?? 0) - 1),
51
+ },
52
+ updatedAt: new Date().toISOString(),
53
+ } as Amity.Models[Amity.ReactableType];
54
+
55
+ if (referenceType === 'comment') {
56
+ fireEvent('local.comment.removeReaction', {
57
+ comment: updatedModel as Amity.InternalComment,
58
+ reactor: {
59
+ reactionId: data.removedId,
60
+ reactionName,
61
+ userId: client.userId!,
62
+ },
63
+ });
64
+
65
+ return true;
66
+ }
67
+ if (referenceType === 'post') {
68
+ fireEvent('local.post.removeReaction', {
69
+ post: updatedModel as Amity.InternalPost,
70
+ reactor: {
71
+ reactionId: data.removedId,
72
+ reactionName,
73
+ userId: client.userId!,
74
+ },
75
+ });
76
+
77
+ return true;
78
+ }
79
+
80
+ if (referenceType === 'story') {
81
+ fireEvent('local.story.reactionAdded', {
82
+ story: updatedModel as Amity.InternalStory,
83
+ reactor: {
84
+ userId: client.userId!,
85
+ reactionName,
86
+ reactionId: data.removedId,
87
+ },
88
+ });
89
+
90
+ return true;
91
+ }
92
+ }
93
+
94
+ return true;
95
+ };
@@ -1,6 +1,8 @@
1
1
  import { pullFromCache } from '~/cache/api';
2
+ import { addReactionToMessage } from '~/messageRepository/utils/addReactionToMessage';
2
3
  import { getMessageReadCount } from '~/messageRepository/utils/getMessageReadCount';
3
4
  import { markReadMessage } from '~/messageRepository/utils/markReadMessage';
5
+ import { removeReactionToMessage } from '~/messageRepository/utils/removeReactionToMessage';
4
6
 
5
7
  export const messageLinkedObject = (message: Amity.InternalMessage): Amity.Message => {
6
8
  const { creatorPrivateId, ...rest } = message;
@@ -16,5 +18,7 @@ export const messageLinkedObject = (message: Amity.InternalMessage): Amity.Messa
16
18
  return pullFromCache<Amity.InternalUser>(['user', 'get', message.creatorId])?.data;
17
19
  },
18
20
  markRead: () => markReadMessage(message),
21
+ addReaction: (reactionName: string) => addReactionToMessage(reactionName, message),
22
+ removeReaction: (reactionName: string) => removeReactionToMessage(reactionName, message),
19
23
  };
20
24
  };