@amityco/ts-sdk-react-native 6.26.3 → 6.26.4-b4d0c1f.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 (42) hide show
  1. package/.env +26 -26
  2. package/dist/@types/core/model.d.ts +5 -5
  3. package/dist/@types/core/model.d.ts.map +1 -1
  4. package/dist/@types/domains/ad.d.ts +14 -2
  5. package/dist/@types/domains/ad.d.ts.map +1 -1
  6. package/dist/@types/domains/message.d.ts +4 -1
  7. package/dist/@types/domains/message.d.ts.map +1 -1
  8. package/dist/adRepository/api/getNetworkAds.d.ts.map +1 -1
  9. package/dist/analytic/service/analytic/AnalyticsEngine.d.ts +2 -2
  10. package/dist/analytic/service/analytic/AnalyticsEngine.d.ts.map +1 -1
  11. package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts +11 -5
  12. package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts.map +1 -1
  13. package/dist/index.cjs.js +282 -263
  14. package/dist/index.esm.js +282 -263
  15. package/dist/index.umd.js +3 -3
  16. package/dist/messageRepository/api/createMessage.d.ts +7 -25
  17. package/dist/messageRepository/api/createMessage.d.ts.map +1 -1
  18. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  19. package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts +4 -4
  20. package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts.map +1 -1
  21. package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -1
  22. package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
  23. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  24. package/dist/utils/linkedObject/adLinkedObject.d.ts +1 -1
  25. package/dist/utils/linkedObject/adLinkedObject.d.ts.map +1 -1
  26. package/dist/utils/linkedObject/index.d.ts +1 -1
  27. package/package.json +1 -1
  28. package/src/@types/core/model.ts +5 -5
  29. package/src/@types/domains/ad.ts +17 -6
  30. package/src/@types/domains/message.ts +6 -1
  31. package/src/adRepository/api/getNetworkAds.ts +22 -8
  32. package/src/analytic/service/analytic/AnalyticsEngine.ts +2 -2
  33. package/src/analytic/service/analytic/AnalyticsEventCapturer.ts +45 -27
  34. package/src/core/model/idResolvers.ts +1 -1
  35. package/src/messageRepository/api/createMessage.ts +83 -98
  36. package/src/messageRepository/events/onMessageCreated.ts +12 -6
  37. package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +26 -24
  38. package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +3 -2
  39. package/src/messageRepository/observers/observeMessages.ts +3 -3
  40. package/src/messageRepository/utils/prepareMessagePayload.ts +1 -1
  41. package/src/postRepository/observers/getPost.ts +8 -1
  42. package/src/utils/linkedObject/adLinkedObject.ts +11 -11
@@ -1,3 +1,8 @@
1
+ declare type createMessageParam<T extends Amity.MessageContentType> = Pick<Amity.Message<T>, 'subChannelId' | 'parentId' | 'dataType' | 'tags' | 'metadata' | 'mentionees'> & {
2
+ data?: Amity.Message<T>['data'];
3
+ fileId?: Amity.File['fileId'];
4
+ referenceId?: string;
5
+ };
1
6
  /**
2
7
  * ```js
3
8
  * import { createMessage, createQuery, runQuery } from '@amityco/ts-sdk-react-native'
@@ -20,29 +25,6 @@
20
25
  * @category Message API
21
26
  * @async
22
27
  */
23
- export declare const createMessage: {
24
- <T extends Amity.MessageContentType>(bundle: Pick<Amity.Message<T>, "metadata" | "tags" | "subChannelId" | "parentId" | "dataType" | "mentionees"> & {
25
- data?: Amity.ContentData<T> | undefined;
26
- fileId?: string | undefined;
27
- referenceId?: string | undefined;
28
- }): Promise<Amity.Cached<Amity.Message>>;
29
- /**
30
- * ```js
31
- * import { createMessage } from '@amityco/ts-sdk-react-native'
32
- *
33
- * const created = createMessage.optimistically({
34
- * channelId: 'foobar',
35
- * data: { text: 'hello world' }
36
- * })
37
- * ```
38
- *
39
- * Creates an {@link Amity.Message} in cache
40
- *
41
- * @param bundle The data necessary to create a new {@link Amity.Message}
42
- * @returns The newly created {@link Amity.Message}
43
- *
44
- * @category Message API
45
- */
46
- optimistically({ referenceId, ...bundle }: Parameters<typeof createMessage>[0]): Amity.Cached<Amity.Message> | undefined;
47
- };
28
+ export declare const createMessage: <T extends Amity.MessageContentType>(bundle: createMessageParam<T>) => Promise<Amity.Cached<Amity.Message>>;
29
+ export {};
48
30
  //# sourceMappingURL=createMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMessage.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/api/createMessage.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa;;;;;QAmBvB,QAAQ,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC;IA6BvC;;;;;;;;;;;;;;;;OAgBG;+CAIA,WAAW,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS;CAtB/E,CAAC"}
