@scalemule/chat 0.0.7 → 0.0.9

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/dist/react.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { f as Attachment, e as ChatMessage, d as Conversation, C as ChatConfig, R as ReadStatus, S as SendMessageOptions, A as ApiResponse, b as ConnectionStatus } from './types-COPVrm3K.cjs';
2
- export { G as GetMessagesOptions, L as ListConversationsOptions, M as MessagesResponse, p as ReactionSummary, U as UnreadTotalResponse } from './types-COPVrm3K.cjs';
1
+ import { f as Attachment, e as ChatMessage, d as Conversation, p as ReactionSummary, C as ChatConfig, R as ReadStatus, S as SendMessageOptions, A as ApiResponse, b as ConnectionStatus } from './types-COPVrm3K.cjs';
2
+ export { G as GetMessagesOptions, L as ListConversationsOptions, M as MessagesResponse, U as UnreadTotalResponse } from './types-COPVrm3K.cjs';
3
3
  import React, { ReactNode } from 'react';
4
4
  import { C as ChatClient } from './ChatClient-DQPHdUHX.cjs';
5
5
 
6
6
  interface ChatInputProps {
7
- onSend: (content: string, attachments: Attachment[]) => void | Promise<void>;
7
+ onSend: (content: string, attachments?: Attachment[]) => void | Promise<void>;
8
8
  onTypingChange?: (isTyping: boolean) => void;
9
9
  onUploadAttachment?: (file: File | Blob, onProgress?: (percent: number) => void, signal?: AbortSignal) => Promise<{
10
10
  data: Attachment | null;
@@ -12,31 +12,66 @@ interface ChatInputProps {
12
12
  message: string;
13
13
  } | null;
14
14
  } | undefined>;
15
+ onDeleteAttachment?: (fileId: string) => void | Promise<void>;
16
+ onValidateFile?: (file: File) => {
17
+ valid: boolean;
18
+ error?: string;
19
+ };
15
20
  placeholder?: string;
21
+ disabled?: boolean;
22
+ maxAttachments?: number;
23
+ accept?: string;
16
24
  }
17
- declare function ChatInput({ onSend, onTypingChange, onUploadAttachment, placeholder, }: ChatInputProps): React.JSX.Element;
25
+ declare function ChatInput({ onSend, onTypingChange, onUploadAttachment, onDeleteAttachment, onValidateFile, placeholder, disabled, maxAttachments, accept, }: ChatInputProps): React.JSX.Element;
18
26
 
27
+ interface UserProfile$2 {
28
+ display_name: string;
29
+ username?: string;
30
+ avatar_url?: string;
31
+ }
19
32
  interface ChatMessageItemProps {
20
33
  message: ChatMessage;
21
34
  currentUserId?: string;
35
+ conversationId?: string;
36
+ profile?: UserProfile$2;
22
37
  onAddReaction?: (messageId: string, emoji: string) => void | Promise<void>;
23
38
  onRemoveReaction?: (messageId: string, emoji: string) => void | Promise<void>;
24
- onReport?: (messageId: string) => void | Promise<void>;
39
+ onEdit?: (messageId: string, content: string) => void | Promise<void>;
40
+ onDelete?: (messageId: string) => void | Promise<void>;
41
+ onReport?: (messageId: string) => void;
42
+ onFetchAttachmentUrl?: (fileId: string) => Promise<string>;
43
+ isOwnMessage?: boolean;
25
44
  highlight?: boolean;
26
45
  }
27
- declare function ChatMessageItem({ message, currentUserId, onAddReaction, onRemoveReaction, onReport, highlight, }: ChatMessageItemProps): React.JSX.Element;
46
+ declare function ChatMessageItem({ message, currentUserId, conversationId, profile, onAddReaction, onRemoveReaction, onEdit, onDelete, onReport, onFetchAttachmentUrl, isOwnMessage: isOwnMessageProp, highlight, }: ChatMessageItemProps): React.JSX.Element;
28
47
 
