@vserifsaglam/chat-react-client 1.0.2 → 1.0.3

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.
@@ -1,4 +1,4 @@
1
- import { AuthConfig, Conversation, ConversationSearchResult, MessagesResponse, SendMessageRequest, SendMessageResponse, MarkConversationReadResponse, UpdateMessageRequest, UpdateMessageResponse, DeleteMessageResponse, FileUploadResponse, ApiResponse, BanClientRequest, UnbanClientRequest, AdminBanClientRequest, AdminUnbanClientRequest, BanStatusResponse, ClientProfileResponse, ClientPreferencesResponse, UpdatePreferencesRequest, UpdatePreferencesResponse } from '../types';
1
+ import { AuthConfig, Conversation, ConversationSearchResult, MessagesResponse, SendMessageRequest, SendMessageResponse, MarkConversationReadResponse, UpdateMessageRequest, UpdateMessageResponse, DeleteMessageResponse, FileUploadResponse, ApiResponse, BanClientRequest, UnbanClientRequest, AdminBanClientRequest, AdminUnbanClientRequest, BanStatusResponse, ClientProfileResponse, ClientPreferencesResponse, UpdatePreferencesRequest, UpdatePreferencesResponse, RemainingLimitResponse } from '../types';
2
2
  /**
3
3
  * Chat API client for making requests to the chat backend
4
4
  */
@@ -97,6 +97,15 @@ export declare class ChatApi {
97
97
  * @returns A promise that resolves to a delete message response
98
98
  */
99
99
  deleteMessage(messageId: number): Promise<DeleteMessageResponse>;
100
+ /**
101
+ * Get remaining message limit
102
+ * @param params Query with receiver_client_id or conversation_uid
103
+ * @returns A promise that resolves to a remaining limit response
104
+ */
105
+ getRemainingLimit(params: {
106
+ receiver_client_id?: string;
107
+ conversation_uid?: string;
108
+ }): Promise<RemainingLimitResponse>;
100
109
  /**
101
110
  * Upload a file
102
111
  * @param file The file to upload
@@ -138,6 +147,15 @@ export declare class ChatApi {
138
147
  * @returns A promise that resolves to a client profile response
139
148
  */
140
149
  getClientProfile(): Promise<ClientProfileResponse>;
150
+ /**
151
+ * Get the preferences of the authenticated client
152
+ * @returns A promise that resolves to a client preferences response
153
+ */
141
154
  getClientPreferences(): Promise<ClientPreferencesResponse>;
155
+ /**
156
+ * Update client preferences
157
+ * @param request The update preferences request
158
+ * @returns A promise that resolves to an update preferences response
159
+ */
142
160
  updateClientPreferences(request: UpdatePreferencesRequest): Promise<UpdatePreferencesResponse>;
143
161
  }
@@ -6,7 +6,7 @@ export declare function useMessageManagement(selectedConversationId: string): {
6
6
  fileLoading: boolean;
7
7
  uploadProgress: number;
8
8
  uploadFile: (file: File) => Promise<import("..").FileUploadResponse | null>;
9
- handleSendMessage: (content: string, receiver: SenderReceiverUser) => Promise<boolean | undefined>;
9
+ handleSendMessage: (content: string, receiver: SenderReceiverUser) => Promise<any>;
10
10
  handleSendFileMessage: (content: string, fileId: number, receiver: SenderReceiverUser, filename?: string | undefined, url?: string | undefined) => Promise<boolean | undefined>;
11
11
  deleteMessage: (messageId: number) => Promise<import("..").DeleteMessageResponse | null>;
12
12
  updateMessage: (messageId: number, update: import("..").UpdateMessageRequest) => Promise<import("..").UpdateMessageResponse | null>;
@@ -16,4 +16,5 @@ export declare function useMessageManagement(selectedConversationId: string): {
16
16
  setMessages: import("react").Dispatch<import("react").SetStateAction<import("..").MessagesResponse | null>>;
17
17
  preferences: import("..").ClientPreferences | null;
18
18
  updatePreferences: (enableRead: boolean) => Promise<boolean>;
19
+ getRemainingLimit: (receiverClientId?: string | undefined, conversationId?: any) => Promise<import("..").RemainingLimitResponse | null>;
19
20
  };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { MessagesResponse, SendMessageRequest, SendMessageResponse, MarkConversationReadResponse, UpdateMessageRequest, UpdateMessageResponse, DeleteMessageResponse, ApiResponse, Message, ClientPreferences } from '../types';
2
+ import { MessagesResponse, SendMessageRequest, SendMessageResponse, MarkConversationReadResponse, UpdateMessageRequest, UpdateMessageResponse, DeleteMessageResponse, ApiResponse, Message, ClientPreferences, RemainingLimitResponse } from '../types';
3
3
  /**
4
4
  * Hook for managing messages
5
5
  */
@@ -20,4 +20,5 @@ export declare const useMessages: (conversationUid?: string | undefined) => {
20
20
  setMessages: import("react").Dispatch<import("react").SetStateAction<MessagesResponse | null>>;
21
21
  updatePreferences: (enableRead: boolean) => Promise<boolean>;
22
22
  preferences: ClientPreferences | null;
23
+ getRemainingLimit: (receiverClientId?: string | undefined, conversationId?: any) => Promise<RemainingLimitResponse | null>;
23
24
  };
package/dist/index.js CHANGED
@@ -363,9 +363,21 @@ var ChatApi = /*#__PURE__*/function () {
363
363
  return Promise.reject(e);
364
364
  }
365
365
  };