1
+ {"version":3,"file":"createMessage.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/api/createMessage.ts"],"names":[],"mappings":"AAmBA,aAAK,kBAAkB,CAAC,CAAC,SAAS,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAChE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAChB,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,CAC9E,GAAG;IACF,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAgEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,yEAEvB,QAAQ,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,CAsCrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"onMessageCreated.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/events/onMessageCreated.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,aACrB,MAAM,QAAQ,CAAC,MAAM,eAAe,CAAC,KAC9C,MAAM,YA+BR,CAAC;AAEF,eAAO,MAAM,qBAAqB,aACtB,MAAM,QAAQ,CAAC,MAAM,eAAe,CAAC,KAC9C,MAAM,YAcR,CAAC"}
1
+ {"version":3,"file":"onMessageCreated.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/events/onMessageCreated.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,aACrB,MAAM,QAAQ,CAAC,MAAM,eAAe,CAAC,KAC9C,MAAM,YA+BR,CAAC;AAEF,eAAO,MAAM,qBAAqB,aACtB,MAAM,QAAQ,CAAC,MAAM,eAAe,CAAC,KAC9C,MAAM,YAoBR,CAAC"}
@@ -1,14 +1,14 @@
1
- import { MessagePaginationController } from './MessagePaginationController';
2
1
  import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
2
+ import { MessagePaginationController } from './MessagePaginationController';
3
3
  export declare class MessageLiveCollectionController extends LiveCollectionController<'message', Amity.MessagesLiveCollection, Amity.Message, MessagePaginationController> {
4
4
  private queryStreamController;
5
5
  private query;
6
6
  constructor(query: Amity.MessagesLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Message>);
7
- protected setup(): void;
8
- protected persistModel(response: Amity.MessagePayload & Amity.Pagination): Promise<void>;
9
- protected persistQueryStream({ response, direction, refresh, }: Amity.LiveCollectionPersistQueryStreamParams<'message'>): void;
10
7
  startSubscription(): Amity.Unsubscriber[];
11
8
  notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams): void;
12
9
  applyFilter(data: Amity.Message[]): Amity.Message<any>[];
10
+ protected setup(): void;
11
+ protected persistModel(response: Amity.MessagePayload & Amity.Pagination): Promise<void>;
12
+ protected persistQueryStream({ response, direction, refresh, }: Amity.LiveCollectionPersistQueryStreamParams<'message'>): void;
13
13
  }
14
14
  //# sourceMappingURL=MessageLiveCollectionController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageLiveCollectionController.d.ts","sourceRoot":"","sources":["../../../../src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAa5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAM1F,qBAAa,+BAAgC,SAAQ,wBAAwB,CAC3E,SAAS,EACT,KAAK,CAAC,sBAAsB,EAC5B,KAAK,CAAC,OAAO,EACb,2BAA2B,CAC5B;IACC,OAAO,CAAC,qBAAqB,CAA+B;IAE5D,OAAO,CAAC,KAAK,CAA+B;gBAG1C,KAAK,EAAE,KAAK,CAAC,sBAAsB,EACnC,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;IAqBvD,SAAS,CAAC,KAAK;cAUC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU;IAI9E,SAAS,CAAC,kBAAkB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE,KAAK,CAAC,sCAAsC,CAAC,SAAS,CAAC;IAI1D,iBAAiB;IAkBjB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,0BAA0B;IAyBzE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;CA2ClC"}