48
+ interface UserProfile$1 {
49
+ display_name: string;
50
+ username?: string;
51
+ avatar_url?: string;
52
+ }
29
53
  interface ChatMessageListProps {
30
54
  messages: ChatMessage[];
31
55
  currentUserId?: string;
32
- unreadSince?: string;
33
- scrollToUnreadOnMount?: boolean;
56
+ conversationId?: string;
57
+ profiles?: Map<string, UserProfile$1>;
58
+ hasMore?: boolean;
59
+ isLoading?: boolean;
60
+ onLoadMore?: () => void;
34
61
  onAddReaction?: (messageId: string, emoji: string) => void | Promise<void>;
35
62
  onRemoveReaction?: (messageId: string, emoji: string) => void | Promise<void>;
36
- onReport?: (messageId: string) => void | Promise<void>;
63
+ onEdit?: (messageId: string, content: string) => void | Promise<void>;
64
+ onDelete?: (messageId: string) => void | Promise<void>;
65
+ onReport?: (messageId: string) => void;
66
+ onFetchAttachmentUrl?: (fileId: string) => Promise<string>;
67
+ firstUnreadMessageId?: string;
68
+ /** @deprecated use firstUnreadMessageId instead */
69
+ unreadSince?: string;
70
+ isNearBottom?: boolean;
71
+ onReachBottom?: () => void;
37
72
  emptyState?: React.ReactNode;
38
73
  }
39
- declare function ChatMessageList({ messages, currentUserId, unreadSince, scrollToUnreadOnMount, onAddReaction, onRemoveReaction, onReport, emptyState, }: ChatMessageListProps): React.JSX.Element;
74
+ declare function ChatMessageList({ messages, currentUserId, conversationId, profiles, hasMore, isLoading, onLoadMore, onAddReaction, onRemoveReaction, onEdit, onDelete, onReport, onFetchAttachmentUrl, firstUnreadMessageId, unreadSince, isNearBottom: isNearBottomProp, onReachBottom, emptyState, }: ChatMessageListProps): React.JSX.Element;
40
75
 
