hazo_collab_forms 1.6.14 → 1.6.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_collab_form_summary/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAmF,MAAM,OAAO,CAAC;AAGxG,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EAEzB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,qBAAqB,6GAmThC,CAAC;AAGH,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,WAAW,EACX,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_collab_form_summary/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAmF,MAAM,OAAO,CAAC;AAIxG,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EAIzB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,qBAAqB,6GAoWhC,CAAC;AAGH,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,WAAW,EACX,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAe,qBAAqB,CAAC"}
@@ -10,7 +10,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { useRef, useImperativeHandle, forwardRef, useMemo, useEffect } from 'react';
11
11
  import { cn } from '../../utils/cn.js';
12
12
  import { DEFAULT_DATE_FORMAT } from '../../utils/date_format.js';
13
- import { get_fields_set_name } from './types.js';
13
+ import { use_field_chat_status } from '../../utils/use_field_chat_status.js';
14
+ import { get_fields_set_name, get_fields_set_fields } from './types.js';
14
15
  import { SummaryContext } from './context.js';
15
16
  import { SummarySection } from './summary_section.js';
16
17
  import { normalize_field_metadata_record, validate_summary_props } from './utils.js';
@@ -103,6 +104,50 @@ export const HazoCollabFormSummary = forwardRef(function HazoCollabFormSummary(p
103
104
  [field_metadata_key]);
104
105
  // Similarly for form_data - use JSON.stringify to detect mutations
105
106
  const form_data_key = JSON.stringify(form_data);
107
+ // Collect all field IDs from sections for chat status checking
108
+ const all_field_ids = useMemo(() => {
109
+ const field_ids = [];
110
+ const process_fields = (field_list) => {
111
+ field_list.forEach((field) => {
112
+ field_ids.push(field.id);
113
+ // Process sub_fields if it's a group
114
+ if (field.field_type === 'group' && field.sub_fields) {
115
+ process_fields(field.sub_fields);
116
+ }
117
+ // Process DataTable rows - they use format: ${fieldId}:${rowId}
118
+ // These will be handled by the chat system using the field ID as reference
119
+ });
120
+ };
121
+ sections.forEach((section) => {
122
+ const fields = get_fields_set_fields(section);
123
+ process_fields(fields);
124
+ });
125
+ return field_ids;
126
+ }, [sections]);
127
+ // Use the shared hook to fetch chat status for all fields
128
+ const { chat_status: fetched_chat_status } = use_field_chat_status({
129
+ field_ids: all_field_ids,
130
+ chat_group_id,
131
+ enabled: enable_chat && !!chat_group_id,
132
+ realtime_mode: hazo_chat_realtime_mode,
133
+ poll_interval: hazo_chat_polling_interval,
134
+ });
135
+ // Merge fetched chat status with normalized field metadata
136
+ // Fetched status takes precedence over externally provided metadata
137
+ const field_metadata_with_chat_status = useMemo(() => {
138
+ const merged = { ...normalized_field_metadata };
139
+ // Apply fetched chat status to each field
140
+ for (const field_id of all_field_ids) {
141
+ const fetched_status = fetched_chat_status[field_id];
142
+ if (fetched_status) {
143
+ merged[field_id] = {
144
+ ...merged[field_id],
145
+ chat_status: fetched_status,
146
+ };
147
+ }
148
+ }
149
+ return merged;
150
+ }, [normalized_field_metadata, fetched_chat_status, all_field_ids]);
106
151
  // Validate props and warn about common configuration issues (dev mode only)
107
152
  useEffect(() => {
108
153
  validate_summary_props({
@@ -134,7 +179,7 @@ export const HazoCollabFormSummary = forwardRef(function HazoCollabFormSummary(p
134
179
  // Build context value
135
180
  const context_value = useMemo(() => ({
136
181
  form_data,
137
- field_metadata: normalized_field_metadata,
182
+ field_metadata: field_metadata_with_chat_status,
138
183
  settings: {
139
184
  show_empty_fields,
140
185
  empty_field_text,
@@ -194,7 +239,7 @@ export const HazoCollabFormSummary = forwardRef(function HazoCollabFormSummary(p
194
239
  // eslint-disable-next-line react-hooks/exhaustive-deps
195
240
  [
196
241
  form_data_key, // Use stringified key instead of reference for mutation detection
197
- normalized_field_metadata,
242
+ field_metadata_with_chat_status,
198
243
  show_empty_fields,
199
244
  empty_field_text,
200
245
  empty_table_text,
@@ -243,7 +288,7 @@ export const HazoCollabFormSummary = forwardRef(function HazoCollabFormSummary(p
243
288
  // Expose ref methods
244
289
  useImperativeHandle(ref, () => ({
245
290
  get_form_data: () => form_data,
246
- get_field_metadata: () => normalized_field_metadata,
291
+ get_field_metadata: () => field_metadata_with_chat_status,
247
292
  scroll_to_section: (section_index) => {
248
293
  const section_el = section_refs.current[section_index];
249
294
  if (section_el) {
@@ -256,7 +301,7 @@ export const HazoCollabFormSummary = forwardRef(function HazoCollabFormSummary(p
256
301
  field_el.scrollIntoView({ behavior: 'smooth', block: 'center' });
257
302
  }
258
303
  },
259
- }), [form_data, normalized_field_metadata]);
304
+ }), [form_data, field_metadata_with_chat_status]);
260
305
  return (_jsx(SummaryContext.Provider, { value: context_value, children: _jsx("div", { className: cn('cls_hazo_collab_form_summary space-y-4', class_name), children: sections.map((section, index) => (_jsx(SummarySection, { section: section, section_index: index, show_edit_button: show_edit_buttons, on_edit: on_edit_section ? () => on_edit_section(index) : undefined, edit_button_text: edit_button_text, edit_button_icon: edit_button_icon, icon_background_color: icon_background_color, icon_color: icon_color, default_icon: default_icon, class_name: section_class_name, header_class_name: section_header_class_name, content_class_name: section_content_class_name, empty_section_text: empty_section_text, render_header: render_section_header, render_footer: render_section_footer, render_empty: render_empty_section }, get_fields_set_name(section) || index))) }) }));
261
306
  });
262
307
  export { SummaryContext, useSummaryContext } from './context.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/hazo_collab_form_summary/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/hazo_collab_form_summary/index.tsx"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export { use_collab_chat } from './use_collab_chat.js';
6
6
  export type { CollabChatContext } from './use_collab_chat.js';
7
7
  export { use_chat_messages_check } from './use_chat_messages_check.js';
8
8
  export type { UseChatMessagesCheckOptions } from './use_chat_messages_check.js';
9
+ export { use_field_chat_status } from './use_field_chat_status.js';
10
+ export type { UseFieldChatStatusOptions, UseFieldChatStatusResult } from './use_field_chat_status.js';
9
11
  export { load_icon, load_icons, use_icon, preload_icons, clear_icon_cache, get_supported_icon_sets, } from './icon_loader.js';
10
12
  export { format_date, format_date_range, DEFAULT_DATE_FORMAT, } from './date_format.js';
11
13
  export type { DateFormat } from './date_format.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  export { cn } from './cn.js';
5
5
  export { use_collab_chat } from './use_collab_chat.js';
6
6
  export { use_chat_messages_check } from './use_chat_messages_check.js';
7
+ export { use_field_chat_status } from './use_field_chat_status.js';
7
8
  export { load_icon, load_icons, use_icon, preload_icons, clear_icon_cache, get_supported_icon_sets, } from './icon_loader.js';
8
9
  export { format_date, format_date_range, DEFAULT_DATE_FORMAT, } from './date_format.js';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Hook to check chat status for multiple fields at once
3
+ * Returns a mapping of field_id -> ChatStatus ('none' | 'has_messages' | 'has_unread')
4
+ * Used by both HazoCollabFormSet and HazoCollabFormSummary
5
+ */
6
+ import type { ChatStatus } from '../components/hazo_collab_form_base.js';
7
+ export interface UseFieldChatStatusOptions {
8
+ /**
9
+ * Array of field IDs to check for messages
10
+ */
11
+ field_ids: string[];
12
+ /**
13
+ * Chat group ID for the chat (v3.0.0+)
14
+ */
15
+ chat_group_id: string | undefined;
16
+ /**
17
+ * Whether to enable the check (default: true)
18
+ */
19
+ enabled?: boolean;
20
+ /**
21
+ * Chat realtime mode
22
+ * - 'polling': Automatically poll for new messages every 5 seconds
23
+ * - 'manual': Disable automatic polling
24
+ * Default: 'polling'
25
+ */
26
+ realtime_mode?: 'polling' | 'manual';
27
+ /**
28
+ * Polling interval in milliseconds (default: 5000ms)
29
+ */
30
+ poll_interval?: number;
31
+ }
32
+ export interface UseFieldChatStatusResult {
33
+ /**
34
+ * Mapping of field_id -> ChatStatus
35
+ */
36
+ chat_status: Record<string, ChatStatus>;
37
+ /**
38
+ * Whether the hook is currently fetching
39
+ */
40
+ is_loading: boolean;
41
+ /**
42
+ * Current user ID (fetched from auth)
43
+ */
44
+ current_user_id: string | undefined;
45
+ /**
46
+ * Manually trigger a refresh of chat status
47
+ */
48
+ refresh: () => void;
49
+ }
50
+ /**
51
+ * Hook to check chat status for multiple fields at once
52
+ * Efficiently batches checks and returns status mapping
53
+ */
54
+ export declare function use_field_chat_status({ field_ids, chat_group_id, enabled, realtime_mode, poll_interval, }: UseFieldChatStatusOptions): UseFieldChatStatusResult;
55
+ //# sourceMappingURL=use_field_chat_status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_field_chat_status.d.ts","sourceRoot":"","sources":["../../src/utils/use_field_chat_status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAErC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAExC;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,aAAa,EACb,OAAc,EACd,aAAyB,EACzB,aAAoB,GACrB,EAAE,yBAAyB,GAAG,wBAAwB,CA2JtD"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Hook to check chat status for multiple fields at once
3
+ * Returns a mapping of field_id -> ChatStatus ('none' | 'has_messages' | 'has_unread')
4
+ * Used by both HazoCollabFormSet and HazoCollabFormSummary
5
+ */
6
+ 'use client';
7
+ import { useState, useEffect, useCallback } from 'react';
8
+ import { use_logger } from '../logger/context.js';
9
+ /**
10
+ * Hook to check chat status for multiple fields at once
11
+ * Efficiently batches checks and returns status mapping
12
+ */
13
+ export function use_field_chat_status({ field_ids, chat_group_id, enabled = true, realtime_mode = 'polling', poll_interval = 5000, }) {
14
+ const logger = use_logger();
15
+ const [chat_status, set_chat_status] = useState({});
16
+ const [is_loading, set_is_loading] = useState(false);
17
+ const [current_user_id, set_current_user_id] = useState(undefined);
18
+ // Fetch current user ID on mount
19
+ useEffect(() => {
20
+ const fetch_current_user = async () => {
21
+ try {
22
+ const auth_response = await fetch('/api/hazo_auth/me');
23
+ if (auth_response.ok) {
24
+ const auth_data = await auth_response.json();
25
+ if (auth_data.authenticated && auth_data.user_id) {
26
+ set_current_user_id(auth_data.user_id);
27
+ }
28
+ }
29
+ }
30
+ catch (error) {
31
+ logger.error('[use_field_chat_status] Could not fetch current user', {
32
+ error: error instanceof Error ? error.message : String(error),
33
+ });
34
+ }
35
+ };
36
+ fetch_current_user();
37
+ }, [logger]);
38
+ // Check chat messages for all fields
39
+ const check_chat_messages = useCallback(async () => {
40
+ if (!current_user_id || !chat_group_id || !enabled || field_ids.length === 0) {
41
+ logger.debug('[use_field_chat_status] Skipping check - missing requirements', {
42
+ has_current_user_id: !!current_user_id,
43
+ has_chat_group_id: !!chat_group_id,
44
+ enabled,
45
+ field_count: field_ids.length,
46
+ });
47
+ return;
48
+ }
49
+ try {
50
+ set_is_loading(true);
51
+ // Track status per field
52
+ const field_status_map = new Map();
53
+ logger.debug('[use_field_chat_status] Checking chat messages for fields', {
54
+ field_ids,
55
+ user_id: current_user_id,
56
+ chat_group_id,
57
+ });
58
+ // Query all fields in parallel
59
+ const check_promises = field_ids.map(async (field_id) => {
60
+ try {
61
+ const params = new URLSearchParams({
62
+ chat_group_id: chat_group_id || '',
63
+ reference_id: field_id,
64
+ });
65
+ const response = await fetch(`/api/hazo_chat/messages?${params.toString()}`);
66
+ if (response.ok) {
67
+ const data = await response.json();
68
+ const messages = data.messages || [];
69
+ const api_current_user_id = data.current_user_id;
70
+ // Check if field has any messages
71
+ const has_any_messages = Array.isArray(messages) && messages.length > 0;
72
+ // Check for unread messages from other users
73
+ const effective_current_user_id = api_current_user_id || current_user_id;
74
+ const has_unread = has_any_messages && messages.some((msg) => {
75
+ const is_unread = msg.read_at === null || msg.read_at === undefined;
76
+ const is_from_others = msg.sender_user_id !== effective_current_user_id;
77
+ return is_unread && is_from_others;
78
+ });
79
+ // Determine chat status
80
+ let status;
81
+ if (has_unread) {
82
+ status = 'has_unread';
83
+ }
84
+ else if (has_any_messages) {
85
+ status = 'has_messages';
86
+ }
87
+ else {
88
+ status = 'none';
89
+ }
90
+ logger.debug('[use_field_chat_status] Field chat status', {
91
+ field_id,
92
+ status,
93
+ has_any_messages,
94
+ has_unread,
95
+ });
96
+ field_status_map.set(field_id, status);
97
+ }
98
+ else {
99
+ logger.error('[use_field_chat_status] Field API error', {
100
+ field_id,
101
+ status: response.status,
102
+ });
103
+ field_status_map.set(field_id, 'none');
104
+ }
105
+ }
106
+ catch (error) {
107
+ logger.error('[use_field_chat_status] Error checking field', {
108
+ field_id,
109
+ error: error instanceof Error ? error.message : String(error),
110
+ });
111
+ field_status_map.set(field_id, 'none');
112
+ }
113
+ });
114
+ await Promise.all(check_promises);
115
+ // Convert map to record
116
+ const chat_status_record = {};
117
+ field_status_map.forEach((status, field_id) => {
118
+ chat_status_record[field_id] = status;
119
+ });
120
+ logger.debug('[use_field_chat_status] Chat status check complete', {
121
+ chat_status_record,
122
+ });
123
+ set_chat_status(chat_status_record);
124
+ }
125
+ catch (error) {
126
+ logger.error('[use_field_chat_status] Error checking chat status', {
127
+ error: error instanceof Error ? error.message : String(error),
128
+ });
129
+ set_chat_status({});
130
+ }
131
+ finally {
132
+ set_is_loading(false);
133
+ }
134
+ }, [current_user_id, chat_group_id, enabled, field_ids, logger]);
135
+ // Effect to run checks and set up polling
136
+ useEffect(() => {
137
+ if (!current_user_id || !chat_group_id || !enabled) {
138
+ return;
139
+ }
140
+ check_chat_messages();
141
+ // Set up polling if not manual mode
142
+ if (realtime_mode !== 'manual') {
143
+ const interval_id = setInterval(check_chat_messages, poll_interval);
144
+ return () => clearInterval(interval_id);
145
+ }
146
+ }, [current_user_id, chat_group_id, enabled, realtime_mode, poll_interval, check_chat_messages]);
147
+ return {
148
+ chat_status,
149
+ is_loading,
150
+ current_user_id,
151
+ refresh: check_chat_messages,
152
+ };
153
+ }
154
+ //# sourceMappingURL=use_field_chat_status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_field_chat_status.js","sourceRoot":"","sources":["../../src/utils/use_field_chat_status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hazo_collab_forms",
3
- "version": "1.6.14",
3
+ "version": "1.6.15",
4
4
  "description": "Collaboration form elements",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",