1
+ {"version":3,"file":"MessageLiveCollectionController.d.ts","sourceRoot":"","sources":["../../../../src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAM1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,+BAAgC,SAAQ,wBAAwB,CAC3E,SAAS,EACT,KAAK,CAAC,sBAAsB,EAC5B,KAAK,CAAC,OAAO,EACb,2BAA2B,CAC5B;IACC,OAAO,CAAC,qBAAqB,CAA+B;IAE5D,OAAO,CAAC,KAAK,CAA+B;gBAG1C,KAAK,EAAE,KAAK,CAAC,sBAAsB,EACnC,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;IAqBvD,iBAAiB;IAmBjB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,0BAA0B;IAyBzE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;IA4CjC,SAAS,CAAC,KAAK;cAUC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU;IAI9E,SAAS,CAAC,kBAAkB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE,KAAK,CAAC,sCAAsC,CAAC,SAAS,CAAC;CAG3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageQueryStreamController.d.ts","sourceRoot":"","sources":["../../../../src/messageRepository/observers/getMessages/MessageQueryStreamController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAKpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,4BAA6B,SAAQ,qBAAqB,CACrE,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,sBAAsB,CAC7B;IACC,OAAO,CAAC,YAAY,CAAqD;IAEzE,OAAO,CAAC,cAAc,CAEsB;IAE5C,OAAO,CAAC,oBAAoB,CAA8B;gBAGxD,KAAK,EAAE,KAAK,CAAC,sBAAsB,EACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,KAAK,IAAI,EAChE,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAC1F,oBAAoB,EAAE,2BAA2B;IAS7C,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc;IAWjD,mBAAmB,CACjB,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAC1D,SAAS,EAAE,KAAK,CAAC,2BAA2B,EAC5C,OAAO,UAAQ;IAsBjB,OAAO,CAAC,MAAM,EAAE,MAAM,aACH,MAAM,eAAe;IA4DxC,YAAY,CACV,gBAAgB,EAAE;QAChB,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;QAC3E,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE;CAIN"}
1
+ {"version":3,"file":"MessageQueryStreamController.d.ts","sourceRoot":"","sources":["../../../../src/messageRepository/observers/getMessages/MessageQueryStreamController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAKpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,4BAA6B,SAAQ,qBAAqB,CACrE,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,sBAAsB,CAC7B;IACC,OAAO,CAAC,YAAY,CAAqD;IAEzE,OAAO,CAAC,cAAc,CAEsB;IAE5C,OAAO,CAAC,oBAAoB,CAA8B;gBAGxD,KAAK,EAAE,KAAK,CAAC,sBAAsB,EACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,KAAK,IAAI,EAChE,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAC1F,oBAAoB,EAAE,2BAA2B;IAS7C,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc;IAWjD,mBAAmB,CACjB,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAC1D,SAAS,EAAE,KAAK,CAAC,2BAA2B,EAC5C,OAAO,UAAQ;IAsBjB,OAAO,CAAC,MAAM,EAAE,MAAM,aACH,MAAM,eAAe;IA6DxC,YAAY,CACV,gBAAgB,EAAE;QAChB,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;QAC3E,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE;CAIN"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareMessagePayload.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/utils/prepareMessagePayload.ts"],"names":[],"mappings":"AAYA,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,eAAe,EAAE,EAClC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,iBAAiB,GACpC,KAAK,CAAC,eAAe,CAkEvB;AAWD,eAAO,MAAM,qBAAqB,YACvB,MAAM,cAAc,UACrB,MAAM,MAAM,iBAAiB,KACpC,QAAQ,MAAM,uBAAuB,CA0CvC,CAAC;AAEF,aAAK,gBAAgB,GAAG,IAAI,CAC1B,KAAK,CAAC,aAAa,EAIjB,MAAM,GACN,QAAQ,GACR,cAAc,GACd,MAAM,GACN,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,GACV,eAAe,GACf,eAAe,CAClB,GAAG;IACF,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KACrC,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAc9C;AAED,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,KAAK,EACL,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,KAAK,CAAC,sBAAsB,GAAG,gBAAgB,CA6BjD"}
1
+ {"version":3,"file":"prepareMessagePayload.d.ts","sourceRoot":"","sources":["../../../src/messageRepository/utils/prepareMessagePayload.ts"],"names":[],"mappings":"AAWA,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,eAAe,EAAE,EAClC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,iBAAiB,GACpC,KAAK,CAAC,eAAe,CAmEvB;AAWD,eAAO,MAAM,qBAAqB,YACvB,MAAM,cAAc,UACrB,MAAM,MAAM,iBAAiB,KACpC,QAAQ,MAAM,uBAAuB,CA0CvC,CAAC;AAEF,aAAK,gBAAgB,GAAG,IAAI,CAC1B,KAAK,CAAC,aAAa,EAIjB,MAAM,GACN,QAAQ,GACR,cAAc,GACd,MAAM,GACN,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,GACV,eAAe,GACf,eAAe,CAClB,GAAG;IACF,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KACrC,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAc9C;AAED,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,KAAK,EACL,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,KAAK,CAAC,sBAAsB,GAAG,gBAAgB,CA6BjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPost.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/getPost.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,WACV,MAAM,IAAI,CAAC,QAAQ,CAAC,YAClB,MAAM,kBAAkB,CAAC,MAAM,IAAI,CAAC,KAC7C,MAAM,YAkER,CAAC"}
1
+ {"version":3,"file":"getPost.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/getPost.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,WACV,MAAM,IAAI,CAAC,QAAQ,CAAC,YAClB,MAAM,kBAAkB,CAAC,MAAM,IAAI,CAAC,KAC7C,MAAM,YAyER,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const adLinkedObject: (ad: Amity.RawAd) => Amity.Ad;
1
+ export declare const adLinkedObject: (ad: Amity.InternalAd) => Amity.Ad;
2
2
  //# sourceMappingURL=adLinkedObject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/adLinkedObject.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAK,KAAG,MAAM,EA8CtD,CAAC"}
1
+ {"version":3,"file":"adLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/adLinkedObject.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,OAAQ,MAAM,UAAU,KAAG,MAAM,EA8C3D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export declare const LinkedObject: {
2
- ad: (ad: Amity.RawAd) => Amity.Ad;
2
+ ad: (ad: Amity.InternalAd) => Amity.Ad;
3
3
  comment: (comment: Amity.InternalComment<any>) => Amity.Comment<any>;
4
4
  post: (post: Amity.InternalPost<any>) => Amity.Post<any>;
5
5
  user: (user: Amity.InternalUser) => Amity.User;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk-react-native",
3
- "version": "6.26.3",
3
+ "version": "6.26.4-b4d0c1f.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",
@@ -50,8 +50,8 @@ declare global {
50
50
 
51
51
  feed: Amity.Feed;
52
52
 
53
- ad: Pick<Amity.Ad, 'adId'>;
54
- advertiser: Pick<Amity.AdvertiserItem, 'advertiserId'>;
53
+ ad: Amity.InternalAd;
54
+ advertiser: Amity.InternalAdvertiser;
55
55
  };
56
56
 
57
57
  type Model = ValueOf<Models>;
@@ -73,7 +73,7 @@ declare global {
73
73
  channel: Pick<Amity.Channel, 'channelInternalId'>;
74
74
  subChannel: Pick<Amity.SubChannel, 'subChannelId'>;
75
75
  channelUsers: Pick<Amity.Membership<'channel'>, 'channelId' | 'userId'>;
76
- message: Pick<Amity.InternalMessage, 'messageId'>;
76
+ message: Pick<Amity.InternalMessage, 'messageId' | 'referenceId'>;
77
77
 
78
78
  messagePreviewChannel: Pick<Amity.MessagePreview, 'channelId'>;
79
79
  messagePreviewSubChannel: Pick<Amity.MessagePreview, 'subChannelId'>;
@@ -106,8 +106,8 @@ declare global {
106
106
 
107
107
  feed: Pick<Amity.Feed, 'targetId' | 'feedId'>;
108
108
 
109
- ad: Pick<Amity.Ad, 'adId'>;
110
- advertiser: Pick<Amity.AdvertiserItem, 'advertiserId'>;
109
+ ad: Pick<Amity.InternalAd, 'adId'>;
110
+ advertiser: Pick<Amity.Advertiser, 'advertiserId'>;
111
111
  };
112
112
  }
113
113
  }
@@ -33,7 +33,7 @@ declare global {
33
33
  callToActionUrl: string;
34
34
  targets: Amity.AdTarget;
35
35
  startAt: Amity.timestamp;
36
- endAt: Amity.timestamp;
36
+ endAt?: Amity.timestamp;
37
37
  createdAt: Amity.timestamp;
38
38
  updatedAt: Amity.timestamp;
39
39
  };
@@ -66,18 +66,29 @@ declare global {
66
66
  updatedAt: Amity.timestamp;
67
67
  };
68
68
 
69
+ type InternalAdvertiser = RawAdvertiser;
70
+
69
71
  type Advertiser = RawAdvertiser & {
70
72
  avatar?: Amity.File<'image'>;
71
73
  };
72
74
 
73
- type Ad = Omit<RawAd, 'image1_1' | 'image9_16'> & {
75
+ type InternalAd = Omit<RawAd, 'endAt'> & {
76
+ endAt: Amity.timestamp | null;
77
+ };
78
+
79
+ type Ad = Omit<InternalAd, 'image1_1' | 'image9_16'> & {
74
80
  advertiser?: Amity.Advertiser;
75
81
  image1_1?: Amity.File<'image'>;
76
82
  image9_16?: Amity.File<'image'>;
77
- // analytics: {
78
- // markAsSeen: (placement: Amity.AdPlacement) => void;
79
- // markLinkAsClicked: (placement: Amity.AdPlacement) => void;
80
- // };
83
+ analytics: {
84
+ markAsSeen: (placement: Amity.AdPlacement) => void;
85
+ markLinkAsClicked: (placement: Amity.AdPlacement) => void;
86
+ };
87
+ };
88
+
89
+ type InternalNetworkAds = {
90
+ ads: Amity.InternalAd[];
91
+ settings: Amity.AdsSettings;
81
92
  };
82
93
 
83
94
  type NetworkAds = {
@@ -22,6 +22,10 @@ declare global {
22
22
  | 'onReactionAdded'
23
23
  | 'onReactionRemoved';
24
24
 
25
+ type MessageOptimistic = {
26
+ syncState?: Amity.SyncState;
27
+ };
28
+
25
29
  type RawMessage<T extends Amity.MessageContentType = any> = {
26
30
  channelId: string;
27
31
  channelPublicId: string;
@@ -74,7 +78,8 @@ declare global {
74
78
  Amity.SoftDelete &
75
79
  Amity.Subscribable &
76
80
  Amity.Timestamps &
77
- Amity.Taggable;
81
+ Amity.Taggable &
82
+ Amity.MessageOptimistic;
78
83
 
79
84
  type InternalMessage<T extends Amity.MessageContentType = any> = Omit<
80
85
  Amity.Message<T>,
@@ -3,12 +3,16 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { pushToCache } from '~/cache/api';
4
4
  import { LinkedObject } from '~/utils/linkedObject';
5
5
 
6
- const convertToNetworkAds = (data: Amity.AdPayload): Amity.NetworkAds => {
7
- const { ads, settings } = data;
6
+ const convertToInternalAd = (ad: Amity.RawAd): Amity.InternalAd => {
7
+ return {
8
+ ...ad,
9
+ endAt: ad.endAt ? ad.endAt : null,
10
+ };
11
+ };
8
12
 
13
+ const convertToInternalAdvertiser = (advertiser: Amity.RawAdvertiser): Amity.InternalAdvertiser => {
9
14
  return {
10
- ads: ads.map(LinkedObject.ad),
11
- settings,
15
+ ...advertiser,
12
16
  };
13
17
  };
14
18
 
@@ -16,9 +20,19 @@ export const getNetworkAds = async (): Promise<Amity.NetworkAds> => {
16
20
  const client = getActiveClient();
17
21
 
18
22
  const { data } = await client.http.get<Amity.AdPayload>('/api/v1/ads/me');
19
- const { settings, ...rest } = data;
20
- ingestInCache(rest as Omit<Amity.AdPayload, 'settings'>);
21
- pushToCache(['ad', 'setting'], settings);
22
23
 
23
- return convertToNetworkAds(data);
24
+ const internalAds = data.ads.map(convertToInternalAd);
25
+ const internalAdvertisers = data.advertisers.map(convertToInternalAdvertiser);
26
+
27
+ ingestInCache({
28
+ ads: internalAds,
29
+ advertisers: internalAdvertisers,
30
+ files: data.files,
31
+ });
32
+ pushToCache(['ad', 'setting'], data.settings);
33
+
34
+ return {
35
+ ads: internalAds.map(LinkedObject.ad),
36
+ settings: data.settings,
37
+ };
24
38
  };
@@ -33,7 +33,7 @@ class AnalyticsEngine {
33
33
  }
34
34
  }
35
35
 
36
- markAdAsViewed(ad: Amity.RawAd, placement: Amity.AdPlacement) {
36
+ markAdAsViewed(ad: Amity.InternalAd, placement: Amity.AdPlacement) {
37
37
  if (
38
38
  this._client.sessionState === Amity.SessionStates.ESTABLISHED ||
39
39
  this._client.sessionState === Amity.SessionStates.TOKEN_EXPIRED
@@ -42,7 +42,7 @@ class AnalyticsEngine {
42
42
  }
43
43
  }
44
44
 
45
- markAdAsClicked(ad: Amity.RawAd, placement: Amity.AdPlacement) {
45
+ markAdAsClicked(ad: Amity.InternalAd, placement: Amity.AdPlacement) {
46
46
  if (
47
47
  this._client.sessionState === Amity.SessionStates.ESTABLISHED ||
48
48
  this._client.sessionState === Amity.SessionStates.TOKEN_EXPIRED
@@ -21,19 +21,19 @@ export class AnalyticsEventCapturer {
21
21
  _bufferNewSeenStoryReferenceIds: Amity.Story['referenceId'][] = [];
22
22
 
23
23
  isAbleToEnqueue({
24
- itemId,
24
+ uniqueId,
25
25
  expireTime,
26
26
  isHighPriority = false,
27
27
  }: {
28
- itemId: Amity.Post['postId'] | Amity.Story['storyId'];
28
+ uniqueId: string;
29
29
  expireTime: number;
30
30
  isHighPriority?: boolean;
31
31
  }) {
32
32
  const now = new Date();
33
33
 
34
34
  const getRecentViewedDate = () => {
35
- if (isHighPriority) return this._recentHighPriorityViewed[itemId];
36
- return this._recentViewed[itemId];
35
+ if (isHighPriority) return this._recentHighPriorityViewed[uniqueId];
36
+ return this._recentViewed[uniqueId];
37
37
  };
38
38
 
39
39
  const recentViewedDate = getRecentViewedDate() || new Date(DAY * -1);
@@ -48,13 +48,20 @@ export class AnalyticsEventCapturer {
48
48
  return true;
49
49
  }
50
50
 
51
- markAs(
52
- itemId: string,
53
- contentType: Amity.AnalyticEventContentType,
54
- activityType: Amity.AnalyticEventActivityType,
55
- metadata: Record<string, string> | undefined = undefined,
56
- ) {
57
- if (!this.isAbleToEnqueue({ itemId, expireTime: this._expireTime })) return;
51
+ markAs({
52
+ uniqueId,
53
+ contentId,
54
+ contentType,
55
+ activityType,
56
+ metadata,
57
+ }: {
58
+ uniqueId: string;
59
+ contentId: string;
60
+ contentType: Amity.AnalyticEventContentType;
61
+ activityType: Amity.AnalyticEventActivityType;
62
+ metadata?: Record<string, string>;
63
+ }) {
64
+ if (!this.isAbleToEnqueue({ uniqueId, expireTime: this._expireTime })) return;
58
65
 
59
66
  const now = new Date();
60
67
 
@@ -72,7 +79,7 @@ export class AnalyticsEventCapturer {
72
79
  }
73
80
 
74
81
  const analyticItem: Amity.AnalyticEventModel = {
75
- contentId: itemId,
82
+ contentId,
76
83
  contentType,
77
84
  activityType,
78
85
  timestamp: now.toISOString(),
@@ -85,11 +92,16 @@ export class AnalyticsEventCapturer {
85
92
  currentData.event.push(analyticItem);
86
93
 
87
94
  upsertInCache(ANALYTIC_CACHE_KEY, currentData);
88
- this._recentViewed[itemId] = now;
95
+ this._recentViewed[uniqueId] = now;
89
96
  }
90
97
 
91
98
  markPostAsViewed(postId: Amity.InternalPost['postId']) {
92
- this.markAs(postId, Amity.AnalyticEventContentType.Post, Amity.AnalyticEventActivityType.View);
99
+ this.markAs({
100
+ uniqueId: postId,
101
+ contentId: postId,
102
+ contentType: Amity.AnalyticEventContentType.Post,
103
+ activityType: Amity.AnalyticEventActivityType.View,
104
+ });
93
105
  }
94
106
 
95
107
  markStory(story: Amity.InternalStory, activityType: Amity.AnalyticEventActivityType) {
@@ -99,7 +111,7 @@ export class AnalyticsEventCapturer {
99
111
 
100
112
  if (
101
113
  !this.isAbleToEnqueue({
102
- itemId: story.storyId,
114
+ uniqueId: story.storyId,
103
115
  expireTime: expireTime.getTime(),
104
116
  isHighPriority: true,
105
117
  })
@@ -179,29 +191,35 @@ export class AnalyticsEventCapturer {
179
191
  this.markStory(story, Amity.AnalyticEventActivityType.Click);
180
192
  }
181
193
 
182
- markAdAsViewed(ad: Amity.RawAd, placement: Amity.AdPlacement) {
194
+ markAdAsViewed(ad: Amity.InternalAd, placement: Amity.AdPlacement) {
183
195
  const metadata = {
184
196
  placement,
185
197
  };
186
198
 
187
- this.markAs(
188
- `${ad.adId}.${Amity.AnalyticEventActivityType.View}.${placement}`,
189
- Amity.AnalyticEventContentType.Ad,
190
- Amity.AnalyticEventActivityType.View,
199
+ const activityType = Amity.AnalyticEventActivityType.View;
200
+
201
+ this.markAs({
202
+ uniqueId: `${ad.adId}.${activityType}.${placement}`,
203
+ contentId: ad.adId,
204
+ contentType: Amity.AnalyticEventContentType.Ad,
205
+ activityType,
191
206
  metadata,
192
- );
207
+ });
193
208
  }
194
209
 
195
- markAdAsClicked(ad: Amity.RawAd, placement: Amity.AdPlacement) {
210
+ markAdAsClicked(ad: Amity.InternalAd, placement: Amity.AdPlacement) {
196
211
  const metadata = {
197
212
  placement,
198
213
  };
199
214
 
200
- this.markAs(
201
- `${ad.adId}.${Amity.AnalyticEventActivityType.View}.${placement}`,
202
- Amity.AnalyticEventContentType.Ad,
203
- Amity.AnalyticEventActivityType.Click,
215
+ const activityType = Amity.AnalyticEventActivityType.Click;
216
+
217
+ this.markAs({
218
+ uniqueId: `${ad.adId}.${activityType}.${placement}`,
219
+ contentId: ad.adId,
220
+ contentType: Amity.AnalyticEventContentType.Ad,
221
+ activityType,
204
222
  metadata,
205
- );
223
+ });
206
224
  }
207
225
  }
@@ -18,7 +18,7 @@ const idResolvers: Resolvers = {
18
18
  channel: ({ channelInternalId }) => channelInternalId,
19
19
  subChannel: ({ subChannelId }) => subChannelId,
20
20
  channelUsers: ({ channelId, userId }) => `${channelId}#${userId}`,
21
- message: ({ messageId }) => messageId,
21
+ message: ({ messageId, referenceId }) => referenceId ?? messageId,
22
22
 
23
23
  messagePreviewChannel: ({ channelId }) => `${channelId}`,
24
24
  messagePreviewSubChannel: ({ subChannelId }) => `${subChannelId}`,
@@ -3,10 +3,10 @@ import { fireEvent } from '~/core/events';
3
3
  import { getActiveClient, getActiveUser } from '~/client/api';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
  import { UNSYNCED_OBJECT_CACHED_AT_VALUE } from '~/utils/constants';
6
- import { upsertInCache, pullFromCache, pushToCache, dropFromCache } from '~/cache/api';
6
+ import { dropFromCache, pullFromCache, pushToCache, upsertInCache } from '~/cache/api';
7
7
 
8
- import { convertParams, prepareMessagePayload } from '../utils';
9
8
  import { LinkedObject } from '~/utils/linkedObject';
9
+ import { convertParams, prepareMessagePayload } from '../utils';
10
10
 
11
11
  const getLocalId = () => `LOCAL_${uuid()}`;
12
12
 
@@ -16,109 +16,32 @@ let uniqueId: string | undefined;
16
16
  /* begin_public_function
17
17
  id: message.create.text_message, message.create.image_message, message.create.file_message, message.create.video_message, message.create.audio_message, message.create.custom_message
18
18
  */
19
- /**
20
- * ```js
21
- * import { createMessage, createQuery, runQuery } from '@amityco/ts-sdk-react-native'
22
- *
23
- * const query = createQuery(createMessage, {
24
- * subChannelId: 'foobar',
25
- * data: { text: 'hello world' },
26
- * });
27
- *
28
- * runQuery(query, ({ data: message, loading }) => {
29
- * console.log(message);
30
- * });
31
- * ```
32
- *
33
- * Creates an {@link Amity.Message}
34
- *
35
- * @param bundle The data necessary to create a new {@link Amity.Message}
36
- * @returns The newly created {@link Amity.Message}
37
- *
38
- * @category Message API
39
- * @async
40
- */
41
- export const createMessage = async <T extends Amity.MessageContentType>(
42
- bundle: Pick<
43
- Amity.Message<T>,
44
- 'subChannelId' | 'parentId' | 'dataType' | 'tags' | 'metadata' | 'mentionees'
45
- > & {
46
- data?: Amity.Message<T>['data'];
47
- fileId?: Amity.File['fileId'];
48
- // Custom referenceId is a workaround for the case:
49
- // User wants to create an image message. He should
50
- // - create and show dummy message in ui
51
- // - upload image to get fileId, while uploading show a spinner in dummy message in ui
52
- // - call createMessage and pass fileId
53
- // - replace dummy message with the actual message received from backend
54
- // Custom referenceId is needed to make relation between dummy message and actual message.
55
- // TODO: passing file src into createMessage so that sdk uploads files itself,
56
- // returns the dummy message bound with the file to eliminate the need to create
57
- // the dummy message on the user side,
58
- referenceId?: string;
59
- },
60
- ): Promise<Amity.Cached<Amity.Message>> => {
61
- const client = getActiveClient();
62
- client.log('message/createMessage', bundle);
63
-
64
- const referenceId = bundle.referenceId || uniqueId || getLocalId();
65
- uniqueId = undefined;
66
-
67
- const { data: payload } = await client.http.post<Amity.MessagePayload>('/api/v5/messages', {
68
- ...convertParams(bundle),
69
- referenceId,
70
- });
71
-
72
- const data = await prepareMessagePayload(payload);
73
- const { messages } = data;
74
-
75
- const cachedAt = client.cache && Date.now();
76
- if (client.cache) {
77
- dropFromCache(['message', 'get', referenceId]);
78
- ingestInCache(data, { cachedAt });
79
- }
80
-
81
- fireEvent('local.message.created', { messages });
82
19
 
83
- return {
84
- data: LinkedObject.message(messages[0]),
85
- cachedAt,
86
- };
20
+ type createMessageParam<T extends Amity.MessageContentType> = Pick<
21
+ Amity.Message<T>,
22
+ 'subChannelId' | 'parentId' | 'dataType' | 'tags' | 'metadata' | 'mentionees'
23
+ > & {
24
+ data?: Amity.Message<T>['data'];
25
+ fileId?: Amity.File['fileId'];
26
+ referenceId?: string;
87
27
  };
88
28
 
89
- /**
90
- * ```js
91
- * import { createMessage } from '@amityco/ts-sdk-react-native'
92
- *
93
- * const created = createMessage.optimistically({
94
- * channelId: 'foobar',
95
- * data: { text: 'hello world' }
96
- * })
97
- * ```
98
- *
99
- * Creates an {@link Amity.Message} in cache
100
- *
101
- * @param bundle The data necessary to create a new {@link Amity.Message}
102
- * @returns The newly created {@link Amity.Message}
103
- *
104
- * @category Message API
105
- */
106
- createMessage.optimistically = ({
107
- referenceId,
108
- ...bundle
109
- }: Parameters<typeof createMessage>[0]): Amity.Cached<Amity.Message> | undefined => {
29
+ const createMessageOptimistic = <T extends Amity.MessageContentType>(
30
+ bundle: createMessageParam<T>,
31
+ ): Amity.InternalMessage | undefined => {
110
32
  const client = getActiveClient();
111
33
 
112
34
  if (!client.cache) return;
113
35
 
114
36
  /*
115
- * when creating messages optimistically a messageId needs to be added by the
116
- * client, created a new variable so as to allow backward compatibility of API
37
+ * When creating messages optimistically a messageId needs to be added by the
38
+ * client, created a new variable to allow backward compatibility of API
117
39
  *
118
40
  * Updated to handle client requirement to add messageId while uploading
119
- * message with image. Temporary!
41
+ * a message with image.
42
+ * Temporary!
120
43
  */
121
- uniqueId = referenceId || getLocalId();
44
+ uniqueId = bundle.referenceId || getLocalId();
122
45
  const bundleWithMessageId = { messageId: uniqueId, uniqueId, ...bundle };
123
46
 
124
47
  client.log('message/createMessage.optimistically', bundleWithMessageId);
@@ -153,6 +76,8 @@ createMessage.optimistically = ({
153
76
  childrenNumber: 0,
154
77
  createdAt: createdTime,
155
78
  updatedAt: createdTime,
79
+ syncState: Amity.SyncState.Syncing,
80
+ isDeleted: false,
156
81
  ...bundleWithMessageId,
157
82
  } as Amity.InternalMessage;
158
83
 
@@ -161,9 +86,69 @@ createMessage.optimistically = ({
161
86
  pushToCache(['message', 'get', message.messageId], message, { cachedAt });
162
87
  fireEvent('local.message.created', { messages: [message] });
163
88
 
164
- return {
165
- cachedAt,
166
- data: LinkedObject.message(message),
167
- };
89
+ return message;
90
+ };
91
+ /**
92
+ * ```js
93
+ * import { createMessage, createQuery, runQuery } from '@amityco/ts-sdk-react-native'
94
+ *
95
+ * const query = createQuery(createMessage, {
96
+ * subChannelId: 'foobar',
97
+ * data: { text: 'hello world' },
98
+ * });
99
+ *
100
+ * runQuery(query, ({ data: message, loading }) => {
101
+ * console.log(message);
102
+ * });
103
+ * ```
104
+ *
105
+ * Creates an {@link Amity.Message}
106
+ *
107
+ * @param bundle The data necessary to create a new {@link Amity.Message}
108
+ * @returns The newly created {@link Amity.Message}
109
+ *
110
+ * @category Message API
111
+ * @async
112
+ */
113
+ export const createMessage = async <T extends Amity.MessageContentType>(
114
+ bundle: createMessageParam<T>,
115
+ ): Promise<Amity.Cached<Amity.Message>> => {
116
+ const client = getActiveClient();
117
+ client.log('message/createMessage', bundle);
118
+
119
+ const optimisticData = createMessageOptimistic<T>(bundle);
120
+
121
+ const referenceId = bundle.referenceId || uniqueId || getLocalId();
122
+ uniqueId = undefined;
123
+
124
+ try {
125
+ const { data: payload } = await client.http.post<Amity.MessagePayload>('/api/v5/messages', {
126
+ ...convertParams(bundle),
127
+ referenceId,
128
+ });
129
+
130
+ const data = await prepareMessagePayload(payload);
131
+ const { messages } = data;
132
+
133
+ const cachedAt = client.cache && Date.now();
134
+ if (client.cache) {
135
+ ingestInCache(data, { cachedAt });
136
+ }
137
+
138
+ fireEvent('local.message.created', {
139
+ messages: [{ ...messages[0], syncState: Amity.SyncState.Synced }],
140
+ });
141
+
142
+ return {
143
+ data: LinkedObject.message(messages[0]),
144
+ cachedAt,
145
+ };
146
+ } catch (e) {
147
+ fireEvent('local.message.created', {
148
+ messages: [{ ...optimisticData, syncState: Amity.SyncState.Error } as Amity.InternalMessage],
149
+ });
150
+
151
+ throw e;
152
+ }
168
153
  };
169
154
  /* end_public_function */