41
76
  interface ChatTheme {
42
77
  primary?: string;
@@ -53,14 +88,21 @@ interface ChatTheme {
53
88
  fontFamily?: string;
54
89
  }
55
90
 
91
+ interface UserProfile {
92
+ display_name: string;
93
+ username?: string;
94
+ avatar_url?: string;
95
+ }
56
96
  interface ChatThreadProps {
57
97
  conversationId: string;
58
98
  theme?: ChatTheme;
59
99
  currentUserId?: string;
100
+ profiles?: Map<string, UserProfile>;
60
101
  title?: string;
61
102
  subtitle?: string;
103
+ onFetchAttachmentUrl?: (fileId: string) => Promise<string>;
62
104
  }
63
- declare function ChatThread({ conversationId, theme, currentUserId, title, subtitle, }: ChatThreadProps): React.JSX.Element;
105
+ declare function ChatThread({ conversationId, theme, currentUserId, profiles, title, subtitle, onFetchAttachmentUrl, }: ChatThreadProps): React.JSX.Element;
64
106
 
65
107
  interface ConversationListProps {
66
108
  conversationType?: Conversation['conversation_type'];
@@ -73,9 +115,51 @@ declare function ConversationList({ conversationType, selectedConversationId, on
73
115
 
74
116
  interface EmojiPickerProps {
75
117
  onSelect: (emoji: string) => void;
118
+ onClose: () => void;
119
+ anchorRef: React.RefObject<HTMLButtonElement | null>;
76
120
  emojis?: string[];
77
121
  }
78
- declare function EmojiPicker({ onSelect, emojis, }: EmojiPickerProps): React.JSX.Element;
122
+ declare function EmojiPicker({ onSelect, onClose, anchorRef, emojis, }: EmojiPickerProps): React.JSX.Element | null;
123
+ interface EmojiPickerTriggerProps {
124
+ onSelect: (emoji: string) => void;
125
+ emojis?: string[];
126
+ }
127
+ declare function EmojiPickerTrigger({ onSelect, emojis, }: EmojiPickerTriggerProps): React.JSX.Element;
128
+
129
+ interface ReactionBarProps {
130
+ reactions: ReactionSummary[];
131
+ currentUserId?: string;
132
+ onToggleReaction: (emoji: string) => void;
133
+ }
134
+ declare function ReactionBar({ reactions, currentUserId, onToggleReaction, }: ReactionBarProps): React.JSX.Element | null;
135
+
136
+ declare const REPORT_REASONS: readonly [{
137
+ readonly value: "spam";
138
+ readonly label: "Spam";
139
+ }, {
140
+ readonly value: "harassment";
141
+ readonly label: "Harassment";
142
+ }, {
143
+ readonly value: "hate";
144
+ readonly label: "Hate speech";
145
+ }, {
146
+ readonly value: "violence";
147
+ readonly label: "Violence";
148
+ }, {
149
+ readonly value: "other";
150
+ readonly label: "Other";
151
+ }];
152
+ type ReportReason = (typeof REPORT_REASONS)[number]['value'];
153
+ interface ReportDialogProps {
154
+ messageId: string;
155
+ onSubmit: (data: {
156
+ messageId: string;
157
+ reason: ReportReason;
158
+ description?: string;
159
+ }) => void | Promise<void>;
160
+ onClose: () => void;
161
+ }
162
+ declare function ReportDialog({ messageId, onSubmit, onClose, }: ReportDialogProps): React.JSX.Element;
79
163
 
80
164
  interface ChatProviderProps {
81
165
  config: ChatConfig;
@@ -142,4 +226,4 @@ declare function useUnreadCount(): {
142
226
  totalUnread: number;
143
227
  };
144
228
 
145
- export { ApiResponse, ChatClient, ChatConfig, ChatInput, ChatMessage, ChatMessageItem, ChatMessageList, ChatProvider, type ChatTheme, ChatThread, ConnectionStatus, Conversation, ConversationList, EmojiPicker, ReadStatus, SendMessageOptions, useChat, useChatClient, useChatConfig, useConnection, useConversations, usePresence, useTyping, useUnreadCount };
229
+ export { ApiResponse, ChatClient, ChatConfig, ChatInput, ChatMessage, ChatMessageItem, ChatMessageList, ChatProvider, type ChatTheme, ChatThread, ConnectionStatus, Conversation, ConversationList, EmojiPicker, EmojiPickerTrigger, ReactionBar, ReactionSummary, ReadStatus, ReportDialog, SendMessageOptions, useChat, useChatClient, useChatConfig, useConnection, useConversations, usePresence, useTyping, useUnreadCount };
package/dist/react.d.ts CHANGED
@@ -65,7 +65,7 @@ export declare function useConversations(options?: {
65
65
  export declare function useUnreadCount(): {
66
66
  totalUnread: number;
67
67
  };
68
- export { ChatInput, ChatMessageItem, ChatMessageList, ChatThread, ConversationList, EmojiPicker, } from './react-components';
68
+ export { ChatInput, ChatMessageItem, ChatMessageList, ChatThread, ConversationList, EmojiPicker, EmojiPickerTrigger, ReactionBar, ReportDialog, } from './react-components';
69
69
  export { ChatClient } from './core/ChatClient';
70
70
  export type { ChatConfig, ChatMessage, ConnectionStatus, Conversation, ApiResponse, SendMessageOptions, GetMessagesOptions, MessagesResponse, ReadStatus, ReactionSummary, UnreadTotalResponse, ListConversationsOptions, } from './types';
71
71
  export type { ChatTheme } from './react-components';
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAmBjB,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUvF;AAID,mGAAmG;AACnG,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAED,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAID,wBAAgB,aAAa,IAAI;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CAoBzG;AAED,wBAAgB,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM;;;;;;2BAuH3B,MAAM,YAAY,OAAO,CAAC,kBAAkB,CAAC;;6BAkB3C,MAAM,WAAW,MAAM;+BAWvB,MAAM;6BAWN,MAAM,SAAS,MAAM;gCAWrB,MAAM,SAAS,MAAM;6BAW1B,IAAI,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,WAAW,WAAW;sCAWpE,MAAM,UAAU,MAAM;;;+BAY3B,MAAM,UACT,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,gBAC/C,MAAM;;;oCAYF,MAAM;;;;;;;;;;EAyD7B;AAED,wBAAgB,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM;;gBAGrC,MAAM;gBAAU,MAAM;mBAAa,OAAO;;EAmEvD;AAED,wBAAgB,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM;;;EAqDhD;AAID,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE;;;;EA+CvE;AAID,wBAAgB,cAAc;;EAmC7B;AAED,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAmBjB,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUvF;AAID,mGAAmG;AACnG,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAED,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAID,wBAAgB,aAAa,IAAI;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CAoBzG;AAED,wBAAgB,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM;;;;;;2BAuH3B,MAAM,YAAY,OAAO,CAAC,kBAAkB,CAAC;;6BAkB3C,MAAM,WAAW,MAAM;+BAWvB,MAAM;6BAWN,MAAM,SAAS,MAAM;gCAWrB,MAAM,SAAS,MAAM;6BAW1B,IAAI,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,WAAW,WAAW;sCAWpE,MAAM,UAAU,MAAM;;;+BAY3B,MAAM,UACT,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,gBAC/C,MAAM;;;oCAYF,MAAM;;;;;;;;;;EAyD7B;AAED,wBAAgB,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM;;gBAGrC,MAAM;gBAAU,MAAM;mBAAa,OAAO;;EAmEvD;AAED,wBAAgB,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM;;;EAqDhD;AAID,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE;;;;EA+CvE;AAID,wBAAgB,cAAc;;EAmC7B;AAED,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}