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.
Files changed (147) hide show
  1. package/dist/components/BlockList/index.d.ts +1 -0
  2. package/dist/components/BlockList/index.d.ts.map +1 -0
  3. package/dist/components/BlockList/index.js +55 -28
  4. package/dist/components/BlockList/index.js.map +1 -0
  5. package/dist/components/CallScreen/index.d.ts +3 -0
  6. package/dist/components/CallScreen/index.d.ts.map +1 -0
  7. package/dist/components/CallScreen/index.js +107 -29
  8. package/dist/components/CallScreen/index.js.map +1 -0
  9. package/dist/components/ChatScreen/index.d.ts +1 -0
  10. package/dist/components/ChatScreen/index.d.ts.map +1 -0
  11. package/dist/components/ChatScreen/index.js +493 -294
  12. package/dist/components/ChatScreen/index.js.map +1 -0
  13. package/dist/components/ChatWidget.d.ts +1 -0
  14. package/dist/components/ChatWidget.d.ts.map +1 -0
  15. package/dist/components/ChatWidget.js +359 -250
  16. package/dist/components/ChatWidget.js.map +1 -0
  17. package/dist/components/EmojiPicker/index.d.ts +1 -0
  18. package/dist/components/EmojiPicker/index.d.ts.map +1 -0
  19. package/dist/components/EmojiPicker/index.js +19 -7
  20. package/dist/components/EmojiPicker/index.js.map +1 -0
  21. package/dist/components/ErrorBoundary/index.d.ts +20 -0
  22. package/dist/components/ErrorBoundary/index.d.ts.map +1 -0
  23. package/dist/components/ErrorBoundary/index.js +76 -0
  24. package/dist/components/ErrorBoundary/index.js.map +1 -0
  25. package/dist/components/HomeScreen/index.d.ts +1 -0
  26. package/dist/components/HomeScreen/index.d.ts.map +1 -0
  27. package/dist/components/HomeScreen/index.js +236 -158
  28. package/dist/components/HomeScreen/index.js.map +1 -0
  29. package/dist/components/MaintenanceView/index.d.ts +1 -0
  30. package/dist/components/MaintenanceView/index.d.ts.map +1 -0
  31. package/dist/components/MaintenanceView/index.js +28 -12
  32. package/dist/components/MaintenanceView/index.js.map +1 -0
  33. package/dist/components/MiniCallBar/index.d.ts +15 -0
  34. package/dist/components/MiniCallBar/index.d.ts.map +1 -0
  35. package/dist/components/MiniCallBar/index.js +116 -0
  36. package/dist/components/MiniCallBar/index.js.map +1 -0
  37. package/dist/components/PermissionsGateScreen/index.d.ts +1 -0
  38. package/dist/components/PermissionsGateScreen/index.d.ts.map +1 -0
  39. package/dist/components/PermissionsGateScreen/index.js +82 -28
  40. package/dist/components/PermissionsGateScreen/index.js.map +1 -0
  41. package/dist/components/RecentChatsScreen/index.d.ts +1 -0
  42. package/dist/components/RecentChatsScreen/index.d.ts.map +1 -0
  43. package/dist/components/RecentChatsScreen/index.js +79 -19
  44. package/dist/components/RecentChatsScreen/index.js.map +1 -0
  45. package/dist/components/SlideNavMenu.d.ts +1 -0
  46. package/dist/components/SlideNavMenu.d.ts.map +1 -0
  47. package/dist/components/SlideNavMenu.js +82 -63
  48. package/dist/components/SlideNavMenu.js.map +1 -0
  49. package/dist/components/Tabs/BottomTabs.d.ts +1 -0
  50. package/dist/components/Tabs/BottomTabs.d.ts.map +1 -0
  51. package/dist/components/Tabs/BottomTabs.js +34 -19
  52. package/dist/components/Tabs/BottomTabs.js.map +1 -0
  53. package/dist/components/TicketDetailScreen/index.d.ts +1 -0
  54. package/dist/components/TicketDetailScreen/index.d.ts.map +1 -0
  55. package/dist/components/TicketDetailScreen/index.js +66 -27
  56. package/dist/components/TicketDetailScreen/index.js.map +1 -0
  57. package/dist/components/TicketFormScreen/index.d.ts +1 -0
  58. package/dist/components/TicketFormScreen/index.d.ts.map +1 -0
  59. package/dist/components/TicketFormScreen/index.js +99 -49
  60. package/dist/components/TicketFormScreen/index.js.map +1 -0
  61. package/dist/components/TicketScreen/index.d.ts +1 -0
  62. package/dist/components/TicketScreen/index.d.ts.map +1 -0
  63. package/dist/components/TicketScreen/index.js +95 -26
  64. package/dist/components/TicketScreen/index.js.map +1 -0
  65. package/dist/components/UserListScreen/index.d.ts +1 -0
  66. package/dist/components/UserListScreen/index.d.ts.map +1 -0
  67. package/dist/components/UserListScreen/index.js +127 -53
  68. package/dist/components/UserListScreen/index.js.map +1 -0
  69. package/dist/components/ViewerBlockedScreen/index.d.ts +1 -0
  70. package/dist/components/ViewerBlockedScreen/index.d.ts.map +1 -0
  71. package/dist/components/ViewerBlockedScreen/index.js +113 -61
  72. package/dist/components/ViewerBlockedScreen/index.js.map +1 -0
  73. package/dist/config/index.d.ts +1 -0
  74. package/dist/config/index.d.ts.map +1 -0
  75. package/dist/config/index.js +7 -2
  76. package/dist/config/index.js.map +1 -0
  77. package/dist/hooks/useChat.d.ts +9 -1
  78. package/dist/hooks/useChat.d.ts.map +1 -0
  79. package/dist/hooks/useChat.js +60 -18
  80. package/dist/hooks/useChat.js.map +1 -0
  81. package/dist/hooks/useRemoteConfig.d.ts +1 -0
  82. package/dist/hooks/useRemoteConfig.d.ts.map +1 -0
  83. package/dist/hooks/useRemoteConfig.js +12 -8
  84. package/dist/hooks/useRemoteConfig.js.map +1 -0
  85. package/dist/hooks/useSocket.d.ts +40 -0
  86. package/dist/hooks/useSocket.d.ts.map +1 -0
  87. package/dist/hooks/useSocket.js +190 -0
  88. package/dist/hooks/useSocket.js.map +1 -0
  89. package/dist/hooks/useWebRTC.d.ts +10 -2
  90. package/dist/hooks/useWebRTC.d.ts.map +1 -0
  91. package/dist/hooks/useWebRTC.js +101 -69
  92. package/dist/hooks/useWebRTC.js.map +1 -0
  93. package/dist/index.d.ts +6 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +67 -21
  96. package/dist/index.js.map +1 -0
  97. package/dist/types/index.d.ts +1 -0
  98. package/dist/types/index.d.ts.map +1 -0
  99. package/dist/types/index.js +3 -1
  100. package/dist/types/index.js.map +1 -0
  101. package/dist/utils/chat.d.ts +1 -0
  102. package/dist/utils/chat.d.ts.map +1 -0
  103. package/dist/utils/chat.js +17 -7
  104. package/dist/utils/chat.js.map +1 -0
  105. package/dist/utils/fileName.d.ts +1 -0
  106. package/dist/utils/fileName.d.ts.map +1 -0
  107. package/dist/utils/fileName.js +5 -1
  108. package/dist/utils/fileName.js.map +1 -0
  109. package/dist/utils/messageSound.d.ts +1 -0
  110. package/dist/utils/messageSound.d.ts.map +1 -0
  111. package/dist/utils/messageSound.js +9 -3
  112. package/dist/utils/messageSound.js.map +1 -0
  113. package/dist/utils/presenceStatus.d.ts +1 -0
  114. package/dist/utils/presenceStatus.d.ts.map +1 -0
  115. package/dist/utils/presenceStatus.js +11 -4
  116. package/dist/utils/presenceStatus.js.map +1 -0
  117. package/dist/utils/privacyConsent.d.ts +1 -0
  118. package/dist/utils/privacyConsent.d.ts.map +1 -0
  119. package/dist/utils/privacyConsent.js +9 -3
  120. package/dist/utils/privacyConsent.js.map +1 -0
  121. package/dist/utils/reenableRequest.d.ts +1 -0
  122. package/dist/utils/reenableRequest.d.ts.map +1 -0
  123. package/dist/utils/reenableRequest.js +5 -1
  124. package/dist/utils/reenableRequest.js.map +1 -0
  125. package/dist/utils/theme.d.ts +1 -0
  126. package/dist/utils/theme.d.ts.map +1 -0
  127. package/dist/utils/theme.js +10 -4
  128. package/dist/utils/theme.js.map +1 -0
  129. package/dist/utils/widgetPermissions.d.ts +1 -0
  130. package/dist/utils/widgetPermissions.d.ts.map +1 -0
  131. package/dist/utils/widgetPermissions.js +13 -5
  132. package/dist/utils/widgetPermissions.js.map +1 -0
  133. package/dist/utils/widgetSession.d.ts +1 -0
  134. package/dist/utils/widgetSession.d.ts.map +1 -0
  135. package/dist/utils/widgetSession.js +9 -3
  136. package/dist/utils/widgetSession.js.map +1 -0
  137. package/package.json +3 -3
  138. package/src/components/CallScreen/index.tsx +23 -1
  139. package/src/components/ChatScreen/index.tsx +2 -1
  140. package/src/components/ChatWidget.tsx +314 -263
  141. package/src/components/ErrorBoundary/index.tsx +62 -0
  142. package/src/components/HomeScreen/index.tsx +0 -3
  143. package/src/components/MiniCallBar/index.tsx +150 -0
  144. package/src/hooks/useChat.ts +59 -12
  145. package/src/hooks/useSocket.ts +228 -0
  146. package/src/hooks/useWebRTC.ts +99 -64
  147. package/src/index.ts +7 -2
@@ -1,7 +1,12 @@
1
- export function sessionKey(widgetId) {
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
- export function loadSession(widgetId) {
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
- export function saveSession(widgetId, state) {
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.16",
4
- "description": "Drawer-based chat widget with support chat, tickets, WebRTC calling, voice messages, block list, and transcript download.",
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,