@messenger-box/platform-mobile 10.0.3-alpha.18 → 10.0.3-alpha.19

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/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.0.3-alpha.19](https://github.com/CDEBase/messenger-box/compare/v10.0.3-alpha.18...v10.0.3-alpha.19) (2025-04-10)
7
+
8
+ **Note:** Version bump only for package @messenger-box/platform-mobile
9
+
6
10
  ## [10.0.3-alpha.18](https://github.com/CDEBase/messenger-box/compare/v10.0.3-alpha.17...v10.0.3-alpha.18) (2025-04-10)
7
11
 
8
12
  **Note:** Version bump only for package @messenger-box/platform-mobile
@@ -1,6 +1,4 @@
1
- import React__default,{useRef,useCallback,useEffect,useState,useMemo}from'react';import {Box,FlatList,Center,Spinner,Heading,Input,InputField,Text}from'@admin-layout/gluestack-ui-mobile';import {Ionicons}from'@expo/vector-icons';import {useSelector,useDispatch}from'react-redux';import {useRoute,useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import {orderBy}from'lodash-es';import {DialogsListItem}from'../components/DialogsListItem.js';import {ServiceDialogsListItem}from'../components/ServiceDialogsListItem.js';import {useGetChannelsByUserWithServiceChannelsQuery}from'common/graphql';import {RoomType}from'common';import {userSelector}from'@adminide-stack/user-auth0-client';import {config}from'../config/config.js';import colors from'tailwindcss/colors';import {Actions,BaseState,MainState}from'./workflow/dialogs-xstate.js';var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
1
+ import React__default,{useState,useCallback}from'react';import {Box,FlatList,Center,Spinner,Heading,Input,InputField,Text}from'@admin-layout/gluestack-ui-mobile';import {Ionicons}from'@expo/vector-icons';import {useSelector,useDispatch}from'react-redux';import {useRoute,useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import {orderBy}from'lodash-es';import {DialogsListItem}from'../components/DialogsListItem.js';import {ServiceDialogsListItem}from'../components/ServiceDialogsListItem.js';import {useGetChannelsByUserWithServiceChannelsQuery}from'common/graphql';import {RoomType}from'common';import {userSelector}from'@adminide-stack/user-auth0-client';import {config}from'../config/config.js';import colors from'tailwindcss/colors';var __defProp = Object.defineProperty;
4
2
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
3
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
4
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -16,123 +14,6 @@ var __spreadValues = (a, b) => {
16
14
  }
17
15
  return a;
18
16
  };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- function useSafeMachine(machine) {
21
- const [state, setState] = useState({
22
- context: {
23
- channels: [],
24
- refreshing: false,
25
- loading: false,
26
- error: null,
27
- searchQuery: "",
28
- selectedChannelId: null,
29
- channelRole: null,
30
- channelFilters: {},
31
- supportServices: false
32
- },
33
- value: "idle"
34
- });
35
- const send = useCallback((event) => {
36
- try {
37
- console.log("Dialogs Event received:", event.type);
38
- if (event.type === Actions.INITIAL_CONTEXT) {
39
- setState((prev) => {
40
- var _a, _b, _c, _d;
41
- return __spreadProps(__spreadValues({}, prev), {
42
- context: __spreadProps(__spreadValues({}, prev.context), {
43
- channelRole: ((_a = event.data) == null ? void 0 : _a.channelRole) || null,
44
- channelFilters: ((_b = event.data) == null ? void 0 : _b.channelFilters) || {},
45
- supportServices: ((_c = event.data) == null ? void 0 : _c.supportServices) || false,
46
- selectedChannelId: ((_d = event.data) == null ? void 0 : _d.selectedChannelId) || null
47
- }),
48
- value: BaseState.FetchChannels
49
- });
50
- });
51
- } else if (event.type === Actions.SET_SEARCH_QUERY) {
52
- setState((prev) => {
53
- var _a;
54
- return __spreadProps(__spreadValues({}, prev), {
55
- context: __spreadProps(__spreadValues({}, prev.context), {
56
- searchQuery: ((_a = event.data) == null ? void 0 : _a.searchQuery) || ""
57
- })
58
- });
59
- });
60
- } else if (event.type === Actions.REFRESH_CHANNELS) {
61
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
62
- context: __spreadProps(__spreadValues({}, prev.context), {
63
- refreshing: true
64
- }),
65
- value: MainState.RefreshChannels
66
- }));
67
- } else if (event.type === Actions.SELECT_CHANNEL) {
68
- setState((prev) => {
69
- var _a;
70
- return __spreadProps(__spreadValues({}, prev), {
71
- context: __spreadProps(__spreadValues({}, prev.context), {
72
- selectedChannelId: ((_a = event.data) == null ? void 0 : _a.channelId) || null
73
- }),
74
- value: MainState.SelectChannel
75
- });
76
- });
77
- } else if (event.type === Actions.START_LOADING) {
78
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
79
- context: __spreadProps(__spreadValues({}, prev.context), {
80
- loading: true
81
- })
82
- }));
83
- } else if (event.type === Actions.STOP_LOADING) {
84
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
85
- context: __spreadProps(__spreadValues({}, prev.context), {
86
- loading: false
87
- })
88
- }));
89
- } else if (event.type === "FETCH_CHANNELS_SUCCESS") {
90
- setState((prev) => {
91
- var _a;
92
- return __spreadProps(__spreadValues({}, prev), {
93
- context: __spreadProps(__spreadValues({}, prev.context), {
94
- channels: ((_a = event.data) == null ? void 0 : _a.channels) || [],
95
- loading: false,
96
- refreshing: false
97
- }),
98
- value: BaseState.Idle
99
- });
100
- });
101
- } else if (event.type === "REFRESH_CHANNELS_SUCCESS") {
102
- setState((prev) => {
103
- var _a;
104
- return __spreadProps(__spreadValues({}, prev), {
105
- context: __spreadProps(__spreadValues({}, prev.context), {
106
- channels: ((_a = event.data) == null ? void 0 : _a.channels) || [],
107
- refreshing: false
108
- }),
109
- value: BaseState.Idle
110
- });
111
- });
112
- } else if (event.type === "ERROR") {
113
- setState((prev) => {
114
- var _a;
115
- return __spreadProps(__spreadValues({}, prev), {
116
- context: __spreadProps(__spreadValues({}, prev.context), {
117
- error: ((_a = event.data) == null ? void 0 : _a.message) || "An error occurred",
118
- loading: false,
119
- refreshing: false
120
- }),
121
- value: BaseState.Error
122
- });
123
- });
124
- }
125
- } catch (err) {
126
- console.error("Error in send function:", err);
127
- }
128
- }, []);
129
- const stateWithMatches = useMemo(() => {
130
- return __spreadProps(__spreadValues({}, state), {
131
- matches: (value) => state.value === value
132
- });
133
- }, [state]);
134
- return [stateWithMatches, send];
135
- }
136
17
  const DialogsComponent = (props) => {
137
18
  var _a;
138
19
  const {
@@ -148,51 +29,8 @@ const DialogsComponent = (props) => {
148
29
  const auth = useSelector(userSelector);
149
30
  useDispatch();
150
31
  const navigation = useNavigation();
151
- const isFocused = useIsFocused();
152
- const isMountedRef = useRef(true);
153
- const [state, send] = useSafeMachine();
154
- useCallback(() => {
155
- try {
156
- return (state == null ? void 0 : state.context) || {};
157
- } catch (error) {
158
- console.error("Error accessing state.context:", error);
159
- return {};
160
- }
161
- }, [state]);
162
- const safeContextProperty = useCallback((property, defaultValue = null) => {
163
- var _a2, _b;
164
- try {
165
- return (_b = (_a2 = state == null ? void 0 : state.context) == null ? void 0 : _a2[property]) != null ? _b : defaultValue;
166
- } catch (error) {
167
- console.error(`Error accessing state.context.${property}:`, error);
168
- return defaultValue;
169
- }
170
- }, [state]);
171
- useCallback((stateValue) => {
172
- var _a2;
173
- try {
174
- return ((_a2 = state == null ? void 0 : state.matches) == null ? void 0 : _a2.call(state, stateValue)) || false;
175
- } catch (error) {
176
- console.error(`Error calling state.matches with ${stateValue}:`, error);
177
- return false;
178
- }
179
- }, [state]);
180
- const safeSend = useCallback((event) => {
181
- try {
182
- send(event);
183
- } catch (error) {
184
- console.error("Error sending event to state machine:", error, event);
185
- }
186
- }, [send]);
187
- const stateRef = useRef(state);
188
- useEffect(() => {
189
- stateRef.current = state;
190
- }, [state]);
191
- useEffect(() => {
192
- return () => {
193
- isMountedRef.current = false;
194
- };
195
- }, []);
32
+ useIsFocused();
33
+ const [refreshing, setRefresh] = useState(false);
196
34
  const {
197
35
  data: userChannels,
198
36
  loading: userChannelsLoading,
@@ -205,118 +43,21 @@ const DialogsComponent = (props) => {
205
43
  supportServiceCriteria: {
206
44
  type: RoomType.Service
207
45
  }
208
- },
209
- onCompleted: (data) => {
210
- var _a2, _b;
211
- if (isMountedRef.current) {
212
- const allChannels = [...(_a2 = data == null ? void 0 : data.supportServiceChannels) != null ? _a2 : [], ...(_b = data == null ? void 0 : data.channelsByUser) != null ? _b : []];
213
- safeSend({
214
- type: "FETCH_CHANNELS_SUCCESS",
215
- data: {
216
- channels: allChannels
217
- }
218
- });
219
- }
220
- },
221
- onError: (error) => {
222
- if (isMountedRef.current) {
223
- safeSend({
224
- type: "ERROR",
225
- data: {
226
- message: error.message
227
- }
228
- });
229
- }
230
46
  }
231
47
  });
232
- useEffect(() => {
233
- console.log("Setting initial context");
234
- safeSend({
235
- type: Actions.INITIAL_CONTEXT,
236
- data: {
237
- channelRole,
238
- channelFilters: channelFiltersRef.current,
239
- supportServices,
240
- selectedChannelId: params == null ? void 0 : params.channelId
241
- }
242
- });
243
- }, []);
244
- const hasRefreshedRef = useRef(false);
245
- const channelFiltersRef = useRef(channelFilters);
246
- const refreshChannels = useCallback(() => {
247
- if (safeContextProperty("refreshing", false)) {
248
- console.log("Skipping refresh - already in progress");
249
- return Promise.resolve();
250
- }
251
- console.log("Starting channel refresh");
252
- safeSend({
253
- type: Actions.REFRESH_CHANNELS
254
- });
255
- const currentFilters = channelFiltersRef.current;
256
- return getChannelsRefetch({
48
+ useFocusEffect(React__default.useCallback(() => {
49
+ setRefresh(false);
50
+ getChannelsRefetch({
257
51
  role: channelRole,
258
- criteria: currentFilters,
52
+ criteria: channelFilters,
259
53
  supportServices: supportServices ? true : false,
260
54
  supportServiceCriteria: {
261
55
  type: RoomType.Service
262
56
  }
263
- }).then((data) => {
264
- var _a2, _b, _c, _d;
265
- if (isMountedRef.current) {
266
- const allChannels = [...(_b = (_a2 = data == null ? void 0 : data.data) == null ? void 0 : _a2.supportServiceChannels) != null ? _b : [], ...(_d = (_c = data == null ? void 0 : data.data) == null ? void 0 : _c.channelsByUser) != null ? _d : []];
267
- console.log(`Refresh completed, found ${allChannels.length} channels`);
268
- safeSend({
269
- type: "REFRESH_CHANNELS_SUCCESS",
270
- data: {
271
- channels: allChannels
272
- }
273
- });
274
- }
275
- }).catch((error) => {
276
- if (isMountedRef.current) {
277
- console.error("Channel refresh error:", error.message);
278
- safeSend({
279
- type: "ERROR",
280
- data: {
281
- message: error.message
282
- }
283
- });
284
- }
285
57
  });
286
- }, [channelRole, supportServices, getChannelsRefetch, safeSend, safeContextProperty]);
287
- useEffect(() => {
288
- const filtersChanged = JSON.stringify(channelFiltersRef.current) !== JSON.stringify(channelFilters);
289
- if (filtersChanged) {
290
- console.log("Channel filters changed, updating ref");
291
- channelFiltersRef.current = channelFilters;
292
- if (isMountedRef.current && safeContextProperty("channelRole") !== null) {
293
- console.log("Refreshing due to filter change");
294
- refreshChannels();
295
- }
296
- }
297
- }, [channelFilters, refreshChannels, safeContextProperty]);
298
- useFocusEffect(useCallback(() => {
299
- if (!isFocused)
300
- return;
301
- console.log("Screen focused, checking if refresh needed");
302
- if (isMountedRef.current && !hasRefreshedRef.current) {
303
- console.log("Refreshing on focus");
304
- hasRefreshedRef.current = true;
305
- refreshChannels();
306
- }
307
58
  return () => {
308
- console.log("Screen unfocused, resetting refresh state");
309
- hasRefreshedRef.current = false;
310
59
  };
311
- }, [isFocused, refreshChannels]));
312
- const handleRefresh = useCallback(() => {
313
- if (safeContextProperty("refreshing", false)) {
314
- console.log("Manual refresh ignored - refresh already in progress");
315
- return;
316
- }
317
- console.log("Manual refresh triggered");
318
- refreshChannels();
319
- }, [refreshChannels, safeContextProperty]);
60
+ }, [channelFilters]));
320
61
  const channels = React__default.useMemo(() => {
321
62
  var _a2, _b, _c;
322
63
  const allChannels = [...(_a2 = userChannels == null ? void 0 : userChannels.supportServiceChannels) != null ? _a2 : [], ...(_b = userChannels == null ? void 0 : userChannels.channelsByUser) != null ? _b : []];
@@ -325,15 +66,9 @@ const DialogsComponent = (props) => {
325
66
  return u !== null && ((_a3 = u == null ? void 0 : u.user) == null ? void 0 : _a3.id) != (auth == null ? void 0 : auth.id) && u.user.__typename == "UserAccount";
326
67
  }))) != null ? _c : [];
327
68
  return uChannels && orderBy(uChannels, ["updatedAt"], ["desc"]) || [];
328
- }, [userChannels, auth == null ? void 0 : auth.id]);
69
+ }, [userChannels]);
329
70
  const handleSelectChannel = useCallback((id, title) => {
330
71
  var _a2;
331
- safeSend({
332
- type: Actions.SELECT_CHANNEL,
333
- data: {
334
- channelId: id
335
- }
336
- });
337
72
  if (params == null ? void 0 : params.channelId) {
338
73
  navigation.navigate(config.INBOX_MESSEGE_PATH, {
339
74
  channelId: params == null ? void 0 : params.channelId,
@@ -349,15 +84,9 @@ const DialogsComponent = (props) => {
349
84
  hideTabBar: true
350
85
  });
351
86
  }
352
- }, [params, navigation, channelRole, safeSend]);
87
+ }, []);
353
88
  const handleSelectServiceChannel = useCallback((id, title, postParentId) => {
354
89
  var _a2;
355
- safeSend({
356
- type: Actions.SELECT_CHANNEL,
357
- data: {
358
- channelId: id
359
- }
360
- });
361
90
  if (params == null ? void 0 : params.channelId) {
362
91
  navigation.navigate((params == null ? void 0 : params.postParentId) || (params == null ? void 0 : params.postParentId) == 0 ? config.THREAD_MESSEGE_PATH : config.THREADS_PATH, {
363
92
  channelId: params == null ? void 0 : params.channelId,
@@ -375,17 +104,19 @@ const DialogsComponent = (props) => {
375
104
  hideTabBar: true
376
105
  });
377
106
  }
378
- }, [params, navigation, channelRole, safeSend]);
379
- const searchQuery = safeContextProperty("searchQuery", "");
380
- return /* @__PURE__ */ React__default.createElement(Box, { className: "p-2" }, /* @__PURE__ */ React__default.createElement(FlatList, { data: channels && (channels == null ? void 0 : channels.length) > 0 ? channels : [], onRefresh: handleRefresh, refreshing: safeContextProperty("refreshing", false), contentContainerStyle: {
107
+ }, []);
108
+ const handleRefresh = useCallback(() => {
109
+ var _a2;
110
+ setRefresh(true);
111
+ (_a2 = getChannelsRefetch({
112
+ role: channelRole,
113
+ criteria: channelFilters
114
+ })) == null ? void 0 : _a2.finally(() => setRefresh(false));
115
+ }, []);
116
+ return /* @__PURE__ */ React__default.createElement(Box, { className: "p-2" }, /* @__PURE__ */ React__default.createElement(FlatList, { data: channels && (channels == null ? void 0 : channels.length) > 0 ? channels : [], onRefresh: handleRefresh, refreshing, contentContainerStyle: {
381
117
  minHeight: "100%"
382
118
  }, ItemSeparatorComponent: () => /* @__PURE__ */ React__default.createElement(Box, { className: "h-0.5 bg-gray-200" }), renderItem: ({
383
119
  item: channel
384
- }) => (channel == null ? void 0 : channel.type) === RoomType.Service ? /* @__PURE__ */ React__default.createElement(ServiceDialogsListItem, { onOpen: handleSelectServiceChannel, currentUser: auth, channel, refreshing: safeContextProperty("refreshing", false), selectedChannelId: safeContextProperty("selectedChannelId", params == null ? void 0 : params.channelId), role: channelRole }) : /* @__PURE__ */ React__default.createElement(DialogsListItem, { onOpen: handleSelectChannel, currentUser: auth, channel, selectedChannelId: safeContextProperty("selectedChannelId", params == null ? void 0 : params.channelId) }), ListEmptyComponent: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, userChannelsLoading || safeContextProperty("loading", false) ? /* @__PURE__ */ React__default.createElement(Center, { className: "flex-1 justify-center items-center" }, /* @__PURE__ */ React__default.createElement(Spinner, { color: colors.blue[500] })) : /* @__PURE__ */ React__default.createElement(Box, { className: "p-5" }, /* @__PURE__ */ React__default.createElement(Heading, null, "Chat"), /* @__PURE__ */ React__default.createElement(Input, { className: `h-[50] mt-3 rounded-[50] border-gray-200 border ` }, /* @__PURE__ */ React__default.createElement(InputField, { placeholder: "Search", value: searchQuery, onChangeText: (text) => safeSend({
385
- type: Actions.SET_SEARCH_QUERY,
386
- data: {
387
- searchQuery: text
388
- }
389
- }) })), /* @__PURE__ */ React__default.createElement(Center, { className: "mt-6" }, /* @__PURE__ */ React__default.createElement(Ionicons, { name: "chatbubbles", size: 50 }), /* @__PURE__ */ React__default.createElement(Text, null, "You don't have any messages yet!")))), keyExtractor: (item, index) => "key" + index }));
120
+ }) => (channel == null ? void 0 : channel.type) === RoomType.Service ? /* @__PURE__ */ React__default.createElement(ServiceDialogsListItem, { onOpen: handleSelectServiceChannel, currentUser: auth, channel, refreshing, selectedChannelId: params == null ? void 0 : params.channelId, role: channelRole }) : /* @__PURE__ */ React__default.createElement(DialogsListItem, { onOpen: handleSelectChannel, currentUser: auth, channel, selectedChannelId: params == null ? void 0 : params.channelId }), ListEmptyComponent: () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, userChannelsLoading ? /* @__PURE__ */ React__default.createElement(Center, { className: "flex-1 justify-center items-center" }, /* @__PURE__ */ React__default.createElement(Spinner, { color: colors.blue[500] })) : /* @__PURE__ */ React__default.createElement(Box, { className: "p-5" }, /* @__PURE__ */ React__default.createElement(Heading, null, "Chat"), /* @__PURE__ */ React__default.createElement(Input, { className: `h-[50] mt-3 rounded-[50] border-gray-200 border ` }, /* @__PURE__ */ React__default.createElement(InputField, { placeholder: "Search" })), /* @__PURE__ */ React__default.createElement(Center, { className: "mt-6" }, /* @__PURE__ */ React__default.createElement(Ionicons, { name: "chatbubbles", size: 50 }), /* @__PURE__ */ React__default.createElement(Text, null, "You don't have any messages yet!")))), keyExtractor: (item, index) => "key" + index }));
390
121
  };
