hazo_chat 2.0.16 → 2.1.1
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 +60 -8
- package/SETUP_CHECKLIST.md +266 -10
- package/dist/api/index.d.ts +17 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +16 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/messages.d.ts +52 -1
- package/dist/api/messages.d.ts.map +1 -1
- package/dist/api/messages.js +380 -22
- package/dist/api/messages.js.map +1 -1
- package/dist/api/types.d.ts +25 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/components/hazo_chat/hazo_chat.d.ts.map +1 -1
- package/dist/components/hazo_chat/hazo_chat.js +18 -10
- package/dist/components/hazo_chat/hazo_chat.js.map +1 -1
- package/dist/components/hazo_chat/hazo_chat_header.d.ts.map +1 -1
- package/dist/components/hazo_chat/hazo_chat_header.js +22 -1
- package/dist/components/hazo_chat/hazo_chat_header.js.map +1 -1
- package/dist/components/hazo_chat/hazo_chat_messages.d.ts +5 -4
- package/dist/components/hazo_chat/hazo_chat_messages.d.ts.map +1 -1
- package/dist/components/hazo_chat/hazo_chat_messages.js +153 -7
- package/dist/components/hazo_chat/hazo_chat_messages.js.map +1 -1
- package/dist/components/ui/chat_bubble.d.ts.map +1 -1
- package/dist/components/ui/chat_bubble.js +28 -5
- package/dist/components/ui/chat_bubble.js.map +1 -1
- package/dist/hooks/use_chat_messages.d.ts +3 -3
- package/dist/hooks/use_chat_messages.d.ts.map +1 -1
- package/dist/hooks/use_chat_messages.js +259 -136
- package/dist/hooks/use_chat_messages.js.map +1 -1
- package/dist/types/index.d.ts +108 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -34,7 +34,7 @@ function HazoChatInner({ receiver_user_id, reference_id = '', reference_type = '
|
|
|
34
34
|
// -------------------------------------------------------------------------
|
|
35
35
|
// Messages hook (uses API calls)
|
|
36
36
|
// -------------------------------------------------------------------------
|
|
37
|
-
const { messages, is_loading: is_loading_messages, has_more, load_more, send_message, delete_message, polling_status, refresh: refresh_messages } = useChatMessages({
|
|
37
|
+
const { messages, is_loading: is_loading_messages, has_more, load_more, send_message, delete_message, mark_as_read, polling_status, refresh: refresh_messages } = useChatMessages({
|
|
38
38
|
receiver_user_id,
|
|
39
39
|
reference_id,
|
|
40
40
|
reference_type,
|
|
@@ -173,23 +173,31 @@ function HazoChatInner({ receiver_user_id, reference_id = '', reference_type = '
|
|
|
173
173
|
// -------------------------------------------------------------------------
|
|
174
174
|
// Render
|
|
175
175
|
// -------------------------------------------------------------------------
|
|
176
|
-
return (_jsxs("div", { className: cn('cls_hazo_chat', 'flex flex-col h-full w-full', 'bg-background rounded-lg border overflow-hidden', className), children: [_jsx(HazoChatHeader, { title: title, subtitle: subtitle, on_close: on_close, on_refresh: refresh_messages, is_refreshing: is_loading_messages, on_toggle_sidebar: toggle_sidebar, is_sidebar_open: is_sidebar_open, show_sidebar_toggle: show_sidebar_toggle }), _jsx("div", { className: cn('cls_references_row border-b bg-muted/30 transition-all duration-300 ease-in-out overflow-hidden', is_references_expanded ? 'max-h-96' : 'max-h-8'), children: _jsxs("div", { className: "cls_references_container px-3 py-2", children: [_jsxs("button", {
|
|
176
|
+
return (_jsxs("div", { className: cn('cls_hazo_chat', 'flex flex-col h-full w-full', 'bg-background rounded-lg border overflow-hidden', className), children: [_jsx(HazoChatHeader, { title: title, subtitle: subtitle, on_close: on_close, on_refresh: refresh_messages, is_refreshing: is_loading_messages, on_toggle_sidebar: toggle_sidebar, is_sidebar_open: is_sidebar_open, show_sidebar_toggle: show_sidebar_toggle }), _jsx("div", { className: cn('cls_references_row border-b bg-muted/30 transition-all duration-300 ease-in-out overflow-hidden', is_references_expanded ? 'max-h-96' : 'max-h-8'), children: _jsxs("div", { className: "cls_references_container px-3 py-2", children: [_jsxs("button", { type: "button", onClick: (e) => {
|
|
177
|
+
e.preventDefault();
|
|
178
|
+
e.stopPropagation();
|
|
179
|
+
set_is_references_expanded((prev) => !prev);
|
|
180
|
+
}, className: "cls_references_header flex items-center justify-between w-full gap-2 mb-1.5 hover:bg-muted/50 rounded px-1 -mx-1 transition-colors cursor-pointer", "aria-label": is_references_expanded ? 'Collapse references' : 'Expand references', "aria-expanded": is_references_expanded, children: [_jsx("h3", { className: "text-[9px] font-medium text-muted-foreground uppercase tracking-wider", children: "References" }), is_references_expanded ? (_jsx(IoChevronUp, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" })) : (_jsx(IoChevronDown, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" }))] }), is_references_expanded && (_jsx("div", { className: "cls_references_content", children: _jsx(HazoChatReferenceList, { references: references, selected_reference_id: selected_reference?.id, on_select: handle_reference_select, className: "flex-wrap" }) }))] }) }), _jsxs("div", { ref: main_content_ref, className: "cls_main_content flex flex-1 overflow-hidden relative h-full min-h-0", children: [_jsx("div", { className: cn('cls_doc_preview_column', 'border-r bg-muted/20', 'flex-shrink-0 flex flex-col', 'transition-all duration-300 ease-in-out overflow-hidden',
|
|
177
181
|
// Mobile: hidden by default, shown when sidebar is open
|
|
178
182
|
is_sidebar_open ? 'flex' : 'hidden md:flex',
|
|
179
183
|
// Collapse/expand based on state
|
|
180
184
|
is_document_viewer_expanded
|
|
181
185
|
? 'w-[280px] md:w-[320px] lg:w-[380px]'
|
|
182
|
-
: 'w-0 border-r-0'), children: is_document_viewer_expanded && (_jsx(HazoChatDocumentViewer, { reference: selected_reference || undefined })) }), _jsx(Button, { variant: "outline", size: "icon",
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
(
|
|
186
|
+
: 'w-0 border-r-0'), children: is_document_viewer_expanded && (_jsx(HazoChatDocumentViewer, { reference: selected_reference || undefined })) }), (!is_sidebar_open || is_sidebar_open) && (_jsx(Button, { variant: "outline", size: "icon", type: "button", onClick: (e) => {
|
|
187
|
+
e.preventDefault();
|
|
188
|
+
e.stopPropagation();
|
|
189
|
+
set_is_document_viewer_expanded((prev) => !prev);
|
|
190
|
+
}, className: cn('cls_doc_viewer_toggle', 'absolute z-30 pointer-events-auto', 'h-8 w-6 rounded-r-md rounded-l-none border-l-0', 'bg-background hover:bg-accent border', 'shadow-sm', 'transition-all duration-300', 'flex items-center justify-center',
|
|
191
|
+
// Center vertically
|
|
192
|
+
'top-1/2', '-translate-y-1/2',
|
|
193
|
+
// Hide on mobile when sidebar is closed, show on desktop
|
|
194
|
+
(!is_sidebar_open ? 'hidden md:flex' : 'flex'),
|
|
195
|
+
// Position based on expanded state - ensure button is always visible
|
|
196
|
+
is_document_viewer_expanded
|
|
187
197
|
? 'left-[280px] md:left-[320px] lg:left-[380px]'
|
|
188
198
|
: 'left-0'), style: {
|
|
189
|
-
top: '50%',
|
|
190
199
|
transform: 'translateY(-50%)',
|
|
191
|
-
|
|
192
|
-
}, "aria-label": is_document_viewer_expanded ? 'Collapse document viewer' : 'Expand document viewer', children: is_document_viewer_expanded ? (_jsx(IoChevronBack, { className: "h-4 w-4" })) : (_jsx(IoChevronForward, { className: "h-4 w-4" })) }), _jsx("div", { className: "cls_chat_column flex flex-col flex-1 min-w-0", children: _jsx(HazoChatMessages, { messages: messages, current_user_id: current_user?.id || '', timezone: timezone, is_loading: is_loading_messages, has_more: has_more, on_load_more: load_more, on_delete_message: delete_message, highlighted_message_id: highlighted_message_id || undefined, show_delete_button: show_delete_button, bubble_radius: bubble_radius }) })] }), _jsx("div", { className: "cls_input_row border-t bg-background", children: _jsx(HazoChatInput, { on_send: handle_send, pending_attachments: pending_attachments, on_add_attachment: handle_add_attachment, on_remove_attachment: handle_remove_attachment, is_disabled: !current_user || is_uploading }) }), polling_status !== 'connected' && (_jsx("div", { className: cn('cls_connection_status', 'absolute bottom-20 left-1/2 -translate-x-1/2', 'px-3 py-1.5 rounded-full text-xs font-medium z-10', polling_status === 'reconnecting'
|
|
200
|
+
}, "aria-label": is_document_viewer_expanded ? 'Collapse document viewer' : 'Expand document viewer', children: is_document_viewer_expanded ? (_jsx(IoChevronBack, { className: "h-4 w-4" })) : (_jsx(IoChevronForward, { className: "h-4 w-4" })) })), _jsx("div", { className: "cls_chat_column flex flex-col flex-1 min-w-0", children: _jsx(HazoChatMessages, { messages: messages, current_user_id: current_user?.id || '', timezone: timezone, is_loading: is_loading_messages, has_more: has_more, on_load_more: load_more, on_delete_message: delete_message, on_mark_as_read: mark_as_read, highlighted_message_id: highlighted_message_id || undefined, show_delete_button: show_delete_button, bubble_radius: bubble_radius }) })] }), _jsx("div", { className: "cls_input_row border-t bg-background", children: _jsx(HazoChatInput, { on_send: handle_send, pending_attachments: pending_attachments, on_add_attachment: handle_add_attachment, on_remove_attachment: handle_remove_attachment, is_disabled: !current_user || is_uploading }) }), polling_status !== 'connected' && (_jsx("div", { className: cn('cls_connection_status', 'absolute bottom-20 left-1/2 -translate-x-1/2', 'px-3 py-1.5 rounded-full text-xs font-medium z-10', polling_status === 'reconnecting'
|
|
193
201
|
? 'bg-yellow-100 text-yellow-800'
|
|
194
202
|
: 'bg-red-100 text-red-800'), children: polling_status === 'reconnecting' ? 'Reconnecting...' : 'Connection error' }))] }));
|
|
195
203
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hazo_chat.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat_header.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_header.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAYhE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAA2B,EAC3B,SAAS,EACV,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"hazo_chat_header.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_header.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAYhE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAA2B,EAC3B,SAAS,EACV,EAAE,mBAAmB,2CAqIrB;yBA/Ie,cAAc"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
'use client';
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useCallback } from 'react';
|
|
13
14
|
import { IoClose, IoMenuOutline, IoRefresh } from 'react-icons/io5';
|
|
14
15
|
import { cn } from '../../lib/utils.js';
|
|
15
16
|
import { Button } from '../ui/button.js';
|
|
@@ -18,7 +19,27 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip.js';
|
|
|
18
19
|
// Component
|
|
19
20
|
// ============================================================================
|
|
20
21
|
export function HazoChatHeader({ title, subtitle, on_close, on_refresh, is_refreshing, on_toggle_sidebar, is_sidebar_open, show_sidebar_toggle = false, className }) {
|
|
21
|
-
|
|
22
|
+
// Handle close button click - ensure event is properly handled
|
|
23
|
+
const handle_close_click = useCallback((e) => {
|
|
24
|
+
// Prevent any default behavior and stop propagation
|
|
25
|
+
e.preventDefault();
|
|
26
|
+
e.stopPropagation();
|
|
27
|
+
// Log for debugging
|
|
28
|
+
console.log('[HazoChatHeader] Close button clicked, on_close:', typeof on_close);
|
|
29
|
+
// Call the close handler if provided
|
|
30
|
+
if (typeof on_close === 'function') {
|
|
31
|
+
try {
|
|
32
|
+
on_close();
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
console.error('[HazoChatHeader] Error calling on_close:', err);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}, [on_close]);
|
|
39
|
+
return (_jsxs("header", { className: cn('cls_hazo_chat_header', 'flex items-center justify-between', 'h-14 px-4', 'border-b border-border/40', 'bg-card/80 backdrop-blur-md', 'shadow-sm', className), children: [_jsxs("div", { className: "cls_header_left flex items-center gap-3", children: [show_sidebar_toggle && on_toggle_sidebar && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", onClick: on_toggle_sidebar, className: cn('cls_sidebar_toggle md:hidden', 'h-8 w-8 rounded-md', 'hover:bg-accent hover:text-accent-foreground', 'transition-colors'), "aria-label": is_sidebar_open ? 'Close sidebar' : 'Open sidebar', "aria-expanded": is_sidebar_open, children: _jsx(IoMenuOutline, { className: "h-5 w-5" }) }) }), _jsx(TooltipContent, { side: "bottom", className: "text-xs", children: is_sidebar_open ? 'Close sidebar' : 'Open sidebar' })] })), _jsxs("div", { className: "cls_header_titles flex flex-col gap-0.5", children: [title && (_jsx("h2", { className: "cls_header_title text-sm font-semibold tracking-tight text-foreground", children: title })), subtitle && (_jsx("p", { className: "cls_header_subtitle text-xs font-medium text-muted-foreground", children: subtitle }))] })] }), _jsxs("div", { className: "cls_header_right flex items-center gap-1", children: [on_refresh && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", onClick: on_refresh, disabled: is_refreshing, className: cn('cls_header_refresh', 'h-8 w-8 rounded-md', 'text-muted-foreground', 'hover:bg-accent hover:text-accent-foreground', 'transition-colors'), "aria-label": "Refresh chat history", children: _jsx(IoRefresh, { className: cn('h-4 w-4', is_refreshing && 'animate-spin') }) }) }), _jsx(TooltipContent, { side: "bottom", className: "text-xs", children: "Refresh chat" })] })), on_close && (_jsx(Button, { variant: "ghost", size: "icon", onClick: handle_close_click, onMouseDown: (e) => {
|
|
40
|
+
// Ensure the click is captured even if tooltip interferes
|
|
41
|
+
e.stopPropagation();
|
|
42
|
+
}, type: "button", className: cn('cls_header_close', 'h-8 w-8 rounded-md', 'text-muted-foreground', 'hover:bg-destructive/10 hover:text-destructive', 'transition-colors'), "aria-label": "Close chat", title: "Close chat", children: _jsx(IoClose, { className: "h-4 w-4" }) }))] })] }));
|
|
22
43
|
}
|
|
23
44
|
HazoChatHeader.displayName = 'HazoChatHeader';
|
|
24
45
|
//# sourceMappingURL=hazo_chat_header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat_header.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_header.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"hazo_chat_header.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
* - Auto-scroll to new messages
|
|
7
7
|
* - Scroll to highlighted message
|
|
8
8
|
* - Empty and loading states
|
|
9
|
+
* - Memoization for performance
|
|
9
10
|
*
|
|
10
11
|
* Uses shadcn/ui ScrollArea component.
|
|
11
12
|
*/
|
|
13
|
+
import React from 'react';
|
|
12
14
|
import type { HazoChatMessagesProps } from '../../types/index.js';
|
|
13
|
-
|
|
14
|
-
export declare
|
|
15
|
-
|
|
16
|
-
}
|
|
15
|
+
declare function HazoChatMessagesInner({ messages, current_user_id, timezone, is_loading, has_more, on_load_more, on_delete_message, on_mark_as_read, on_scroll_to_message, highlighted_message_id, show_delete_button, bubble_radius, className }: HazoChatMessagesProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare const HazoChatMessages: React.MemoExoticComponent<typeof HazoChatMessagesInner>;
|
|
17
|
+
export {};
|
|
17
18
|
//# sourceMappingURL=hazo_chat_messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat_messages.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_messages.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hazo_chat_messages.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_messages.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,qBAAqB,EAAkC,MAAM,sBAAsB,CAAC;AAkElG,iBAAS,qBAAqB,CAAC,EAC7B,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,kBAAyB,EACzB,aAAyB,EACzB,SAAS,EACV,EAAE,qBAAqB,2CA2RvB;AAGD,eAAO,MAAM,gBAAgB,yDAwB3B,CAAC"}
|
|
@@ -6,25 +6,41 @@
|
|
|
6
6
|
* - Auto-scroll to new messages
|
|
7
7
|
* - Scroll to highlighted message
|
|
8
8
|
* - Empty and loading states
|
|
9
|
+
* - Memoization for performance
|
|
9
10
|
*
|
|
10
11
|
* Uses shadcn/ui ScrollArea component.
|
|
11
12
|
*/
|
|
12
13
|
'use client';
|
|
13
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
import { useRef, useEffect, useCallback } from 'react';
|
|
15
|
+
import { useRef, useEffect, useCallback, memo } from 'react';
|
|
15
16
|
import { cn } from '../../lib/utils.js';
|
|
16
17
|
import { ChatBubble } from '../ui/chat_bubble.js';
|
|
17
18
|
import { LoadingSkeleton } from '../ui/loading_skeleton.js';
|
|
18
19
|
import { ScrollArea } from '../ui/scroll-area.js';
|
|
19
20
|
import { EMPTY_CHAT_MESSAGE } from '../../lib/constants.js';
|
|
21
|
+
const MemoizedChatBubble = memo(function MemoizedChatBubble({ message, current_user_id, timezone, on_delete_message, on_reference_click, is_highlighted, show_delete_button, bubble_radius, }) {
|
|
22
|
+
const is_sender = message.sender_user_id === current_user_id;
|
|
23
|
+
return (_jsx(ChatBubble, { message: message, is_sender: is_sender, sender_profile: message.sender_profile, timezone: timezone, on_delete: is_sender ? () => on_delete_message(message.id) : undefined, on_reference_click: on_reference_click, is_highlighted: is_highlighted, show_delete_button: show_delete_button, bubble_radius: bubble_radius }));
|
|
24
|
+
}, (prevProps, nextProps) => {
|
|
25
|
+
// Only re-render if these specific props change
|
|
26
|
+
return (prevProps.message.id === nextProps.message.id &&
|
|
27
|
+
prevProps.message.read_at === nextProps.message.read_at &&
|
|
28
|
+
prevProps.message.deleted_at === nextProps.message.deleted_at &&
|
|
29
|
+
prevProps.message.send_status === nextProps.message.send_status &&
|
|
30
|
+
prevProps.is_highlighted === nextProps.is_highlighted &&
|
|
31
|
+
prevProps.show_delete_button === nextProps.show_delete_button &&
|
|
32
|
+
prevProps.bubble_radius === nextProps.bubble_radius);
|
|
33
|
+
});
|
|
20
34
|
// ============================================================================
|
|
21
35
|
// Component
|
|
22
36
|
// ============================================================================
|
|
23
|
-
|
|
37
|
+
function HazoChatMessagesInner({ messages, current_user_id, timezone, is_loading, has_more, on_load_more, on_delete_message, on_mark_as_read, on_scroll_to_message, highlighted_message_id, show_delete_button = true, bubble_radius = 'default', className }) {
|
|
24
38
|
const container_ref = useRef(null);
|
|
25
39
|
const load_more_trigger_ref = useRef(null);
|
|
26
40
|
const is_at_bottom_ref = useRef(true);
|
|
27
41
|
const previous_messages_length_ref = useRef(0);
|
|
42
|
+
const message_refs = useRef(new Map());
|
|
43
|
+
const marked_as_read_ref = useRef(new Set());
|
|
28
44
|
// -------------------------------------------------------------------------
|
|
29
45
|
// Intersection observer for infinite scroll
|
|
30
46
|
// -------------------------------------------------------------------------
|
|
@@ -61,8 +77,17 @@ export function HazoChatMessages({ messages, current_user_id, timezone, is_loadi
|
|
|
61
77
|
const container = container_ref.current;
|
|
62
78
|
if (!container)
|
|
63
79
|
return;
|
|
80
|
+
// On initial load, scroll to bottom (newest message)
|
|
81
|
+
if (previous_messages_length_ref.current === 0 && messages.length > 0) {
|
|
82
|
+
// Initial load - scroll to bottom after a short delay to ensure DOM is ready
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
if (container_ref.current) {
|
|
85
|
+
container_ref.current.scrollTop = container_ref.current.scrollHeight;
|
|
86
|
+
}
|
|
87
|
+
}, 100);
|
|
88
|
+
}
|
|
64
89
|
// Only auto-scroll if we were at the bottom and new messages arrived
|
|
65
|
-
if (is_at_bottom_ref.current && messages.length > previous_messages_length_ref.current) {
|
|
90
|
+
else if (is_at_bottom_ref.current && messages.length > previous_messages_length_ref.current) {
|
|
66
91
|
container.scrollTop = container.scrollHeight;
|
|
67
92
|
}
|
|
68
93
|
previous_messages_length_ref.current = messages.length;
|
|
@@ -86,6 +111,94 @@ export function HazoChatMessages({ messages, current_user_id, timezone, is_loadi
|
|
|
86
111
|
console.log('[HazoChatMessages] Reference clicked:', reference);
|
|
87
112
|
}, []);
|
|
88
113
|
// -------------------------------------------------------------------------
|
|
114
|
+
// Auto-mark messages as read when they become visible
|
|
115
|
+
// -------------------------------------------------------------------------
|
|
116
|
+
useEffect(() => {
|
|
117
|
+
console.log('[HazoChatMessages] Mark-as-read effect running:', {
|
|
118
|
+
has_on_mark_as_read: !!on_mark_as_read,
|
|
119
|
+
current_user_id,
|
|
120
|
+
total_messages: messages.length,
|
|
121
|
+
});
|
|
122
|
+
if (!on_mark_as_read) {
|
|
123
|
+
console.warn('[HazoChatMessages] on_mark_as_read not provided - cannot mark messages as read');
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// Filter to only unread messages received by current user
|
|
127
|
+
const unread_messages = messages.filter((msg) => msg.receiver_user_id === current_user_id &&
|
|
128
|
+
msg.sender_user_id !== current_user_id &&
|
|
129
|
+
!msg.read_at &&
|
|
130
|
+
!marked_as_read_ref.current.has(msg.id));
|
|
131
|
+
console.log('[HazoChatMessages] Unread messages to observe:', {
|
|
132
|
+
count: unread_messages.length,
|
|
133
|
+
message_ids: unread_messages.map(m => m.id),
|
|
134
|
+
});
|
|
135
|
+
if (unread_messages.length === 0)
|
|
136
|
+
return;
|
|
137
|
+
// Find the ScrollArea viewport (the actual scrolling container)
|
|
138
|
+
// Radix UI ScrollArea creates a viewport element with data attribute
|
|
139
|
+
const scroll_viewport = container_ref.current?.closest('[data-radix-scroll-area-viewport]');
|
|
140
|
+
const root = scroll_viewport || null;
|
|
141
|
+
console.log('[HazoChatMessages] ScrollArea viewport found:', {
|
|
142
|
+
has_viewport: !!scroll_viewport,
|
|
143
|
+
viewport_tag: scroll_viewport?.tagName,
|
|
144
|
+
container_ref_set: !!container_ref.current,
|
|
145
|
+
});
|
|
146
|
+
// Create intersection observer for each unread message
|
|
147
|
+
const observers = [];
|
|
148
|
+
// Use a small delay to ensure refs are set after render
|
|
149
|
+
const timeout_id = setTimeout(() => {
|
|
150
|
+
console.log('[HazoChatMessages] Setting up observers for', unread_messages.length, 'unread messages');
|
|
151
|
+
unread_messages.forEach((message) => {
|
|
152
|
+
const element = message_refs.current.get(message.id);
|
|
153
|
+
if (!element) {
|
|
154
|
+
console.warn('[HazoChatMessages] Element not found for message:', message.id);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
console.log('[HazoChatMessages] Creating observer for message:', message.id);
|
|
158
|
+
const observer = new IntersectionObserver((entries) => {
|
|
159
|
+
entries.forEach((entry) => {
|
|
160
|
+
console.log('[HazoChatMessages] Observer callback for', message.id, ':', {
|
|
161
|
+
isIntersecting: entry.isIntersecting,
|
|
162
|
+
intersectionRatio: entry.intersectionRatio,
|
|
163
|
+
});
|
|
164
|
+
if (entry.isIntersecting && entry.intersectionRatio > 0.5) {
|
|
165
|
+
// Message is at least 50% visible, mark as read
|
|
166
|
+
if (!marked_as_read_ref.current.has(message.id)) {
|
|
167
|
+
marked_as_read_ref.current.add(message.id);
|
|
168
|
+
console.log('[HazoChatMessages] Marking message as read:', message.id);
|
|
169
|
+
on_mark_as_read(message.id);
|
|
170
|
+
observer.disconnect();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}, {
|
|
175
|
+
threshold: 0.5, // Mark as read when 50% visible
|
|
176
|
+
root: root, // Use ScrollArea viewport as root
|
|
177
|
+
rootMargin: '0px',
|
|
178
|
+
});
|
|
179
|
+
observer.observe(element);
|
|
180
|
+
observers.push(observer);
|
|
181
|
+
});
|
|
182
|
+
console.log('[HazoChatMessages] Total observers created:', observers.length);
|
|
183
|
+
}, 100); // Small delay to ensure DOM refs are ready
|
|
184
|
+
return () => {
|
|
185
|
+
clearTimeout(timeout_id);
|
|
186
|
+
observers.forEach((observer) => observer.disconnect());
|
|
187
|
+
};
|
|
188
|
+
}, [messages, current_user_id, on_mark_as_read]);
|
|
189
|
+
// -------------------------------------------------------------------------
|
|
190
|
+
// Clean up marked_as_read set when messages change significantly
|
|
191
|
+
// -------------------------------------------------------------------------
|
|
192
|
+
useEffect(() => {
|
|
193
|
+
// Remove IDs from marked_as_read set if message is no longer in messages
|
|
194
|
+
const current_message_ids = new Set(messages.map((m) => m.id));
|
|
195
|
+
marked_as_read_ref.current.forEach((id) => {
|
|
196
|
+
if (!current_message_ids.has(id)) {
|
|
197
|
+
marked_as_read_ref.current.delete(id);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}, [messages]);
|
|
201
|
+
// -------------------------------------------------------------------------
|
|
89
202
|
// Loading state
|
|
90
203
|
// -------------------------------------------------------------------------
|
|
91
204
|
if (is_loading && messages.length === 0) {
|
|
@@ -100,10 +213,43 @@ export function HazoChatMessages({ messages, current_user_id, timezone, is_loadi
|
|
|
100
213
|
// -------------------------------------------------------------------------
|
|
101
214
|
// Messages list
|
|
102
215
|
// -------------------------------------------------------------------------
|
|
103
|
-
return (_jsx(ScrollArea, { className: cn('cls_hazo_chat_messages flex-1', className), children: _jsxs("div", { ref: container_ref, onScroll: handle_scroll, className: cn('cls_messages_container', 'p-4', 'flex flex-col
|
|
104
|
-
), role: "log", "aria-label": "Chat messages", "aria-live": "polite", children: [
|
|
105
|
-
|
|
106
|
-
|
|
216
|
+
return (_jsx(ScrollArea, { className: cn('cls_hazo_chat_messages flex-1', className), children: _jsxs("div", { ref: container_ref, onScroll: handle_scroll, className: cn('cls_messages_container', 'p-4', 'flex flex-col' // Normal order: oldest first, newest last (at bottom)
|
|
217
|
+
), role: "log", "aria-label": "Chat messages", "aria-live": "polite", children: [has_more && (_jsx("div", { ref: load_more_trigger_ref, className: "cls_load_more_trigger py-4", children: _jsx(LoadingSkeleton, { variant: "message", count: 2 }) })), messages.map((message) => (_jsx("div", { id: `message-${message.id}`, ref: (el) => {
|
|
218
|
+
if (el) {
|
|
219
|
+
message_refs.current.set(message.id, el);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
message_refs.current.delete(message.id);
|
|
223
|
+
}
|
|
224
|
+
}, children: _jsx(MemoizedChatBubble, { message: message, current_user_id: current_user_id, timezone: timezone, on_delete_message: on_delete_message, on_reference_click: handle_reference_click, is_highlighted: highlighted_message_id === message.id, show_delete_button: show_delete_button, bubble_radius: bubble_radius }) }, message.id)))] }) }));
|
|
107
225
|
}
|
|
226
|
+
// Memoized export to prevent unnecessary re-renders
|
|
227
|
+
export const HazoChatMessages = memo(HazoChatMessagesInner, (prevProps, nextProps) => {
|
|
228
|
+
// Deep comparison for messages array by checking length and IDs
|
|
229
|
+
if (prevProps.messages.length !== nextProps.messages.length)
|
|
230
|
+
return false;
|
|
231
|
+
if (prevProps.is_loading !== nextProps.is_loading)
|
|
232
|
+
return false;
|
|
233
|
+
if (prevProps.has_more !== nextProps.has_more)
|
|
234
|
+
return false;
|
|
235
|
+
if (prevProps.highlighted_message_id !== nextProps.highlighted_message_id)
|
|
236
|
+
return false;
|
|
237
|
+
if (prevProps.show_delete_button !== nextProps.show_delete_button)
|
|
238
|
+
return false;
|
|
239
|
+
if (prevProps.bubble_radius !== nextProps.bubble_radius)
|
|
240
|
+
return false;
|
|
241
|
+
// Check if any message has changed (by comparing key fields)
|
|
242
|
+
for (let i = 0; i < prevProps.messages.length; i++) {
|
|
243
|
+
const prev = prevProps.messages[i];
|
|
244
|
+
const next = nextProps.messages[i];
|
|
245
|
+
if (prev.id !== next.id ||
|
|
246
|
+
prev.read_at !== next.read_at ||
|
|
247
|
+
prev.deleted_at !== next.deleted_at ||
|
|
248
|
+
prev.send_status !== next.send_status) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return true;
|
|
253
|
+
});
|
|
108
254
|
HazoChatMessages.displayName = 'HazoChatMessages';
|
|
109
255
|
//# sourceMappingURL=hazo_chat_messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat_messages.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_messages.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hazo_chat_messages.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat_messages.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_bubble.d.ts","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"chat_bubble.d.ts","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AAuF/E,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,cAAsB,EACtB,kBAAyB,EACzB,aAAyB,EACzB,SAAS,EACV,EAAE,eAAe,2CAmSjB;yBA9Se,UAAU"}
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
* Uses shadcn/ui Avatar, Button, Tooltip, and HoverCard components.
|
|
12
12
|
*/
|
|
13
13
|
'use client';
|
|
14
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
15
15
|
import { useState, useCallback } from 'react';
|
|
16
16
|
import { format } from 'date-fns';
|
|
17
17
|
import { toZonedTime } from 'date-fns-tz';
|
|
18
|
-
import { IoTrashOutline, IoDocumentAttachSharp, IoCheckmarkDoneSharp } from 'react-icons/io5';
|
|
18
|
+
import { IoTrashOutline, IoDocumentAttachSharp, IoCheckmarkDoneSharp, IoCheckmark } from 'react-icons/io5';
|
|
19
19
|
import { cn } from '../../lib/utils.js';
|
|
20
20
|
import { DELETED_MESSAGE_PLACEHOLDER } from '../../lib/constants.js';
|
|
21
21
|
import { Avatar, AvatarImage, AvatarFallback } from './avatar.js';
|
|
@@ -25,17 +25,40 @@ import { HoverCard, HoverCardContent, HoverCardTrigger } from './hover-card.js';
|
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// Helper Functions
|
|
27
27
|
// ============================================================================
|
|
28
|
+
/**
|
|
29
|
+
* Check if a date is today
|
|
30
|
+
*/
|
|
31
|
+
function is_today(date) {
|
|
32
|
+
const today = new Date();
|
|
33
|
+
return (date.getDate() === today.getDate() &&
|
|
34
|
+
date.getMonth() === today.getMonth() &&
|
|
35
|
+
date.getFullYear() === today.getFullYear());
|
|
36
|
+
}
|
|
28
37
|
/**
|
|
29
38
|
* Format timestamp with timezone (short format for display)
|
|
39
|
+
* Includes date prefix in dd/MMM format if message is from a previous day
|
|
30
40
|
*/
|
|
31
41
|
function format_timestamp(timestamp, timezone) {
|
|
32
42
|
try {
|
|
33
43
|
const date = new Date(timestamp);
|
|
34
44
|
const zoned_date = toZonedTime(date, timezone);
|
|
35
|
-
|
|
45
|
+
// Check if message is from today
|
|
46
|
+
if (is_today(zoned_date)) {
|
|
47
|
+
return format(zoned_date, 'HH:mm');
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Include date prefix for messages before today
|
|
51
|
+
return format(zoned_date, 'dd/MMM HH:mm');
|
|
52
|
+
}
|
|
36
53
|
}
|
|
37
54
|
catch {
|
|
38
|
-
|
|
55
|
+
const date = new Date(timestamp);
|
|
56
|
+
if (is_today(date)) {
|
|
57
|
+
return format(date, 'HH:mm');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return format(date, 'dd/MMM HH:mm');
|
|
61
|
+
}
|
|
39
62
|
}
|
|
40
63
|
}
|
|
41
64
|
/**
|
|
@@ -101,7 +124,7 @@ export function ChatBubble({ message, is_sender, sender_profile, timezone, on_de
|
|
|
101
124
|
: 'rounded-[16px_16px_16px_6px]', // Default receiver style
|
|
102
125
|
is_deleted && 'opacity-60 italic'), children: [_jsx("p", { className: "cls_bubble_text text-sm whitespace-pre-wrap break-words", children: display_text }), has_references && !is_deleted && (_jsx("div", { className: "cls_bubble_references flex flex-wrap gap-1 mt-2 pt-2 border-t border-current/10", children: message.reference_list?.map((ref) => (_jsxs(Button, { variant: "ghost", size: "sm", onClick: () => handle_reference_click(ref), className: cn('cls_bubble_reference_btn', 'h-6 px-2 text-xs', is_sender
|
|
103
126
|
? 'hover:bg-primary-foreground/20'
|
|
104
|
-
: 'hover:bg-background/50'), children: [_jsx(IoDocumentAttachSharp, { className: "w-3 h-3 mr-1" }), _jsx("span", { className: "truncate max-w-[100px]", children: ref.name })] }, ref.id))) })), show_delete_button && is_sender && !is_deleted && on_delete && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: show_delete_confirm ? 'destructive' : 'ghost', size: "icon", onClick: handle_delete_click, className: cn('cls_bubble_delete_btn', 'absolute -left-8 top-1/2 -translate-y-1/2', 'w-6 h-6', 'opacity-0 group-hover:opacity-100 transition-opacity'), children: _jsx(IoTrashOutline, { className: "w-3.5 h-3.5" }) }) }), _jsx(TooltipContent, { children: show_delete_confirm ? 'Click again to confirm' : 'Delete message' })] }))] }), _jsxs("div", { className: cn('cls_bubble_meta', 'flex items-center gap-1 mt-1', is_sender ? 'justify-end mr-1' : 'ml-1'), style: { flexDirection: 'row' }, children: [_jsx("span", { className: "cls_bubble_time text-xs text-muted-foreground", children: format_timestamp(message.created_at, timezone) }), is_sender && message.read_at && (_jsx(IoCheckmarkDoneSharp, { className: "h-4 w-4 text-green-500 flex-shrink-0" }))] })] }), is_sender && (_jsxs(HoverCard, { children: [_jsx(HoverCardTrigger, { asChild: true, children: _jsxs(Avatar, { className: "cls_bubble_avatar h-8 w-8 ml-2 flex-shrink-0 cursor-pointer", children: [_jsx(AvatarImage, { src: sender_profile?.avatar_url, alt: "Your avatar" }), _jsx(AvatarFallback, { className: "text-xs bg-primary/20 text-primary", children: get_initials(sender_profile?.name) })] }) }), _jsx(HoverCardContent, { className: "w-80", side: "left", align: "start", children: _jsxs("div", { className: "cls_hovercard_content flex flex-col gap-4", children: [sender_profile && (_jsxs("div", { className: "cls_profile_info flex items-center gap-3", children: [_jsxs(Avatar, { className: "cls_hovercard_avatar h-12 w-12", children: [_jsx(AvatarImage, { src: sender_profile.avatar_url, alt: `${sender_profile.name} avatar` }), _jsx(AvatarFallback, { children: get_initials(sender_profile.name) })] }), _jsxs("div", { className: "cls_profile_details flex flex-col gap-1", children: [_jsx("span", { className: "text-sm font-semibold", children: sender_profile.name }), sender_profile.email && (_jsx("span", { className: "text-xs text-muted-foreground", children: sender_profile.email }))] })] })), _jsx("div", { className: "cls_divider border-t border-border" }), _jsxs("div", { className: "cls_sent_info flex flex-col gap-1", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Sent" }), _jsx("span", { className: "text-sm font-semibold", children: format_full_timestamp(message.created_at, timezone) })] }), message.read_at && (_jsxs("div", { className: "cls_read_info flex flex-col gap-1", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Read" }), _jsx("span", { className: "text-sm font-semibold text-green-600 dark:text-green-400", children: format_full_timestamp(message.read_at, timezone) })] })), !message.read_at && (_jsxs("div", { className: "cls_read_info flex flex-col gap-1", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Read" }), _jsx("span", { className: "text-sm font-medium text-muted-foreground italic", children: "Not read yet" })] }))] }) })] }))] }));
|
|
127
|
+
: 'hover:bg-background/50'), children: [_jsx(IoDocumentAttachSharp, { className: "w-3 h-3 mr-1" }), _jsx("span", { className: "truncate max-w-[100px]", children: ref.name })] }, ref.id))) })), show_delete_button && is_sender && !is_deleted && on_delete && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: show_delete_confirm ? 'destructive' : 'ghost', size: "icon", onClick: handle_delete_click, className: cn('cls_bubble_delete_btn', 'absolute -left-8 top-1/2 -translate-y-1/2', 'w-6 h-6', 'opacity-0 group-hover:opacity-100 transition-opacity'), children: _jsx(IoTrashOutline, { className: "w-3.5 h-3.5" }) }) }), _jsx(TooltipContent, { children: show_delete_confirm ? 'Click again to confirm' : 'Delete message' })] }))] }), _jsxs("div", { className: cn('cls_bubble_meta', 'flex items-center gap-1 mt-1', is_sender ? 'justify-end mr-1' : 'ml-1'), style: { flexDirection: 'row' }, children: [_jsx("span", { className: "cls_bubble_time text-xs text-muted-foreground", children: format_timestamp(message.created_at, timezone) }), is_sender && (_jsxs(_Fragment, { children: [message.read_at && (_jsx(IoCheckmarkDoneSharp, { className: "h-4 w-4 text-green-500 flex-shrink-0" })), !message.read_at && (_jsx(IoCheckmark, { className: "h-4 w-4 text-muted-foreground flex-shrink-0" }))] }))] })] }), is_sender && (_jsxs(HoverCard, { children: [_jsx(HoverCardTrigger, { asChild: true, children: _jsxs(Avatar, { className: "cls_bubble_avatar h-8 w-8 ml-2 flex-shrink-0 cursor-pointer", children: [_jsx(AvatarImage, { src: sender_profile?.avatar_url, alt: "Your avatar" }), _jsx(AvatarFallback, { className: "text-xs bg-primary/20 text-primary", children: get_initials(sender_profile?.name) })] }) }), _jsx(HoverCardContent, { className: "w-80", side: "left", align: "start", children: _jsxs("div", { className: "cls_hovercard_content flex flex-col gap-4", children: [sender_profile && (_jsxs("div", { className: "cls_profile_info flex items-center gap-3", children: [_jsxs(Avatar, { className: "cls_hovercard_avatar h-12 w-12", children: [_jsx(AvatarImage, { src: sender_profile.avatar_url, alt: `${sender_profile.name} avatar` }), _jsx(AvatarFallback, { children: get_initials(sender_profile.name) })] }), _jsxs("div", { className: "cls_profile_details flex flex-col gap-1", children: [_jsx("span", { className: "text-sm font-semibold", children: sender_profile.name }), sender_profile.email && (_jsx("span", { className: "text-xs text-muted-foreground", children: sender_profile.email }))] })] })), _jsx("div", { className: "cls_divider border-t border-border" }), _jsxs("div", { className: "cls_sent_info flex flex-col gap-1", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Sent" }), _jsx("span", { className: "text-sm font-semibold", children: format_full_timestamp(message.created_at, timezone) })] }), message.read_at && (_jsxs("div", { className: "cls_read_info flex flex-col gap-1", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Read" }), _jsx("span", { className: "text-sm font-semibold text-green-600 dark:text-green-400", children: format_full_timestamp(message.read_at, timezone) })] })), !message.read_at && (_jsxs("div", { className: "cls_read_info flex flex-col gap-1", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Read" }), _jsx("span", { className: "text-sm font-medium text-muted-foreground italic", children: "Not read yet" })] }))] }) })] }))] }));
|
|
105
128
|
}
|
|
106
129
|
ChatBubble.displayName = 'ChatBubble';
|
|
107
130
|
//# sourceMappingURL=chat_bubble.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_bubble.js","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"chat_bubble.js","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
* - Optimistic updates for sent messages
|
|
8
8
|
* - Soft delete functionality
|
|
9
9
|
* - Exponential backoff on errors
|
|
10
|
+
* - Abstracted transport layer for future WebSocket/SSE support
|
|
10
11
|
*
|
|
11
12
|
* Uses fetch() to call API endpoints instead of direct database access.
|
|
12
13
|
* This allows the hook to work in client components without Node.js dependencies.
|
|
13
14
|
*/
|
|
14
|
-
import type { UseChatMessagesReturn } from '../types/index.js';
|
|
15
|
-
import type { RealtimeMode } from '../types/index.js';
|
|
15
|
+
import type { UseChatMessagesReturn, RealtimeMode } from '../types/index.js';
|
|
16
16
|
export interface UseChatMessagesParams {
|
|
17
17
|
/** UUID of the chat recipient (required) */
|
|
18
18
|
receiver_user_id: string;
|
|
@@ -29,5 +29,5 @@ export interface UseChatMessagesParams {
|
|
|
29
29
|
/** Number of messages per page for pagination (default: 20) */
|
|
30
30
|
messages_per_page?: number;
|
|
31
31
|
}
|
|
32
|
-
export declare function useChatMessages({ receiver_user_id, reference_id, reference_type, api_base_url, realtime_mode, polling_interval, messages_per_page }: UseChatMessagesParams): UseChatMessagesReturn;
|
|
32
|
+
export declare function useChatMessages({ receiver_user_id, reference_id, reference_type, api_base_url, realtime_mode, polling_interval, messages_per_page, }: UseChatMessagesParams): UseChatMessagesReturn;
|
|
33
33
|
//# sourceMappingURL=use_chat_messages.d.ts.map
|