@vserifsaglam/chat-react-client 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -154,7 +154,13 @@ const MessagePanel = ({ conversationId, receiverId }) => {
154
154
  const handleSend = async () => {
155
155
  if (!messageText.trim()) return;
156
156
 
157
- const success = await handleSendMessage(messageText, receiverId);
157
+ // Optional metadata as a javascript object
158
+ const metadata = {
159
+ source: 'web-client',
160
+ priority: 'high'
161
+ };
162
+
163
+ const success = await handleSendMessage(messageText, receiverId, false, metadata);
158
164
  if (success) {
159
165
  setMessageText('');
160
166
  }
@@ -168,7 +174,9 @@ const MessagePanel = ({ conversationId, receiverId }) => {
168
174
  const fileId = await uploadFile(selectedFile);
169
175
 
170
176
  if (fileId) {
171
- await handleSendFileMessage(`Sent a file: ${selectedFile.name}`, fileId, receiverId);
177
+ // Optional metadata for file messages too
178
+ const metadata = { file_type: selectedFile.type };
179
+ await handleSendFileMessage(`Sent a file: ${selectedFile.name}`, fileId, receiverId, selectedFile.name, '', false, metadata);
172
180
  setFile(null);
173
181
  }
174
182
  };
@@ -554,8 +562,8 @@ Returns:
554
562
  - `fileLoading` (boolean): Loading state for file uploads
555
563
  - `uploadProgress` (number): Upload progress percentage (0-100)
556
564
  - `uploadFile(file: File)`: Function to upload a file
557
- - `handleSendMessage(content: string, receiverId: string)`: Function to send a text message
558
- - `handleSendFileMessage(content: string, fileId: number, receiverId: string)`: Function to send a message with a file attachment
565
+ - `handleSendMessage(content: string, receiverId: string, isAppointment?: boolean, metadata?: Record<string, any>)`: Function to send a text message
566
+ - `handleSendFileMessage(content: string, fileId: number, receiverId: string, filename?: string, url?: string, isAppointment?: boolean, metadata?: Record<string, any>)`: Function to send a message with a file attachment
559
567
  - `getMessages(conversationId?: string, page?: number)`: Function to get messages for a conversation
560
568
  - `loadMoreMessages()`: Function to load more messages (pagination)
561
569
  - `hasMore` (boolean): Whether there are more messages to load
@@ -6,8 +6,8 @@ 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, isAppointment?: boolean | undefined) => Promise<any>;
10
- handleSendFileMessage: (content: string, fileId: number, receiver: SenderReceiverUser, filename?: string | undefined, url?: string | undefined, isAppointment?: boolean | undefined) => Promise<boolean | undefined>;
9
+ handleSendMessage: (content: string, receiver: SenderReceiverUser, isAppointment?: boolean | undefined, metadata?: Record<string, any> | undefined) => Promise<any>;
10
+ handleSendFileMessage: (content: string, fileId: number, receiver: SenderReceiverUser, filename?: string | undefined, url?: string | undefined, isAppointment?: boolean | undefined, metadata?: Record<string, any> | 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>;
13
13
  getMessages: (conversationId?: any, page?: any, pageSize?: any) => Promise<import("..").MessagesResponse | null>;
package/dist/index.js CHANGED
@@ -2833,7 +2833,7 @@ function useMessageManagement(selectedConversationId) {
2833
2833
  return Promise.reject(e);
2834
2834
  }
2835
2835
  }, [messagesLoading, hasMore, getMessages, page, selectedConversationId]);
2836
- var handleSendMessage = React.useCallback(function (content, receiver, isAppointment) {
2836
+ var handleSendMessage = React.useCallback(function (content, receiver, isAppointment, metadata) {
2837
2837
  try {
2838
2838
  if (!content.trim() || !selectedConversationId || !profile) return Promise.resolve();
2839
2839
  var tempMessageId = "temp-" + Date.now();
@@ -2846,7 +2846,8 @@ function useMessageManagement(selectedConversationId) {
2846
2846
  sender: profile,
2847
2847
  receiver: receiver,
2848
2848
  is_read: false,
2849
- status: 'sending'
2849
+ status: 'sending',
2850
+ metadata: metadata
2850
2851
  };
2851
2852
  setMessages(function (prevMessages) {
2852
2853
  var prevMessageArray = (prevMessages === null || prevMessages === void 0 ? void 0 : prevMessages.messages) || [];
@@ -2859,7 +2860,8 @@ function useMessageManagement(selectedConversationId) {
2859
2860
  receiver_client_id: receiver.id,
2860
2861
  content: content,
2861
2862
  conversation_uid: selectedConversationId,
2862
- isAppointment: isAppointment
2863
+ isAppointment: isAppointment,
2864
+ metadata: metadata
2863
2865
  })).then(function (success) {
2864
2866
  if (!success) {
2865
2867
  setMessages(function (prevMessages) {
@@ -2904,7 +2906,7 @@ function useMessageManagement(selectedConversationId) {
2904
2906
  return Promise.reject(e);
2905
2907
  }
2906
2908
  }, [sendMessage, selectedConversationId, profile === null || profile === void 0 ? void 0 : profile.id, setMessages]);
2907
- var handleSendFileMessage = React.useCallback(function (content, fileId, receiver, filename, url, isAppointment) {
2909
+ var handleSendFileMessage = React.useCallback(function (content, fileId, receiver, filename, url, isAppointment, metadata) {
2908
2910
  try {
2909
2911
  if (!selectedConversationId) return Promise.resolve();
2910
2912
  var tempMessageId = "temp-file-" + Date.now();
@@ -2921,7 +2923,8 @@ function useMessageManagement(selectedConversationId) {
2921
2923
  sender: profile,
2922
2924
  receiver: receiver,
2923
2925
  is_read: false,
2924
- status: 'sending'
2926
+ status: 'sending',
2927
+ metadata: metadata
2925
2928
  };
2926
2929
  setMessages(function (prevMessages) {
2927
2930
  var prevMessageArray = (prevMessages === null || prevMessages === void 0 ? void 0 : prevMessages.messages) || [];
@@ -2935,7 +2938,8 @@ function useMessageManagement(selectedConversationId) {
2935
2938
  content: content,
2936
2939
  attachments: [fileId],
2937
2940
  conversation_uid: selectedConversationId,
2938
- isAppointment: isAppointment
2941
+ isAppointment: isAppointment,
2942
+ metadata: metadata
2939
2943
  })).then(function (success) {
2940
2944
  if (success) {
2941
2945
  setMessages(function (prevMessages) {