391
122
  const Dialogs = React__default.memo(DialogsComponent);export{Dialogs};//# sourceMappingURL=Dialogs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialogs.js","sources":["../../../../src/screens/inbox/containers/Dialogs.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useEffect, useState, useRef } from 'react';\nimport {\n FlatList,\n Box,\n Heading,\n Input,\n InputField,\n Text,\n Icon,\n Center,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport { orderBy, uniqBy, startCase } from 'lodash-es';\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { ServiceDialogsListItem } from '../components/ServiceDialogsListItem';\nimport { useGetChannelsByUserQuery, useGetChannelsByUserWithServiceChannelsQuery } from 'common/graphql';\nimport { RoomType } from 'common';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\nimport { config } from '../config';\nimport colors from 'tailwindcss/colors';\nimport { dialogsXstate, Actions as DialogsActions, BaseState, MainState } from './workflow/dialogs-xstate';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n supportServices: boolean;\n}\n\n// Define state type for the state machine\ninterface SafeStateType {\n context: {\n channels: any[];\n refreshing: boolean;\n loading: boolean;\n error: string | null;\n searchQuery: string;\n selectedChannelId: string | null;\n channelRole: string | null;\n channelFilters: Record<string, any>;\n supportServices: boolean;\n };\n value: string;\n matches?: (stateValue: string) => boolean;\n}\n\n// Interface for the return type to ensure proper typing\ntype UseSafeMachineReturnType = [SafeStateType & { matches: (stateValue: string) => boolean }, (event: any) => void];\n\n// Create a safer version of useMachine to handle potential errors\nfunction useSafeMachine(machine): UseSafeMachineReturnType {\n // Initialize with default state\n const [state, setState] = useState<SafeStateType>({\n context: {\n channels: [],\n refreshing: false,\n loading: false,\n error: null,\n searchQuery: '',\n selectedChannelId: null,\n channelRole: null,\n channelFilters: {},\n supportServices: false,\n },\n value: 'idle',\n });\n\n // Create a safe send function\n const send = useCallback((event) => {\n try {\n // Log event for debugging\n console.log('Dialogs Event received:', event.type);\n\n // Handle specific events manually\n if (event.type === DialogsActions.INITIAL_CONTEXT) {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channelRole: event.data?.channelRole || null,\n channelFilters: event.data?.channelFilters || {},\n supportServices: event.data?.supportServices || false,\n selectedChannelId: event.data?.selectedChannelId || null,\n },\n value: BaseState.FetchChannels,\n }));\n } else if (event.type === DialogsActions.SET_SEARCH_QUERY) {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n searchQuery: event.data?.searchQuery || '',\n },\n }));\n } else if (event.type === DialogsActions.REFRESH_CHANNELS) {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n refreshing: true,\n },\n value: MainState.RefreshChannels,\n }));\n } else if (event.type === DialogsActions.SELECT_CHANNEL) {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n selectedChannelId: event.data?.channelId || null,\n },\n value: MainState.SelectChannel,\n }));\n } else if (event.type === DialogsActions.START_LOADING) {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n loading: true,\n },\n }));\n } else if (event.type === DialogsActions.STOP_LOADING) {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n loading: false,\n },\n }));\n } else if (event.type === 'FETCH_CHANNELS_SUCCESS') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channels: event.data?.channels || [],\n loading: false,\n refreshing: false,\n },\n value: BaseState.Idle,\n }));\n } else if (event.type === 'REFRESH_CHANNELS_SUCCESS') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channels: event.data?.channels || [],\n refreshing: false,\n },\n value: BaseState.Idle,\n }));\n } else if (event.type === 'ERROR') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n error: event.data?.message || 'An error occurred',\n loading: false,\n refreshing: false,\n },\n value: BaseState.Error,\n }));\n }\n } catch (err) {\n console.error('Error in send function:', err);\n }\n }, []);\n\n // Add a matches method for state compatibility\n const stateWithMatches = useMemo(() => {\n return {\n ...state,\n matches: (value: string) => state.value === value,\n };\n }, [state]);\n\n // Return as a tuple to match useMachine API\n return [stateWithMatches, send];\n}\n\nconst DialogsComponent = (props: InboxProps) => {\n const { channelFilters: channelFilterProp, channelRole, supportServices } = props;\n const channelFilters = { ...channelFilterProp };\n channelFilters.type = channelFilters?.type ?? RoomType.Direct;\n const { params } = useRoute<any>();\n const auth = useSelector(userSelector);\n const dispatch = useDispatch();\n const navigation = useNavigation<any>();\n const isFocused = useIsFocused();\n const isMountedRef = useRef(true);\n\n // Use our safer custom implementation instead of the problematic useMachine\n const [state, send] = useSafeMachine(dialogsXstate);\n\n // Define safe functions first to avoid \"used before declaration\" errors\n const safeContext = useCallback(() => {\n try {\n return state?.context || {};\n } catch (error) {\n console.error('Error accessing state.context:', error);\n return {};\n }\n }, [state]);\n\n const safeContextProperty = useCallback(\n (property, defaultValue = null) => {\n try {\n return state?.context?.[property] ?? defaultValue;\n } catch (error) {\n console.error(`Error accessing state.context.${property}:`, error);\n return defaultValue;\n }\n },\n [state],\n );\n\n const safeMatches = useCallback(\n (stateValue) => {\n try {\n return state?.matches?.(stateValue) || false;\n } catch (error) {\n console.error(`Error calling state.matches with ${stateValue}:`, error);\n return false;\n }\n },\n [state],\n );\n\n const safeSend = useCallback(\n (event) => {\n try {\n send(event);\n } catch (error) {\n console.error('Error sending event to state machine:', error, event);\n }\n },\n [send],\n );\n\n // Use a ref to track the current machine snapshot for safer access\n const stateRef = useRef(state);\n\n // Keep the ref updated with the latest snapshot\n useEffect(() => {\n stateRef.current = state;\n }, [state]);\n\n // Use cleanup function to prevent setting state after unmount\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserWithServiceChannelsQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n supportServices: supportServices ? true : false,\n supportServiceCriteria: {\n type: RoomType.Service,\n },\n },\n onCompleted: (data) => {\n if (isMountedRef.current) {\n const allChannels = [...(data?.supportServiceChannels ?? []), ...(data?.channelsByUser ?? [])];\n safeSend({\n type: 'FETCH_CHANNELS_SUCCESS',\n data: { channels: allChannels },\n });\n }\n },\n onError: (error) => {\n if (isMountedRef.current) {\n safeSend({\n type: 'ERROR',\n data: { message: error.message },\n });\n }\n },\n });\n\n // Set initial context once on mount, but don't fetch data as useFocusEffect will handle it\n useEffect(() => {\n console.log('Setting initial context');\n // Only set the initial context with configuration, but don't trigger data fetching\n // This prevents double fetching with useFocusEffect\n safeSend({\n type: DialogsActions.INITIAL_CONTEXT,\n data: {\n channelRole,\n channelFilters: channelFiltersRef.current,\n supportServices,\n selectedChannelId: params?.channelId,\n },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []); // Empty dependency array ensures this runs only once on mount\n\n // Ref to track if we've already refreshed to prevent infinite loop\n const hasRefreshedRef = useRef(false);\n // Ref to store the current channelFilters to detect real changes\n const channelFiltersRef = useRef(channelFilters);\n\n // Shared function to handle channel refreshing\n const refreshChannels = useCallback(() => {\n // Skip if already refreshing to prevent loops\n if (safeContextProperty('refreshing', false)) {\n console.log('Skipping refresh - already in progress');\n return Promise.resolve();\n }\n\n console.log('Starting channel refresh');\n\n // Start refreshing\n safeSend({\n type: DialogsActions.REFRESH_CHANNELS,\n });\n\n // Use ref for filters to avoid dependency cycles\n const currentFilters = channelFiltersRef.current;\n\n // Fetch the channels\n return getChannelsRefetch({\n role: channelRole,\n criteria: currentFilters,\n supportServices: supportServices ? true : false,\n supportServiceCriteria: {\n type: RoomType.Service,\n },\n })\n .then((data) => {\n if (isMountedRef.current) {\n const allChannels = [\n ...(data?.data?.supportServiceChannels ?? []),\n ...(data?.data?.channelsByUser ?? []),\n ];\n console.log(`Refresh completed, found ${allChannels.length} channels`);\n safeSend({\n type: 'REFRESH_CHANNELS_SUCCESS',\n data: { channels: allChannels },\n });\n }\n })\n .catch((error) => {\n if (isMountedRef.current) {\n console.error('Channel refresh error:', error.message);\n safeSend({\n type: 'ERROR',\n data: { message: error.message },\n });\n }\n });\n }, [channelRole, supportServices, getChannelsRefetch, safeSend, safeContextProperty]);\n\n // Update the channelFiltersRef when channelFilters changes\n useEffect(() => {\n const filtersChanged = JSON.stringify(channelFiltersRef.current) !== JSON.stringify(channelFilters);\n if (filtersChanged) {\n console.log('Channel filters changed, updating ref');\n channelFiltersRef.current = channelFilters;\n\n // Only refresh if already mounted and initialized\n if (isMountedRef.current && safeContextProperty('channelRole') !== null) {\n console.log('Refreshing due to filter change');\n refreshChannels();\n }\n }\n }, [channelFilters, refreshChannels, safeContextProperty]);\n\n // Handle focus effects\n useFocusEffect(\n useCallback(() => {\n if (!isFocused) return;\n\n console.log('Screen focused, checking if refresh needed');\n\n // Only refresh on focus if we're not already loading and haven't refreshed\n if (isMountedRef.current && !hasRefreshedRef.current) {\n console.log('Refreshing on focus');\n hasRefreshedRef.current = true;\n refreshChannels();\n }\n\n return () => {\n // Reset the ref when the screen loses focus\n console.log('Screen unfocused, resetting refresh state');\n hasRefreshedRef.current = false;\n };\n }, [isFocused, refreshChannels]),\n );\n\n const handleRefresh = useCallback(() => {\n // Don't allow manual refresh while already refreshing\n if (safeContextProperty('refreshing', false)) {\n console.log('Manual refresh ignored - refresh already in progress');\n return;\n }\n\n console.log('Manual refresh triggered');\n refreshChannels();\n }, [refreshChannels, safeContextProperty]);\n\n const channels = React.useMemo(() => {\n const allChannels = [...(userChannels?.supportServiceChannels ?? []), ...(userChannels?.channelsByUser ?? [])];\n let uChannels: any =\n allChannels?.filter((c: any) =>\n c.members.some((u: any) => u !== null && u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n ) ?? [];\n return (uChannels && orderBy(uChannels, ['updatedAt'], ['desc'])) || [];\n }, [userChannels, auth?.id]);\n\n const handleSelectChannel = useCallback(\n (id: any, title: any) => {\n safeSend({\n type: DialogsActions.SELECT_CHANNEL,\n data: { channelId: id },\n });\n\n if (params?.channelId) {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: params?.channelId,\n role: params?.role,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n role: channelRole,\n title: title,\n hideTabBar: true,\n });\n }\n },\n [params, navigation, channelRole, safeSend],\n );\n\n const handleSelectServiceChannel = useCallback(\n (id: any, title: any, postParentId: any) => {\n safeSend({\n type: DialogsActions.SELECT_CHANNEL,\n data: { channelId: id },\n });\n\n if (params?.channelId) {\n navigation.navigate(\n params?.postParentId || params?.postParentId == 0\n ? config.THREAD_MESSEGE_PATH\n : (config.THREADS_PATH as any),\n {\n channelId: params?.channelId,\n role: params?.role,\n title: params?.title ?? null,\n postParentId: params?.postParentId,\n hideTabBar: true,\n },\n );\n } else {\n navigation.navigate(\n postParentId || postParentId == 0 ? config.THREAD_MESSEGE_PATH : (config.THREADS_PATH as any),\n {\n channelId: id,\n role: channelRole,\n title: title,\n postParentId: postParentId,\n hideTabBar: true,\n },\n );\n }\n },\n [params, navigation, channelRole, safeSend],\n );\n\n const searchQuery = safeContextProperty('searchQuery', '');\n\n return (\n <Box className=\"p-2\">\n <FlatList\n data={channels && channels?.length > 0 ? channels : []}\n onRefresh={handleRefresh}\n refreshing={safeContextProperty('refreshing', false)}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box className=\"h-0.5 bg-gray-200\" />}\n renderItem={({ item: channel }: any) =>\n channel?.type === RoomType.Service ? (\n <ServiceDialogsListItem\n onOpen={handleSelectServiceChannel}\n currentUser={auth}\n channel={channel}\n refreshing={safeContextProperty('refreshing', false)}\n selectedChannelId={safeContextProperty('selectedChannelId', params?.channelId)}\n role={channelRole}\n />\n ) : (\n <DialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n selectedChannelId={safeContextProperty('selectedChannelId', params?.channelId)}\n />\n )\n }\n ListEmptyComponent={() => (\n <>\n {userChannelsLoading || safeContextProperty('loading', false) ? (\n <Center className=\"flex-1 justify-center items-center\">\n <Spinner color={colors.blue[500]} />\n </Center>\n ) : (\n <Box className=\"p-5\">\n <Heading>Chat</Heading>\n <Input className={`h-[50] mt-3 rounded-[50] border-gray-200 border `}>\n <InputField\n placeholder=\"Search\"\n value={searchQuery}\n onChangeText={(text) =>\n safeSend({\n type: DialogsActions.SET_SEARCH_QUERY,\n data: { searchQuery: text },\n })\n }\n />\n </Input>\n <Center className=\"mt-6\">\n <Ionicons name=\"chatbubbles\" size={50} />\n <Text>You don't have any messages yet!</Text>\n </Center>\n </Box>\n )}\n </>\n )}\n keyExtractor={(item, index) => 'key' + index}\n />\n </Box>\n );\n};\n\nexport const Dialogs = React.memo(DialogsComponent);\n"],"names":["DialogsActions","_a","React"],"mappings":"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"}
