ajaxter-chat 3.0.16 → 3.1.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.
- package/dist/components/BlockList/index.d.ts +1 -0
- package/dist/components/BlockList/index.d.ts.map +1 -0
- package/dist/components/BlockList/index.js +55 -28
- package/dist/components/BlockList/index.js.map +1 -0
- package/dist/components/CallScreen/index.d.ts +3 -0
- package/dist/components/CallScreen/index.d.ts.map +1 -0
- package/dist/components/CallScreen/index.js +107 -29
- package/dist/components/CallScreen/index.js.map +1 -0
- package/dist/components/ChatScreen/index.d.ts +1 -0
- package/dist/components/ChatScreen/index.d.ts.map +1 -0
- package/dist/components/ChatScreen/index.js +493 -294
- package/dist/components/ChatScreen/index.js.map +1 -0
- package/dist/components/ChatWidget.d.ts +1 -0
- package/dist/components/ChatWidget.d.ts.map +1 -0
- package/dist/components/ChatWidget.js +359 -250
- package/dist/components/ChatWidget.js.map +1 -0
- package/dist/components/EmojiPicker/index.d.ts +1 -0
- package/dist/components/EmojiPicker/index.d.ts.map +1 -0
- package/dist/components/EmojiPicker/index.js +19 -7
- package/dist/components/EmojiPicker/index.js.map +1 -0
- package/dist/components/ErrorBoundary/index.d.ts +20 -0
- package/dist/components/ErrorBoundary/index.d.ts.map +1 -0
- package/dist/components/ErrorBoundary/index.js +76 -0
- package/dist/components/ErrorBoundary/index.js.map +1 -0
- package/dist/components/HomeScreen/index.d.ts +1 -0
- package/dist/components/HomeScreen/index.d.ts.map +1 -0
- package/dist/components/HomeScreen/index.js +236 -158
- package/dist/components/HomeScreen/index.js.map +1 -0
- package/dist/components/MaintenanceView/index.d.ts +1 -0
- package/dist/components/MaintenanceView/index.d.ts.map +1 -0
- package/dist/components/MaintenanceView/index.js +28 -12
- package/dist/components/MaintenanceView/index.js.map +1 -0
- package/dist/components/MiniCallBar/index.d.ts +15 -0
- package/dist/components/MiniCallBar/index.d.ts.map +1 -0
- package/dist/components/MiniCallBar/index.js +116 -0
- package/dist/components/MiniCallBar/index.js.map +1 -0
- package/dist/components/PermissionsGateScreen/index.d.ts +1 -0
- package/dist/components/PermissionsGateScreen/index.d.ts.map +1 -0
- package/dist/components/PermissionsGateScreen/index.js +82 -28
- package/dist/components/PermissionsGateScreen/index.js.map +1 -0
- package/dist/components/RecentChatsScreen/index.d.ts +1 -0
- package/dist/components/RecentChatsScreen/index.d.ts.map +1 -0
- package/dist/components/RecentChatsScreen/index.js +79 -19
- package/dist/components/RecentChatsScreen/index.js.map +1 -0
- package/dist/components/SlideNavMenu.d.ts +1 -0
- package/dist/components/SlideNavMenu.d.ts.map +1 -0
- package/dist/components/SlideNavMenu.js +82 -63
- package/dist/components/SlideNavMenu.js.map +1 -0
- package/dist/components/Tabs/BottomTabs.d.ts +1 -0
- package/dist/components/Tabs/BottomTabs.d.ts.map +1 -0
- package/dist/components/Tabs/BottomTabs.js +34 -19
- package/dist/components/Tabs/BottomTabs.js.map +1 -0
- package/dist/components/TicketDetailScreen/index.d.ts +1 -0
- package/dist/components/TicketDetailScreen/index.d.ts.map +1 -0
- package/dist/components/TicketDetailScreen/index.js +66 -27
- package/dist/components/TicketDetailScreen/index.js.map +1 -0
- package/dist/components/TicketFormScreen/index.d.ts +1 -0
- package/dist/components/TicketFormScreen/index.d.ts.map +1 -0
- package/dist/components/TicketFormScreen/index.js +99 -49
- package/dist/components/TicketFormScreen/index.js.map +1 -0
- package/dist/components/TicketScreen/index.d.ts +1 -0
- package/dist/components/TicketScreen/index.d.ts.map +1 -0
- package/dist/components/TicketScreen/index.js +95 -26
- package/dist/components/TicketScreen/index.js.map +1 -0
- package/dist/components/UserListScreen/index.d.ts +1 -0
- package/dist/components/UserListScreen/index.d.ts.map +1 -0
- package/dist/components/UserListScreen/index.js +127 -53
- package/dist/components/UserListScreen/index.js.map +1 -0
- package/dist/components/ViewerBlockedScreen/index.d.ts +1 -0
- package/dist/components/ViewerBlockedScreen/index.d.ts.map +1 -0
- package/dist/components/ViewerBlockedScreen/index.js +113 -61
- package/dist/components/ViewerBlockedScreen/index.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -2
- package/dist/config/index.js.map +1 -0
- package/dist/hooks/useChat.d.ts +9 -1
- package/dist/hooks/useChat.d.ts.map +1 -0
- package/dist/hooks/useChat.js +60 -18
- package/dist/hooks/useChat.js.map +1 -0
- package/dist/hooks/useRemoteConfig.d.ts +1 -0
- package/dist/hooks/useRemoteConfig.d.ts.map +1 -0
- package/dist/hooks/useRemoteConfig.js +12 -8
- package/dist/hooks/useRemoteConfig.js.map +1 -0
- package/dist/hooks/useSocket.d.ts +40 -0
- package/dist/hooks/useSocket.d.ts.map +1 -0
- package/dist/hooks/useSocket.js +190 -0
- package/dist/hooks/useSocket.js.map +1 -0
- package/dist/hooks/useWebRTC.d.ts +10 -2
- package/dist/hooks/useWebRTC.d.ts.map +1 -0
- package/dist/hooks/useWebRTC.js +101 -69
- package/dist/hooks/useWebRTC.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -21
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -0
- package/dist/utils/chat.d.ts +1 -0
- package/dist/utils/chat.d.ts.map +1 -0
- package/dist/utils/chat.js +17 -7
- package/dist/utils/chat.js.map +1 -0
- package/dist/utils/fileName.d.ts +1 -0
- package/dist/utils/fileName.d.ts.map +1 -0
- package/dist/utils/fileName.js +5 -1
- package/dist/utils/fileName.js.map +1 -0
- package/dist/utils/messageSound.d.ts +1 -0
- package/dist/utils/messageSound.d.ts.map +1 -0
- package/dist/utils/messageSound.js +9 -3
- package/dist/utils/messageSound.js.map +1 -0
- package/dist/utils/presenceStatus.d.ts +1 -0
- package/dist/utils/presenceStatus.d.ts.map +1 -0
- package/dist/utils/presenceStatus.js +11 -4
- package/dist/utils/presenceStatus.js.map +1 -0
- package/dist/utils/privacyConsent.d.ts +1 -0
- package/dist/utils/privacyConsent.d.ts.map +1 -0
- package/dist/utils/privacyConsent.js +9 -3
- package/dist/utils/privacyConsent.js.map +1 -0
- package/dist/utils/reenableRequest.d.ts +1 -0
- package/dist/utils/reenableRequest.d.ts.map +1 -0
- package/dist/utils/reenableRequest.js +5 -1
- package/dist/utils/reenableRequest.js.map +1 -0
- package/dist/utils/theme.d.ts +1 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +10 -4
- package/dist/utils/theme.js.map +1 -0
- package/dist/utils/widgetPermissions.d.ts +1 -0
- package/dist/utils/widgetPermissions.d.ts.map +1 -0
- package/dist/utils/widgetPermissions.js +13 -5
- package/dist/utils/widgetPermissions.js.map +1 -0
- package/dist/utils/widgetSession.d.ts +1 -0
- package/dist/utils/widgetSession.d.ts.map +1 -0
- package/dist/utils/widgetSession.js +9 -3
- package/dist/utils/widgetSession.js.map +1 -0
- package/package.json +3 -3
- package/src/components/CallScreen/index.tsx +23 -1
- package/src/components/ChatScreen/index.tsx +2 -1
- package/src/components/ChatWidget.tsx +314 -263
- package/src/components/ErrorBoundary/index.tsx +62 -0
- package/src/components/HomeScreen/index.tsx +0 -3
- package/src/components/MiniCallBar/index.tsx +150 -0
- package/src/hooks/useChat.ts +59 -12
- package/src/hooks/useSocket.ts +228 -0
- package/src/hooks/useWebRTC.ts +99 -64
- package/src/index.ts +7 -2
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sessionKey = sessionKey;
|
|
4
|
+
exports.loadSession = loadSession;
|
|
5
|
+
exports.saveSession = saveSession;
|
|
6
|
+
function sessionKey(widgetId) {
|
|
2
7
|
return `ajaxter_widget_session_${widgetId}`;
|
|
3
8
|
}
|
|
4
|
-
|
|
9
|
+
function loadSession(widgetId) {
|
|
5
10
|
if (typeof window === 'undefined')
|
|
6
11
|
return null;
|
|
7
12
|
try {
|
|
@@ -14,7 +19,7 @@ export function loadSession(widgetId) {
|
|
|
14
19
|
return null;
|
|
15
20
|
}
|
|
16
21
|
}
|
|
17
|
-
|
|
22
|
+
function saveSession(widgetId, state) {
|
|
18
23
|
try {
|
|
19
24
|
sessionStorage.setItem(sessionKey(widgetId), JSON.stringify(state));
|
|
20
25
|
}
|
|
@@ -22,3 +27,4 @@ export function saveSession(widgetId, state) {
|
|
|
22
27
|
/* quota */
|
|
23
28
|
}
|
|
24
29
|
}
|
|
30
|
+
//# sourceMappingURL=widgetSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widgetSession.js","sourceRoot":"","sources":["../../src/utils/widgetSession.ts"],"names":[],"mappings":";;AAYA,gCAEC;AAED,kCASC;AAED,kCAMC;AArBD,SAAgB,UAAU,CAAC,QAAgB;IACzC,OAAO,0BAA0B,QAAQ,EAAE,CAAC;AAC9C,CAAC;AAED,SAAgB,WAAW,CAAC,QAAgB;IAC1C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC;IACnD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,QAAgB,EAAE,KAA6B;IACzE,IAAI,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IAAC,WAAM,CAAC;QACP,WAAW;IACb,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ajaxter-chat",
|
|
3
|
-
"version": "3.0
|
|
4
|
-
"description": "Drawer-based chat widget with
|
|
3
|
+
"version": "3.1.0",
|
|
4
|
+
"description": "Drawer-based chat widget with real-time WebSocket, WebRTC calling, voice messages, tickets, block list, and transcript download.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": ["dist", "src", "public"],
|
|
@@ -23,6 +23,6 @@
|
|
|
23
23
|
"react-dom": "^18.0.0",
|
|
24
24
|
"typescript": "^5.0.0"
|
|
25
25
|
},
|
|
26
|
-
"keywords": ["react","nextjs","chat","widget","webrtc","support","tickets","drawer","typescript"],
|
|
26
|
+
"keywords": ["react","nextjs","chat","widget","webrtc","support","tickets","drawer","typescript","websocket","realtime"],
|
|
27
27
|
"license": "MIT"
|
|
28
28
|
}
|
|
@@ -10,11 +10,13 @@ interface CallScreenProps {
|
|
|
10
10
|
onToggleMute: () => void;
|
|
11
11
|
onToggleCamera: () => void;
|
|
12
12
|
primaryColor: string;
|
|
13
|
+
/** Collapse the drawer while keeping the call active (mic/cam stay on). */
|
|
14
|
+
onMinimize?: () => void;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export const CallScreen: React.FC<CallScreenProps> = ({
|
|
16
18
|
session, localVideoRef, remoteVideoRef,
|
|
17
|
-
onEnd, onToggleMute, onToggleCamera, primaryColor,
|
|
19
|
+
onEnd, onToggleMute, onToggleCamera, primaryColor, onMinimize,
|
|
18
20
|
}) => {
|
|
19
21
|
const [duration, setDuration] = useState(0);
|
|
20
22
|
const peer = session.peer as ChatUser;
|
|
@@ -64,6 +66,26 @@ export const CallScreen: React.FC<CallScreenProps> = ({
|
|
|
64
66
|
{session.state === 'ended' && 'Call Ended'}
|
|
65
67
|
</div>
|
|
66
68
|
</div>
|
|
69
|
+
{(session.state === 'calling' || session.state === 'connected') && onMinimize && (
|
|
70
|
+
<button
|
|
71
|
+
type="button"
|
|
72
|
+
onClick={onMinimize}
|
|
73
|
+
title="Minimize — keep call while you use the page"
|
|
74
|
+
style={{
|
|
75
|
+
padding: '8px 12px',
|
|
76
|
+
borderRadius: 10,
|
|
77
|
+
border: '1px solid rgba(255,255,255,0.35)',
|
|
78
|
+
background: 'rgba(0,0,0,0.25)',
|
|
79
|
+
color: '#fff',
|
|
80
|
+
fontSize: 13,
|
|
81
|
+
fontWeight: 600,
|
|
82
|
+
cursor: 'pointer',
|
|
83
|
+
flexShrink: 0,
|
|
84
|
+
}}
|
|
85
|
+
>
|
|
86
|
+
Minimize
|
|
87
|
+
</button>
|
|
88
|
+
)}
|
|
67
89
|
</div>
|
|
68
90
|
|
|
69
91
|
{/* Center: avatar + name */}
|
|
@@ -314,12 +314,13 @@ export const ChatScreen: React.FC<ChatScreenProps> = ({
|
|
|
314
314
|
marginLeft: 4,
|
|
315
315
|
}}
|
|
316
316
|
>
|
|
317
|
-
<span style={{ fontSize: 10, color: 'rgba(255,255,255,0.85)', fontWeight: 600 }}>Sound</span>
|
|
318
317
|
<button
|
|
319
318
|
type="button"
|
|
320
319
|
role="switch"
|
|
321
320
|
aria-checked={messageSoundEnabled}
|
|
322
321
|
onClick={() => onToggleMessageSound(!messageSoundEnabled)}
|
|
322
|
+
aria-label="Toggle message sound"
|
|
323
|
+
title="Toggle message sound"
|
|
323
324
|
style={{
|
|
324
325
|
width: 36,
|
|
325
326
|
height: 20,
|