@droppii-org/chat-sdk 0.0.4 → 0.0.5
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/tsconfig.tsbuildinfo +1 -0
- package/package.json +11 -4
- package/dist/components/AutoScrollAnchor.d.ts +0 -2
- package/dist/components/AutoScrollAnchor.d.ts.map +0 -1
- package/dist/components/AutoScrollAnchor.js +0 -12
- package/dist/components/AutoScrollAnchor.jsx +0 -11
- package/dist/components/ChatBubble.d.ts +0 -2
- package/dist/components/ChatBubble.d.ts.map +0 -1
- package/dist/components/ChatBubble.js +0 -18
- package/dist/components/ChatBubble.jsx +0 -80
- package/dist/components/ChatHeader.d.ts +0 -8
- package/dist/components/ChatHeader.d.ts.map +0 -1
- package/dist/components/ChatHeader.js +0 -32
- package/dist/components/ChatHeader.jsx +0 -72
- package/dist/components/ChatInput.d.ts +0 -3
- package/dist/components/ChatInput.d.ts.map +0 -1
- package/dist/components/ChatInput.js +0 -379
- package/dist/components/ChatInput.jsx +0 -444
- package/dist/components/ChatInputDemo.d.ts +0 -2
- package/dist/components/ChatInputDemo.d.ts.map +0 -1
- package/dist/components/ChatInputDemo.js +0 -38
- package/dist/components/ChatInputDemo.jsx +0 -53
- package/dist/components/ChatInputWithCustomIcon.d.ts +0 -16
- package/dist/components/ChatInputWithCustomIcon.d.ts.map +0 -1
- package/dist/components/ChatInputWithCustomIcon.js +0 -85
- package/dist/components/ChatInputWithCustomIcon.jsx +0 -167
- package/dist/components/ChatLayout.d.ts +0 -6
- package/dist/components/ChatLayout.d.ts.map +0 -1
- package/dist/components/ChatLayout.js +0 -48
- package/dist/components/ChatLayout.jsx +0 -122
- package/dist/components/ConversationItem.d.ts +0 -9
- package/dist/components/ConversationItem.d.ts.map +0 -1
- package/dist/components/ConversationItem.js +0 -27
- package/dist/components/ConversationItem.jsx +0 -51
- package/dist/components/ConversationList.d.ts +0 -8
- package/dist/components/ConversationList.d.ts.map +0 -1
- package/dist/components/ConversationList.js +0 -11
- package/dist/components/ConversationList.jsx +0 -22
- package/dist/components/DateDivider.d.ts +0 -7
- package/dist/components/DateDivider.d.ts.map +0 -1
- package/dist/components/DateDivider.js +0 -27
- package/dist/components/DateDivider.jsx +0 -28
- package/dist/components/EmojiPicker.d.ts +0 -4
- package/dist/components/EmojiPicker.d.ts.map +0 -1
- package/dist/components/EmojiPicker.js +0 -191
- package/dist/components/EmojiPicker.jsx +0 -229
- package/dist/components/ImageLightbox.d.ts +0 -8
- package/dist/components/ImageLightbox.d.ts.map +0 -1
- package/dist/components/ImageLightbox.js +0 -8
- package/dist/components/ImageLightbox.jsx +0 -16
- package/dist/components/ImagePreviewModal.d.ts +0 -12
- package/dist/components/ImagePreviewModal.d.ts.map +0 -1
- package/dist/components/ImagePreviewModal.js +0 -55
- package/dist/components/ImagePreviewModal.jsx +0 -84
- package/dist/components/MessageItem.d.ts +0 -3
- package/dist/components/MessageItem.d.ts.map +0 -1
- package/dist/components/MessageItem.js +0 -38
- package/dist/components/MessageItem.jsx +0 -99
- package/dist/components/MessageItemDemo.d.ts +0 -2
- package/dist/components/MessageItemDemo.d.ts.map +0 -1
- package/dist/components/MessageItemDemo.js +0 -166
- package/dist/components/MessageItemDemo.jsx +0 -179
- package/dist/components/MessageList.d.ts +0 -15
- package/dist/components/MessageList.d.ts.map +0 -1
- package/dist/components/MessageList.js +0 -243
- package/dist/components/MessageList.jsx +0 -306
- package/dist/components/MessageListDemo.d.ts +0 -2
- package/dist/components/MessageListDemo.d.ts.map +0 -1
- package/dist/components/MessageListDemo.js +0 -165
- package/dist/components/MessageListDemo.jsx +0 -183
- package/dist/components/StickerPicker.d.ts +0 -4
- package/dist/components/StickerPicker.d.ts.map +0 -1
- package/dist/components/StickerPicker.js +0 -68
- package/dist/components/StickerPicker.jsx +0 -106
- package/dist/components/SwipeIndicator.d.ts +0 -9
- package/dist/components/SwipeIndicator.d.ts.map +0 -1
- package/dist/components/SwipeIndicator.js +0 -24
- package/dist/components/SwipeIndicator.jsx +0 -28
- package/dist/components/TextFormattingToolbar.d.ts +0 -4
- package/dist/components/TextFormattingToolbar.d.ts.map +0 -1
- package/dist/components/TextFormattingToolbar.js +0 -29
- package/dist/components/TextFormattingToolbar.jsx +0 -52
- package/dist/components/TypingIndicator.d.ts +0 -6
- package/dist/components/TypingIndicator.d.ts.map +0 -1
- package/dist/components/TypingIndicator.js +0 -21
- package/dist/components/TypingIndicator.jsx +0 -27
- package/dist/components/VoiceWaveIcon.d.ts +0 -7
- package/dist/components/VoiceWaveIcon.d.ts.map +0 -1
- package/dist/components/VoiceWaveIcon.js +0 -5
- package/dist/components/VoiceWaveIcon.jsx +0 -11
- package/dist/context/ChatContext.d.ts +0 -72
- package/dist/context/ChatContext.d.ts.map +0 -1
- package/dist/context/ChatContext.js +0 -347
- package/dist/context/ChatContext.jsx +0 -346
- package/dist/hooks/useChat.d.ts +0 -5
- package/dist/hooks/useChat.d.ts.map +0 -1
- package/dist/hooks/useChat.js +0 -73
- package/dist/hooks/useConversationList.d.ts +0 -5
- package/dist/hooks/useConversationList.d.ts.map +0 -1
- package/dist/hooks/useConversationList.js +0 -9
- package/dist/hooks/useMessages.d.ts +0 -5
- package/dist/hooks/useMessages.d.ts.map +0 -1
- package/dist/hooks/useMessages.js +0 -192
- package/dist/hooks/useSocket.d.ts +0 -7
- package/dist/hooks/useSocket.d.ts.map +0 -1
- package/dist/hooks/useSocket.js +0 -120
- package/dist/hooks/useSwipeGesture.d.ts +0 -11
- package/dist/hooks/useSwipeGesture.d.ts.map +0 -1
- package/dist/hooks/useSwipeGesture.js +0 -54
- package/dist/hooks/useTextSelection.d.ts +0 -13
- package/dist/hooks/useTextSelection.d.ts.map +0 -1
- package/dist/hooks/useTextSelection.js +0 -132
- package/dist/hooks/useTyping.d.ts +0 -7
- package/dist/hooks/useTyping.d.ts.map +0 -1
- package/dist/hooks/useTyping.js +0 -64
- package/dist/index.d.ts +0 -28
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -29
- package/dist/types/chat.d.ts +0 -39
- package/dist/types/chat.d.ts.map +0 -1
- package/dist/types/chat.js +0 -1
- package/dist/types/index.d.ts +0 -86
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -1
package/dist/hooks/useSocket.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useEffect, useRef, useCallback } from "react";
|
|
3
|
-
import { useChatContext } from "../context/ChatContext";
|
|
4
|
-
export function useSocket() {
|
|
5
|
-
const { state, dispatch } = useChatContext();
|
|
6
|
-
const socketRef = useRef(null);
|
|
7
|
-
const reconnectTimeoutRef = useRef();
|
|
8
|
-
const reconnectAttempts = useRef(0);
|
|
9
|
-
const maxReconnectAttempts = 3;
|
|
10
|
-
const connect = useCallback(() => {
|
|
11
|
-
var _a;
|
|
12
|
-
// Skip WebSocket connection in demo mode or if no URL provided
|
|
13
|
-
if (!((_a = state.config) === null || _a === void 0 ? void 0 : _a.wsUrl) || state.config.wsUrl.includes("localhost") || state.config.wsUrl === "demo") {
|
|
14
|
-
console.log("WebSocket disabled for demo mode");
|
|
15
|
-
dispatch({ type: "SET_CONNECTION_STATUS", payload: false });
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
if (reconnectAttempts.current >= maxReconnectAttempts) {
|
|
19
|
-
console.log("Max reconnection attempts reached");
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
try {
|
|
23
|
-
const ws = new WebSocket(`${state.config.wsUrl}?token=${state.config.token}`);
|
|
24
|
-
ws.onopen = () => {
|
|
25
|
-
console.log("WebSocket connected");
|
|
26
|
-
dispatch({ type: "SET_CONNECTION_STATUS", payload: true });
|
|
27
|
-
socketRef.current = ws;
|
|
28
|
-
reconnectAttempts.current = 0;
|
|
29
|
-
};
|
|
30
|
-
ws.onmessage = (event) => {
|
|
31
|
-
try {
|
|
32
|
-
const message = JSON.parse(event.data);
|
|
33
|
-
handleSocketMessage(message);
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
console.error("Failed to parse socket message:", error);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
ws.onclose = (event) => {
|
|
40
|
-
console.log("WebSocket disconnected", event.code, event.reason);
|
|
41
|
-
dispatch({ type: "SET_CONNECTION_STATUS", payload: false });
|
|
42
|
-
socketRef.current = null;
|
|
43
|
-
// Only attempt to reconnect if it wasn't a manual close
|
|
44
|
-
if (event.code !== 1000 && reconnectAttempts.current < maxReconnectAttempts) {
|
|
45
|
-
reconnectAttempts.current++;
|
|
46
|
-
reconnectTimeoutRef.current = setTimeout(() => {
|
|
47
|
-
console.log(`Reconnection attempt ${reconnectAttempts.current}`);
|
|
48
|
-
connect();
|
|
49
|
-
}, 3000 * reconnectAttempts.current); // Exponential backoff
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
ws.onerror = (error) => {
|
|
53
|
-
console.warn("WebSocket connection failed - running in offline mode");
|
|
54
|
-
dispatch({ type: "SET_CONNECTION_STATUS", payload: false });
|
|
55
|
-
// Don't attempt to reconnect on error to avoid spam
|
|
56
|
-
reconnectAttempts.current = maxReconnectAttempts;
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
console.warn("Failed to create WebSocket connection - running in offline mode");
|
|
61
|
-
dispatch({ type: "SET_CONNECTION_STATUS", payload: false });
|
|
62
|
-
}
|
|
63
|
-
}, [state.config]);
|
|
64
|
-
const handleSocketMessage = useCallback((message) => {
|
|
65
|
-
switch (message.type) {
|
|
66
|
-
case "message":
|
|
67
|
-
dispatch({ type: "ADD_MESSAGE", payload: message.data });
|
|
68
|
-
break;
|
|
69
|
-
case "typing":
|
|
70
|
-
if (message.data.isTyping) {
|
|
71
|
-
dispatch({ type: "SET_TYPING", payload: message.data });
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
dispatch({
|
|
75
|
-
type: "REMOVE_TYPING",
|
|
76
|
-
payload: {
|
|
77
|
-
userId: message.data.userId,
|
|
78
|
-
conversationId: message.data.conversationId,
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
break;
|
|
83
|
-
case "read":
|
|
84
|
-
dispatch({ type: "UPDATE_MESSAGE", payload: message.data });
|
|
85
|
-
break;
|
|
86
|
-
case "user_status":
|
|
87
|
-
dispatch({ type: "UPDATE_USER", payload: message.data });
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
}, [dispatch]);
|
|
91
|
-
const sendMessage = useCallback((message) => {
|
|
92
|
-
var _a;
|
|
93
|
-
if (((_a = socketRef.current) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN) {
|
|
94
|
-
socketRef.current.send(JSON.stringify(message));
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
console.log("WebSocket not connected - message not sent:", message);
|
|
98
|
-
return false;
|
|
99
|
-
}, []);
|
|
100
|
-
const disconnect = useCallback(() => {
|
|
101
|
-
if (reconnectTimeoutRef.current) {
|
|
102
|
-
clearTimeout(reconnectTimeoutRef.current);
|
|
103
|
-
}
|
|
104
|
-
if (socketRef.current) {
|
|
105
|
-
socketRef.current.close(1000, "Manual disconnect");
|
|
106
|
-
socketRef.current = null;
|
|
107
|
-
}
|
|
108
|
-
reconnectAttempts.current = maxReconnectAttempts;
|
|
109
|
-
}, []);
|
|
110
|
-
useEffect(() => {
|
|
111
|
-
connect();
|
|
112
|
-
return disconnect;
|
|
113
|
-
}, [connect, disconnect]);
|
|
114
|
-
return {
|
|
115
|
-
isConnected: state.isConnected,
|
|
116
|
-
sendMessage,
|
|
117
|
-
disconnect,
|
|
118
|
-
reconnect: connect,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface SwipeGestureOptions {
|
|
2
|
-
onSwipeRight?: () => void;
|
|
3
|
-
onSwipeLeft?: () => void;
|
|
4
|
-
threshold?: number;
|
|
5
|
-
restraint?: number;
|
|
6
|
-
allowedTime?: number;
|
|
7
|
-
enabled?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare function useSwipeGesture({ onSwipeRight, onSwipeLeft, threshold, restraint, allowedTime, enabled, }: SwipeGestureOptions): import("react").RefObject<HTMLElement>;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=useSwipeGesture.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSwipeGesture.d.ts","sourceRoot":"","sources":["../../src/hooks/useSwipeGesture.ts"],"names":[],"mappings":"AAIA,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,WAAW,EACX,SAAe,EACf,SAAe,EACf,WAAiB,EACjB,OAAc,GACf,EAAE,mBAAmB,0CA+DrB"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useEffect, useRef, useCallback } from "react";
|
|
3
|
-
export function useSwipeGesture({ onSwipeRight, onSwipeLeft, threshold = 100, restraint = 100, allowedTime = 300, enabled = true, }) {
|
|
4
|
-
const touchStartX = useRef(0);
|
|
5
|
-
const touchStartY = useRef(0);
|
|
6
|
-
const touchStartTime = useRef(0);
|
|
7
|
-
const elementRef = useRef(null);
|
|
8
|
-
const handleTouchStart = useCallback((e) => {
|
|
9
|
-
if (!enabled)
|
|
10
|
-
return;
|
|
11
|
-
const touch = e.touches[0];
|
|
12
|
-
touchStartX.current = touch.clientX;
|
|
13
|
-
touchStartY.current = touch.clientY;
|
|
14
|
-
touchStartTime.current = Date.now();
|
|
15
|
-
}, [enabled]);
|
|
16
|
-
const handleTouchEnd = useCallback((e) => {
|
|
17
|
-
if (!enabled)
|
|
18
|
-
return;
|
|
19
|
-
const touch = e.changedTouches[0];
|
|
20
|
-
const touchEndX = touch.clientX;
|
|
21
|
-
const touchEndY = touch.clientY;
|
|
22
|
-
const touchEndTime = Date.now();
|
|
23
|
-
const distanceX = touchEndX - touchStartX.current;
|
|
24
|
-
const distanceY = touchEndY - touchStartY.current;
|
|
25
|
-
const elapsedTime = touchEndTime - touchStartTime.current;
|
|
26
|
-
// Check if the swipe meets our criteria
|
|
27
|
-
if (elapsedTime <= allowedTime) {
|
|
28
|
-
// Check if horizontal distance is sufficient and vertical distance is within restraint
|
|
29
|
-
if (Math.abs(distanceX) >= threshold && Math.abs(distanceY) <= restraint) {
|
|
30
|
-
if (distanceX > 0) {
|
|
31
|
-
// Swipe right
|
|
32
|
-
onSwipeRight === null || onSwipeRight === void 0 ? void 0 : onSwipeRight();
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
// Swipe left
|
|
36
|
-
onSwipeLeft === null || onSwipeLeft === void 0 ? void 0 : onSwipeLeft();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}, [enabled, threshold, restraint, allowedTime, onSwipeRight, onSwipeLeft]);
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
const element = elementRef.current;
|
|
43
|
-
if (!element || !enabled)
|
|
44
|
-
return;
|
|
45
|
-
// Add passive event listeners for better performance
|
|
46
|
-
element.addEventListener("touchstart", handleTouchStart, { passive: true });
|
|
47
|
-
element.addEventListener("touchend", handleTouchEnd, { passive: true });
|
|
48
|
-
return () => {
|
|
49
|
-
element.removeEventListener("touchstart", handleTouchStart);
|
|
50
|
-
element.removeEventListener("touchend", handleTouchEnd);
|
|
51
|
-
};
|
|
52
|
-
}, [handleTouchStart, handleTouchEnd, enabled]);
|
|
53
|
-
return elementRef;
|
|
54
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare function useTextSelection(): {
|
|
2
|
-
textareaRef: import("react").RefObject<HTMLTextAreaElement>;
|
|
3
|
-
getSelection: () => {
|
|
4
|
-
start: number;
|
|
5
|
-
end: number;
|
|
6
|
-
selectedText: string;
|
|
7
|
-
hasSelection: boolean;
|
|
8
|
-
} | null;
|
|
9
|
-
replaceSelection: (newText: string, selectReplaced?: boolean) => void;
|
|
10
|
-
wrapSelection: (prefix: string, suffix?: string) => void;
|
|
11
|
-
applyFormat: (format: string) => void;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=useTextSelection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTextSelection.d.ts","sourceRoot":"","sources":["../../src/hooks/useTextSelection.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB;;;;;;;;gCAmBiB,MAAM;4BA4B1C,MAAM,WAAU,MAAM;0BAqBtB,MAAM;EA0ElB"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useCallback, useRef } from "react";
|
|
3
|
-
export function useTextSelection() {
|
|
4
|
-
const textareaRef = useRef(null);
|
|
5
|
-
const getSelection = useCallback(() => {
|
|
6
|
-
const textarea = textareaRef.current;
|
|
7
|
-
if (!textarea)
|
|
8
|
-
return null;
|
|
9
|
-
const start = textarea.selectionStart;
|
|
10
|
-
const end = textarea.selectionEnd;
|
|
11
|
-
const selectedText = textarea.value.substring(start, end);
|
|
12
|
-
return {
|
|
13
|
-
start,
|
|
14
|
-
end,
|
|
15
|
-
selectedText,
|
|
16
|
-
hasSelection: start !== end,
|
|
17
|
-
};
|
|
18
|
-
}, []);
|
|
19
|
-
const replaceSelection = useCallback((newText, selectReplaced = false) => {
|
|
20
|
-
const textarea = textareaRef.current;
|
|
21
|
-
if (!textarea)
|
|
22
|
-
return;
|
|
23
|
-
const start = textarea.selectionStart;
|
|
24
|
-
const end = textarea.selectionEnd;
|
|
25
|
-
const value = textarea.value;
|
|
26
|
-
const newValue = value.substring(0, start) + newText + value.substring(end);
|
|
27
|
-
// Update the textarea value
|
|
28
|
-
textarea.value = newValue;
|
|
29
|
-
// Trigger change event
|
|
30
|
-
const event = new Event("input", { bubbles: true });
|
|
31
|
-
textarea.dispatchEvent(event);
|
|
32
|
-
// Set cursor position
|
|
33
|
-
if (selectReplaced) {
|
|
34
|
-
textarea.setSelectionRange(start, start + newText.length);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
textarea.setSelectionRange(start + newText.length, start + newText.length);
|
|
38
|
-
}
|
|
39
|
-
textarea.focus();
|
|
40
|
-
}, []);
|
|
41
|
-
const wrapSelection = useCallback((prefix, suffix = prefix) => {
|
|
42
|
-
const selection = getSelection();
|
|
43
|
-
if (!selection)
|
|
44
|
-
return;
|
|
45
|
-
const { selectedText, hasSelection } = selection;
|
|
46
|
-
if (hasSelection) {
|
|
47
|
-
// Wrap selected text
|
|
48
|
-
const wrappedText = `${prefix}${selectedText}${suffix}`;
|
|
49
|
-
replaceSelection(wrappedText, true);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
// Insert formatting markers at cursor
|
|
53
|
-
const placeholder = prefix === suffix ? "text" : "link";
|
|
54
|
-
const wrappedText = `${prefix}${placeholder}${suffix}`;
|
|
55
|
-
replaceSelection(wrappedText, true);
|
|
56
|
-
}
|
|
57
|
-
}, [getSelection, replaceSelection]);
|
|
58
|
-
const applyFormat = useCallback((format) => {
|
|
59
|
-
const selection = getSelection();
|
|
60
|
-
if (!selection)
|
|
61
|
-
return;
|
|
62
|
-
const { selectedText, hasSelection, start } = selection;
|
|
63
|
-
switch (format) {
|
|
64
|
-
case "bold":
|
|
65
|
-
wrapSelection("**");
|
|
66
|
-
break;
|
|
67
|
-
case "italic":
|
|
68
|
-
wrapSelection("*");
|
|
69
|
-
break;
|
|
70
|
-
case "strikethrough":
|
|
71
|
-
wrapSelection("~~");
|
|
72
|
-
break;
|
|
73
|
-
case "code":
|
|
74
|
-
wrapSelection("`");
|
|
75
|
-
break;
|
|
76
|
-
case "quote":
|
|
77
|
-
if (hasSelection) {
|
|
78
|
-
const quotedText = selectedText
|
|
79
|
-
.split("\n")
|
|
80
|
-
.map((line) => `> ${line}`)
|
|
81
|
-
.join("\n");
|
|
82
|
-
replaceSelection(quotedText);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
replaceSelection("> ");
|
|
86
|
-
}
|
|
87
|
-
break;
|
|
88
|
-
case "link":
|
|
89
|
-
if (hasSelection) {
|
|
90
|
-
const linkText = `[${selectedText}](url)`;
|
|
91
|
-
replaceSelection(linkText, true);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
replaceSelection("[text](url)", true);
|
|
95
|
-
}
|
|
96
|
-
break;
|
|
97
|
-
case "numbered-list":
|
|
98
|
-
if (hasSelection) {
|
|
99
|
-
const listText = selectedText
|
|
100
|
-
.split("\n")
|
|
101
|
-
.map((line, index) => `${index + 1}. ${line}`)
|
|
102
|
-
.join("\n");
|
|
103
|
-
replaceSelection(listText);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
replaceSelection("1. ");
|
|
107
|
-
}
|
|
108
|
-
break;
|
|
109
|
-
case "bullet-list":
|
|
110
|
-
if (hasSelection) {
|
|
111
|
-
const listText = selectedText
|
|
112
|
-
.split("\n")
|
|
113
|
-
.map((line) => `• ${line}`)
|
|
114
|
-
.join("\n");
|
|
115
|
-
replaceSelection(listText);
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
replaceSelection("• ");
|
|
119
|
-
}
|
|
120
|
-
break;
|
|
121
|
-
default:
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
}, [getSelection, wrapSelection, replaceSelection]);
|
|
125
|
-
return {
|
|
126
|
-
textareaRef,
|
|
127
|
-
getSelection,
|
|
128
|
-
replaceSelection,
|
|
129
|
-
wrapSelection,
|
|
130
|
-
applyFormat,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTyping.d.ts","sourceRoot":"","sources":["../../src/hooks/useTyping.ts"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,CAAC,cAAc,EAAE,MAAM;;;;;EAgE/C"}
|
package/dist/hooks/useTyping.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useCallback, useEffect, useRef } from "react";
|
|
3
|
-
import { useChatContext } from "../context/ChatContext";
|
|
4
|
-
import { useSocket } from "./useSocket";
|
|
5
|
-
export function useTyping(conversationId) {
|
|
6
|
-
var _a, _b;
|
|
7
|
-
const { state } = useChatContext();
|
|
8
|
-
const { sendMessage } = useSocket();
|
|
9
|
-
const typingTimeoutRef = useRef();
|
|
10
|
-
const startTyping = useCallback(() => {
|
|
11
|
-
var _a;
|
|
12
|
-
if (!((_a = state.config) === null || _a === void 0 ? void 0 : _a.userId) || !conversationId)
|
|
13
|
-
return;
|
|
14
|
-
sendMessage({
|
|
15
|
-
type: "typing",
|
|
16
|
-
data: {
|
|
17
|
-
userId: state.config.userId,
|
|
18
|
-
conversationId,
|
|
19
|
-
isTyping: true,
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
// Clear existing timeout
|
|
23
|
-
if (typingTimeoutRef.current) {
|
|
24
|
-
clearTimeout(typingTimeoutRef.current);
|
|
25
|
-
}
|
|
26
|
-
// Stop typing after 3 seconds of inactivity
|
|
27
|
-
typingTimeoutRef.current = setTimeout(() => {
|
|
28
|
-
stopTyping();
|
|
29
|
-
}, 3000);
|
|
30
|
-
}, [(_a = state.config) === null || _a === void 0 ? void 0 : _a.userId, conversationId, sendMessage]);
|
|
31
|
-
const stopTyping = useCallback(() => {
|
|
32
|
-
var _a;
|
|
33
|
-
if (!((_a = state.config) === null || _a === void 0 ? void 0 : _a.userId) || !conversationId)
|
|
34
|
-
return;
|
|
35
|
-
sendMessage({
|
|
36
|
-
type: "typing",
|
|
37
|
-
data: {
|
|
38
|
-
userId: state.config.userId,
|
|
39
|
-
conversationId,
|
|
40
|
-
isTyping: false,
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
if (typingTimeoutRef.current) {
|
|
44
|
-
clearTimeout(typingTimeoutRef.current);
|
|
45
|
-
}
|
|
46
|
-
}, [(_b = state.config) === null || _b === void 0 ? void 0 : _b.userId, conversationId, sendMessage]);
|
|
47
|
-
const typingUsers = state.typingStatuses
|
|
48
|
-
.filter((t) => { var _a; return t.conversationId === conversationId && t.userId !== ((_a = state.config) === null || _a === void 0 ? void 0 : _a.userId) && t.isTyping; })
|
|
49
|
-
.map((t) => state.users[t.userId])
|
|
50
|
-
.filter(Boolean);
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
return () => {
|
|
53
|
-
if (typingTimeoutRef.current) {
|
|
54
|
-
clearTimeout(typingTimeoutRef.current);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}, []);
|
|
58
|
-
return {
|
|
59
|
-
startTyping,
|
|
60
|
-
stopTyping,
|
|
61
|
-
typingUsers,
|
|
62
|
-
isTyping: typingUsers.length > 0,
|
|
63
|
-
};
|
|
64
|
-
}
|
package/dist/index.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export { ChatProvider, useChatContext } from "./context/ChatContext";
|
|
2
|
-
export { useChat } from "./hooks/useChat";
|
|
3
|
-
export { useMessages } from "./hooks/useMessages";
|
|
4
|
-
export { useTyping } from "./hooks/useTyping";
|
|
5
|
-
export { useSocket } from "./hooks/useSocket";
|
|
6
|
-
export { useTextSelection } from "./hooks/useTextSelection";
|
|
7
|
-
export { useSwipeGesture } from "./hooks/useSwipeGesture";
|
|
8
|
-
export { ChatLayout } from "./components/ChatLayout";
|
|
9
|
-
export { ChatHeader } from "./components/ChatHeader";
|
|
10
|
-
export { MessageList } from "./components/MessageList";
|
|
11
|
-
export { MessageItem } from "./components/MessageItem";
|
|
12
|
-
export { ChatInput } from "./components/ChatInput";
|
|
13
|
-
export { ConversationList } from "./components/ConversationList";
|
|
14
|
-
export { ConversationItem } from "./components/ConversationItem";
|
|
15
|
-
export { DateDivider } from "./components/DateDivider";
|
|
16
|
-
export { MessageItemDemo } from "./components/MessageItemDemo";
|
|
17
|
-
export { ChatBubble } from "./components/ChatBubble";
|
|
18
|
-
export { TypingIndicator } from "./components/TypingIndicator";
|
|
19
|
-
export { VoiceWaveIcon } from "./components/VoiceWaveIcon";
|
|
20
|
-
export { TextFormattingToolbar } from "./components/TextFormattingToolbar";
|
|
21
|
-
export { SwipeIndicator } from "./components/SwipeIndicator";
|
|
22
|
-
export { ImagePreviewModal } from "./components/ImagePreviewModal";
|
|
23
|
-
export { ChatInputWithCustomIcon } from "./components/ChatInputWithCustomIcon";
|
|
24
|
-
export { EmojiPicker } from "./components/EmojiPicker";
|
|
25
|
-
export { ChatInputDemo } from "./components/ChatInputDemo";
|
|
26
|
-
export { ImageLightbox } from "./components/ImageLightbox";
|
|
27
|
-
export type { User, Message, Conversation, TypingStatus, ChatConfig, MessageItemProps, } from "./types";
|
|
28
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGpE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,YAAY,EACV,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAA"}
|
package/dist/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// Main exports for the SDK
|
|
2
|
-
export { ChatProvider, useChatContext } from "./context/ChatContext";
|
|
3
|
-
// Hooks
|
|
4
|
-
export { useChat } from "./hooks/useChat";
|
|
5
|
-
export { useMessages } from "./hooks/useMessages";
|
|
6
|
-
export { useTyping } from "./hooks/useTyping";
|
|
7
|
-
export { useSocket } from "./hooks/useSocket";
|
|
8
|
-
export { useTextSelection } from "./hooks/useTextSelection";
|
|
9
|
-
export { useSwipeGesture } from "./hooks/useSwipeGesture";
|
|
10
|
-
// Components
|
|
11
|
-
export { ChatLayout } from "./components/ChatLayout";
|
|
12
|
-
export { ChatHeader } from "./components/ChatHeader";
|
|
13
|
-
export { MessageList } from "./components/MessageList";
|
|
14
|
-
export { MessageItem } from "./components/MessageItem";
|
|
15
|
-
export { ChatInput } from "./components/ChatInput";
|
|
16
|
-
export { ConversationList } from "./components/ConversationList";
|
|
17
|
-
export { ConversationItem } from "./components/ConversationItem";
|
|
18
|
-
export { DateDivider } from "./components/DateDivider";
|
|
19
|
-
export { MessageItemDemo } from "./components/MessageItemDemo";
|
|
20
|
-
export { ChatBubble } from "./components/ChatBubble";
|
|
21
|
-
export { TypingIndicator } from "./components/TypingIndicator";
|
|
22
|
-
export { VoiceWaveIcon } from "./components/VoiceWaveIcon";
|
|
23
|
-
export { TextFormattingToolbar } from "./components/TextFormattingToolbar";
|
|
24
|
-
export { SwipeIndicator } from "./components/SwipeIndicator";
|
|
25
|
-
export { ImagePreviewModal } from "./components/ImagePreviewModal";
|
|
26
|
-
export { ChatInputWithCustomIcon } from "./components/ChatInputWithCustomIcon";
|
|
27
|
-
export { EmojiPicker } from "./components/EmojiPicker";
|
|
28
|
-
export { ChatInputDemo } from "./components/ChatInputDemo";
|
|
29
|
-
export { ImageLightbox } from "./components/ImageLightbox";
|
package/dist/types/chat.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
export interface ChatInputProps {
|
|
3
|
-
onSendMessage?: (message: string) => void;
|
|
4
|
-
onEmojiClick?: (emoji: string) => void;
|
|
5
|
-
onFileUpload?: (file: File) => void;
|
|
6
|
-
onImageUpload?: (file: File) => void;
|
|
7
|
-
onContactShare?: () => void;
|
|
8
|
-
onVoiceRecord?: () => void;
|
|
9
|
-
onVoiceMessage?: () => void;
|
|
10
|
-
onQuickReact?: () => void;
|
|
11
|
-
placeholder?: string;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
className?: string;
|
|
14
|
-
onStickerClick?: (sticker: string) => void;
|
|
15
|
-
conversationId?: string;
|
|
16
|
-
}
|
|
17
|
-
export interface EmojiPickerProps {
|
|
18
|
-
onEmojiSelect?: (emoji: string) => void;
|
|
19
|
-
onClose?: () => void;
|
|
20
|
-
isOpen?: boolean;
|
|
21
|
-
ref?: React.Ref<HTMLDivElement>;
|
|
22
|
-
style?: React.CSSProperties;
|
|
23
|
-
}
|
|
24
|
-
export interface StickerPickerProps {
|
|
25
|
-
onStickerSelect?: (sticker: string) => void;
|
|
26
|
-
onClose?: () => void;
|
|
27
|
-
isOpen?: boolean;
|
|
28
|
-
ref?: React.Ref<HTMLDivElement>;
|
|
29
|
-
style?: React.CSSProperties;
|
|
30
|
-
}
|
|
31
|
-
export interface TextFormattingToolbarProps {
|
|
32
|
-
isOpen: boolean;
|
|
33
|
-
onClose: () => void;
|
|
34
|
-
onFormatSelect: (format: string) => void;
|
|
35
|
-
selectedFormats?: string[];
|
|
36
|
-
ref?: React.Ref<HTMLDivElement>;
|
|
37
|
-
style?: React.CSSProperties;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=chat.d.ts.map
|
package/dist/types/chat.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACpC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B"}
|
package/dist/types/chat.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/types/index.d.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
export type MessageStatus = "sending" | "sent" | "delivered" | "read";
|
|
2
|
-
export interface User {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
avatar?: string;
|
|
6
|
-
status: "online" | "offline" | "away";
|
|
7
|
-
lastSeen?: Date;
|
|
8
|
-
}
|
|
9
|
-
export interface Message {
|
|
10
|
-
id: string;
|
|
11
|
-
conversationId: string;
|
|
12
|
-
senderId: string;
|
|
13
|
-
content: string;
|
|
14
|
-
type: "text" | "image" | "file" | "promo";
|
|
15
|
-
timestamp: Date;
|
|
16
|
-
status: MessageStatus;
|
|
17
|
-
attachments?: Attachment[];
|
|
18
|
-
promoData?: PromotionalMessageData;
|
|
19
|
-
}
|
|
20
|
-
export interface Attachment {
|
|
21
|
-
id: string;
|
|
22
|
-
name: string;
|
|
23
|
-
url: string;
|
|
24
|
-
type: string;
|
|
25
|
-
size: number;
|
|
26
|
-
}
|
|
27
|
-
export interface Conversation {
|
|
28
|
-
id: string;
|
|
29
|
-
participants: User[];
|
|
30
|
-
lastMessage?: Message;
|
|
31
|
-
unreadCount: number;
|
|
32
|
-
updatedAt: Date;
|
|
33
|
-
type: "direct" | "group";
|
|
34
|
-
name?: string;
|
|
35
|
-
avatar?: string;
|
|
36
|
-
}
|
|
37
|
-
export interface TypingStatus {
|
|
38
|
-
userId: string;
|
|
39
|
-
conversationId: string;
|
|
40
|
-
isTyping: boolean;
|
|
41
|
-
}
|
|
42
|
-
export interface ChatConfig {
|
|
43
|
-
userId: string;
|
|
44
|
-
token: string;
|
|
45
|
-
apiUrl?: string;
|
|
46
|
-
wsUrl?: string;
|
|
47
|
-
onTokenRefresh?: () => Promise<string>;
|
|
48
|
-
}
|
|
49
|
-
export interface SocketMessage {
|
|
50
|
-
type: "message" | "typing" | "read" | "user_status";
|
|
51
|
-
data: any;
|
|
52
|
-
}
|
|
53
|
-
export type MessageAttachment = {
|
|
54
|
-
id: string;
|
|
55
|
-
type: "image" | "file";
|
|
56
|
-
url: string;
|
|
57
|
-
name?: string;
|
|
58
|
-
size?: number;
|
|
59
|
-
};
|
|
60
|
-
export type PromotionalMessageData = {
|
|
61
|
-
imageUrl: string;
|
|
62
|
-
title: string;
|
|
63
|
-
description: string;
|
|
64
|
-
buttonText: string;
|
|
65
|
-
buttonUrl: string;
|
|
66
|
-
};
|
|
67
|
-
export type DisplayMessage = {
|
|
68
|
-
id: string;
|
|
69
|
-
senderId: string;
|
|
70
|
-
type: "text" | "media" | "promo";
|
|
71
|
-
text?: string;
|
|
72
|
-
attachments?: MessageAttachment[];
|
|
73
|
-
promoData?: PromotionalMessageData;
|
|
74
|
-
createdAt: string;
|
|
75
|
-
isMine: boolean;
|
|
76
|
-
};
|
|
77
|
-
export type MessageItemProps = {
|
|
78
|
-
message: DisplayMessage;
|
|
79
|
-
isGrouped?: boolean;
|
|
80
|
-
onImageClick?: (imageId: string, images: {
|
|
81
|
-
id: string;
|
|
82
|
-
url: string;
|
|
83
|
-
name?: string;
|
|
84
|
-
}[]) => void;
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|