366
- _proto.uploadFile = function uploadFile(file) {
366
+ _proto.getRemainingLimit = function getRemainingLimit(params) {
367
367
  try {
368
368
  var _this13 = this;
369
+ return Promise.resolve(_this13.client.get('/api/messages/remaining-limit', {
370
+ params: params
371
+ })).then(function (response) {
372
+ return response.data;
373
+ });
374
+ } catch (e) {
375
+ return Promise.reject(e);
376
+ }
377
+ };
378
+ _proto.uploadFile = function uploadFile(file) {
379
+ try {
380
+ var _this14 = this;
369
381
  var formData = new FormData();
370
382
  formData.append('file', file);
371
383
  var config = {
@@ -373,7 +385,7 @@ var ChatApi = /*#__PURE__*/function () {
373
385
  'Content-Type': 'multipart/form-data'
374
386
  }
375
387
  };
376
- return Promise.resolve(_this13.client.post('/api/files/upload', formData, config)).then(function (response) {
388
+ return Promise.resolve(_this14.client.post('/api/files/upload', formData, config)).then(function (response) {
377
389
  return response.data;
378
390
  });
379
391
  } catch (e) {
@@ -382,8 +394,8 @@ var ChatApi = /*#__PURE__*/function () {
382
394
  };
383
395
  _proto.banClient = function banClient(request) {
384
396
  try {
385
- var _this14 = this;
386
- return Promise.resolve(_this14.client.post('/api/bans/client', request)).then(function (response) {
397
+ var _this15 = this;
398
+ return Promise.resolve(_this15.client.post('/api/bans/client', request)).then(function (response) {
387
399
  return response.data;
388
400
  });
389
401
  } catch (e) {
@@ -392,8 +404,8 @@ var ChatApi = /*#__PURE__*/function () {
392
404
  };
393
405
  _proto.unbanClient = function unbanClient(request) {
394
406
  try {
395
- var _this15 = this;
396
- return Promise.resolve(_this15.client["delete"]('/api/bans/client', {
407
+ var _this16 = this;
408
+ return Promise.resolve(_this16.client["delete"]('/api/bans/client', {
397
409
  data: request
398
410
  })).then(function (response) {
399
411
  return response.data;
@@ -404,8 +416,8 @@ var ChatApi = /*#__PURE__*/function () {
404
416
  };
405
417
  _proto.adminBanClient = function adminBanClient(request) {
406
418
  try {
407
- var _this16 = this;
408
- return Promise.resolve(_this16.client.post('/api/bans/admin', request)).then(function (response) {
419
+ var _this17 = this;
420
+ return Promise.resolve(_this17.client.post('/api/bans/admin', request)).then(function (response) {
409
421
  return response.data;
410
422
  });
411
423
  } catch (e) {
@@ -414,8 +426,8 @@ var ChatApi = /*#__PURE__*/function () {
414
426
  };
415
427
  _proto.adminUnbanClient = function adminUnbanClient(request) {
416
428
  try {
417
- var _this17 = this;
418
- return Promise.resolve(_this17.client["delete"]('/api/bans/admin', {
429
+ var _this18 = this;
430
+ return Promise.resolve(_this18.client["delete"]('/api/bans/admin', {
419
431
  data: request
420
432
  })).then(function (response) {
421
433
  return response.data;
@@ -426,8 +438,8 @@ var ChatApi = /*#__PURE__*/function () {
426
438
  };
427
439
  _proto.checkBanStatus = function checkBanStatus(clientId) {
428
440
  try {
429
- var _this18 = this;
430
- return Promise.resolve(_this18.client.get("/api/bans/status/" + clientId)).then(function (response) {
441
+ var _this19 = this;
442
+ return Promise.resolve(_this19.client.get("/api/bans/status/" + clientId)).then(function (response) {
431
443
  return response.data;
432
444
  });
433
445
  } catch (e) {
@@ -436,8 +448,8 @@ var ChatApi = /*#__PURE__*/function () {
436
448
  };
437
449
  _proto.getClientProfile = function getClientProfile() {
438
450
  try {
439
- var _this19 = this;
440
- return Promise.resolve(_this19.client.get('/api/clients/profile')).then(function (response) {
451
+ var _this20 = this;
452
+ return Promise.resolve(_this20.client.get('/api/clients/profile')).then(function (response) {
441
453
  return response.data;
442
454
  });
443
455
  } catch (e) {
@@ -446,8 +458,8 @@ var ChatApi = /*#__PURE__*/function () {
446
458
  };
447
459
  _proto.getClientPreferences = function getClientPreferences() {
448
460
  try {
449
- var _this20 = this;
450
- return Promise.resolve(_this20.client.get('/api/clients/preferences')).then(function (response) {
461
+ var _this21 = this;
462
+ return Promise.resolve(_this21.client.get('/api/clients/preferences')).then(function (response) {
451
463
  return response.data;
452
464
  });
453
465
  } catch (e) {
@@ -456,8 +468,8 @@ var ChatApi = /*#__PURE__*/function () {
456
468
  };
457
469
  _proto.updateClientPreferences = function updateClientPreferences(request) {
458
470
  try {
459
- var _this21 = this;
460
- return Promise.resolve(_this21.client.put('/api/clients/preferences', request)).then(function (response) {
471
+ var _this22 = this;
472
+ return Promise.resolve(_this22.client.put('/api/clients/preferences', request)).then(function (response) {
461
473
  return response.data;
462
474
  });
463
475
  } catch (e) {
@@ -2068,7 +2080,10 @@ var useMessages = function useMessages(conversationUid) {
2068
2080
  return Promise.reject(e);
2069
2081
  }
2070
2082
  }, [conversationUid]);
2071
- var markMessageAsRead = React.useCallback(function (messageId) {
2083
+ var getRemainingLimit = React.useCallback(function (receiverClientId, conversationId) {
2084
+ if (conversationId === void 0) {
2085
+ conversationId = conversationUid;
2086
+ }
2072
2087
  try {
2073
2088
  if (!api) {
2074
2089
  setError(new Error('API not initialized'));
@@ -2078,9 +2093,12 @@ var useMessages = function useMessages(conversationUid) {
2078
2093
  setError(null);
2079
2094
  return Promise.resolve(_finallyRethrows(function () {
2080
2095
  return _catch(function () {
2081
- return Promise.resolve(api.markMessageAsRead(messageId));
2096
+ return Promise.resolve(api.getRemainingLimit({
2097
+ receiver_client_id: receiverClientId,
2098
+ conversation_uid: conversationId
2099
+ }));
2082
2100
  }, function (err) {
2083
- var error = err instanceof Error ? err : new Error('Failed to mark message as read');
2101
+ var error = err instanceof Error ? err : new Error('Failed to get remaining limit');
2084
2102
  setError(error);
2085
2103
  return null;
2086
2104
  });
@@ -2092,6 +2110,31 @@ var useMessages = function useMessages(conversationUid) {
2092
2110
  } catch (e) {
2093
2111
  return Promise.reject(e);
2094
2112
  }
2113
+ }, [api, conversationUid]);
2114
+ var markMessageAsRead = React.useCallback(function (messageId) {
2115
+ try {
2116
+ if (!api) {
2117
+ setError(new Error('API not initialized'));
2118
+ return Promise.resolve(null);
2119
+ }
2120
+ setLoading(true);
2121
+ setError(null);
2122
+ return Promise.resolve(_finallyRethrows(function () {
2123
+ return _catch(function () {
2124
+ return Promise.resolve(api.markMessageAsRead(messageId));
2125
+ }, function (err) {
2126
+ var error = err instanceof Error ? err : new Error('Failed to mark message as read');
2127
+ setError(error);
2128
+ return null;
2129
+ });
2130
+ }, function (_wasThrown3, _result3) {
2131
+ setLoading(false);
2132
+ if (_wasThrown3) throw _result3;
2133
+ return _result3;
2134
+ }));
2135
+ } catch (e) {
2136
+ return Promise.reject(e);
2137
+ }
2095
2138
  }, []);
2096
2139
  var sendMessage = React.useCallback(function (message) {
2097
2140
  try {
@@ -2112,10 +2155,10 @@ var useMessages = function useMessages(conversationUid) {
2112
2155
  setError(error);
2113
2156
  return null;
2114
2157
  });
2115
- }, function (_wasThrown3, _result3) {
2158
+ }, function (_wasThrown4, _result4) {
2116
2159
  setLoading(false);
2117
- if (_wasThrown3) throw _result3;
2118
- return _result3;
2160
+ if (_wasThrown4) throw _result4;
2161
+ return _result4;
2119
2162
  }));
2120
2163
  } catch (e) {
2121
2164
  return Promise.reject(e);
@@ -2156,10 +2199,10 @@ var useMessages = function useMessages(conversationUid) {
2156
2199
  setError(error);
2157
2200
  return null;
2158
2201
  });
2159
- }, function (_wasThrown4, _result4) {
2202
+ }, function (_wasThrown5, _result5) {
2160
2203
  setLoading(false);
2161
- if (_wasThrown4) throw _result4;
2162
- return _result4;
2204
+ if (_wasThrown5) throw _result5;
2205
+ return _result5;
2163
2206
  }));
2164
2207
  } catch (e) {
2165
2208
  return Promise.reject(e);
@@ -2190,10 +2233,10 @@ var useMessages = function useMessages(conversationUid) {
2190
2233
  setError(error);
2191
2234
  return null;
2192
2235
  });
2193
- }, function (_wasThrown5, _result5) {
2236
+ }, function (_wasThrown6, _result6) {
2194
2237
  setLoading(false);
2195
- if (_wasThrown5) throw _result5;
2196
- return _result5;
2238
+ if (_wasThrown6) throw _result6;
2239
+ return _result6;
2197
2240
  }));
2198
2241
  } catch (e) {
2199
2242
  return Promise.reject(e);
@@ -2224,10 +2267,10 @@ var useMessages = function useMessages(conversationUid) {
2224
2267
  setError(error);
2225
2268
  return null;
2226
2269
  });
2227
- }, function (_wasThrown6, _result6) {
2270
+ }, function (_wasThrown7, _result7) {
2228
2271
  setLoading(false);
2229
- if (_wasThrown6) throw _result6;
2230
- return _result6;
2272
+ if (_wasThrown7) throw _result7;
2273
+ return _result7;
2231
2274
  }));
2232
2275
  } catch (e) {
2233
2276
  return Promise.reject(e);
@@ -2362,7 +2405,8 @@ var useMessages = function useMessages(conversationUid) {
2362
2405
  deleteMessage: deleteMessage,
2363
2406
  setMessages: setMessages,
2364
2407
  updatePreferences: updatePreferences,
2365
- preferences: preferences
2408
+ preferences: preferences,
2409
+ getRemainingLimit: getRemainingLimit
2366
2410
  };
2367
2411
  };
2368
2412
 
@@ -2725,7 +2769,8 @@ function useMessageManagement(selectedConversationId) {
2725
2769
  updateMessage = _useMessages.updateMessage,
2726
2770
  setMessages = _useMessages.setMessages,
2727
2771
  preferences = _useMessages.preferences,
2728
- updatePreferences = _useMessages.updatePreferences;
2772
+ updatePreferences = _useMessages.updatePreferences,
2773
+ getRemainingLimit = _useMessages.getRemainingLimit;
2729
2774
  var _useAllMessageEvents = useAllMessageEvents$1(),
2730
2775
  messageSent = _useAllMessageEvents.messageSent,
2731
2776
  messageEdited = _useAllMessageEvents.messageEdited,
@@ -2807,7 +2852,7 @@ function useMessageManagement(selectedConversationId) {
2807
2852
  })
2808
2853
  });
2809
2854
  });
2810
- return false;
2855
+ return success;
2811
2856
  } else {
2812
2857
  setMessages(function (prevMessages) {
2813
2858
  return _extends({}, prevMessages, {
@@ -2820,10 +2865,11 @@ function useMessageManagement(selectedConversationId) {
2820
2865
  })
2821
2866
  });
2822
2867
  });
2823
- return true;
2868
+ return success;
2824
2869
  }
2825
2870
  });
2826
2871
  }, function (error) {
2872
+ var _error$response$data, _error$response;
2827
2873
  setMessages(function (prevMessages) {
2828
2874
  return _extends({}, prevMessages, {
2829
2875
  messages: ((prevMessages === null || prevMessages === void 0 ? void 0 : prevMessages.messages) || []).filter(function (msg) {
@@ -2831,8 +2877,9 @@ function useMessageManagement(selectedConversationId) {
2831
2877
  })
2832
2878
  });
2833
2879
  });
2834
- console.error('Failed to send message:', error);
2835
- return false;
2880
+ return (_error$response$data = error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) != null ? _error$response$data : {
2881
+ message: 'Unknown error'
2882
+ };
2836
2883
  }));
2837
2884
  } catch (e) {
2838
2885
  return Promise.reject(e);
@@ -2926,7 +2973,8 @@ function useMessageManagement(selectedConversationId) {
2926
2973
  hasMore: hasMore,
2927
2974
  setMessages: setMessages,
2928
2975
  preferences: preferences,
2929
- updatePreferences: updatePreferences
2976
+ updatePreferences: updatePreferences,
2977
+ getRemainingLimit: getRemainingLimit
2930
2978
  };
2931
2979
  }
2932
2980