1
+ {"version":3,"file":"Dialogs.js","sources":["../../../../src/screens/inbox/containers/Dialogs.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport {\n FlatList,\n Box,\n Heading,\n Input,\n InputField,\n Text,\n Icon,\n Center,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport { orderBy, uniqBy, startCase } from 'lodash-es';\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { ServiceDialogsListItem } from '../components/ServiceDialogsListItem';\nimport { useGetChannelsByUserQuery, useGetChannelsByUserWithServiceChannelsQuery } from 'common/graphql';\nimport { RoomType } from 'common';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\nimport { config } from '../config';\nimport colors from 'tailwindcss/colors';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n supportServices: boolean;\n}\n\nconst DialogsComponent = (props: InboxProps) => {\n const { channelFilters: channelFilterProp, channelRole, supportServices } = props;\n const channelFilters = { ...channelFilterProp };\n channelFilters.type = channelFilters?.type ?? RoomType.Direct;\n const { params } = useRoute<any>();\n const auth = useSelector(userSelector);\n const dispatch = useDispatch();\n const navigation = useNavigation<any>();\n const isFocused = useIsFocused();\n const [refreshing, setRefresh] = useState<boolean>(false);\n // const [userDirectChannel, setUserDirectChannel] = useState<any>([]);\n\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserWithServiceChannelsQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n supportServices: supportServices ? true : false,\n supportServiceCriteria: {\n type: RoomType.Service,\n },\n },\n });\n\n // const {\n // data: userChannels,\n // loading: userChannelsLoading,\n // refetch: getChannelsRefetch,\n // } = useGetChannelsByUserQuery({\n // variables: {\n // role: channelRole,\n // criteria: channelFilters,\n // },\n // onCompleted: (data: any) => {\n // setRefresh(false);\n // },\n // });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n setRefresh(false);\n //getChannelsRefetch({ role: channelRole, criteria: channelFilters });\n getChannelsRefetch({\n role: channelRole,\n criteria: channelFilters,\n supportServices: supportServices ? true : false,\n supportServiceCriteria: {\n type: RoomType.Service,\n },\n });\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [channelFilters]),\n );\n\n // const channels = React.useMemo(() => {\n // if (!userChannels?.channelsByUser?.length) return null;\n // let uChannels: any =\n // userChannels?.channelsByUser?.filter((c: any) =>\n // c.members.some((u: any) => u !== null && u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n // ) ?? [];\n // return (uChannels && orderBy(uChannels, ['updatedAt'], ['desc'])) || [];\n // }, [userChannels]);\n\n const channels = React.useMemo(() => {\n const allChannels = [...(userChannels?.supportServiceChannels ?? []), ...(userChannels?.channelsByUser ?? [])];\n let uChannels: any =\n allChannels?.filter((c: any) =>\n c.members.some((u: any) => u !== null && u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n ) ?? [];\n return (uChannels && orderBy(uChannels, ['updatedAt'], ['desc'])) || [];\n }, [userChannels]);\n\n // useEffect(() => {\n // setTimeout(() => {\n // dispatch({\n // type: CHANGE_SETTINGS_ACTION,\n // payload: {\n // footerRender: false,\n // },\n // } as any);\n // }, 0);\n // return () => {\n // dispatch({\n // type: CHANGE_SETTINGS_ACTION,\n // payload: {\n // footerRender: true,\n // },\n // } as any);\n // };\n // }, []);\n\n // useEffect(() => {\n // if (userChannels?.channelsByUser) {\n // if (userChannels?.channelsByUser?.length == 0) {\n // setUserDirectChannel([]);\n // }\n // //Direct channel\n // let userDirectChannels: any =\n // userChannels?.channelsByUser\n // ?.filter((i: any) => i.type == 'DIRECT')\n // ?.filter((c: any) =>\n // c.members.some((u: any) => u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n // ) ?? [];\n\n // if (userDirectChannels?.length > 0) setUserDirectChannel(userDirectChannels);\n // }\n // }, [userChannels?.channelsByUser]);\n\n const handleSelectChannel = useCallback((id: any, title: any) => {\n if (params?.channelId) {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: params?.channelId,\n role: params?.role,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n role: channelRole,\n title: title,\n hideTabBar: true,\n });\n }\n }, []);\n\n const handleSelectServiceChannel = useCallback((id: any, title: any, postParentId: any) => {\n if (params?.channelId) {\n navigation.navigate(\n params?.postParentId || params?.postParentId == 0\n ? config.THREAD_MESSEGE_PATH\n : (config.THREADS_PATH as any),\n {\n channelId: params?.channelId,\n role: params?.role,\n title: params?.title ?? null,\n postParentId: params?.postParentId,\n hideTabBar: true,\n },\n );\n } else {\n navigation.navigate(\n postParentId || postParentId == 0 ? config.THREAD_MESSEGE_PATH : (config.THREADS_PATH as any),\n {\n channelId: id,\n role: channelRole,\n title: title,\n postParentId: postParentId,\n hideTabBar: true,\n },\n );\n }\n }, []);\n\n const handleRefresh = useCallback(() => {\n //if(userChannels?.channelsByUser?.length != channels?.length)setRefresh(true);\n setRefresh(true);\n getChannelsRefetch({ role: channelRole, criteria: channelFilters })?.finally(() => setRefresh(false));\n }, []);\n\n return (\n <Box className=\"p-2\">\n <FlatList\n data={channels && channels?.length > 0 ? channels : []}\n onRefresh={handleRefresh}\n refreshing={refreshing}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box className=\"h-0.5 bg-gray-200\" />}\n renderItem={({ item: channel }: any) =>\n channel?.type === RoomType.Service ? (\n <ServiceDialogsListItem\n onOpen={handleSelectServiceChannel}\n currentUser={auth}\n channel={channel}\n refreshing={refreshing}\n selectedChannelId={params?.channelId}\n role={channelRole}\n />\n ) : (\n <DialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )\n }\n ListEmptyComponent={() => (\n <>\n {userChannelsLoading ? (\n <Center className=\"flex-1 justify-center items-center\">\n <Spinner color={colors.blue[500]} />\n </Center>\n ) : (\n <Box className=\"p-5\">\n <Heading>Chat</Heading>\n <Input className={`h-[50] mt-3 rounded-[50] border-gray-200 border `}>\n <InputField placeholder=\"Search\" />\n </Input>\n <Center className=\"mt-6\">\n <Ionicons name=\"chatbubbles\" size={50} />\n <Text>You don't have any messages yet!</Text>\n </Center>\n </Box>\n )}\n </>\n )}\n keyExtractor={(item, index) => 'key' + index}\n />\n </Box>\n );\n};\n\nexport const Dialogs = React.memo(DialogsComponent);\n"],"names":["React","_a"],"mappings":"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"}