@messenger-box/slack-ui-mobile 10.0.3-alpha.38 → 10.0.3-alpha.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/lib/components/AppRootContextProviderComponent.js +16 -2
  2. package/lib/components/AppRootContextProviderComponent.js.map +1 -1
  3. package/lib/components/CustomDrawer/CustomDrawer.js +3 -3
  4. package/lib/components/CustomDrawer/CustomDrawer.js.map +1 -1
  5. package/lib/components/NavigationHeader/InboxNavigationHeader.js +4 -12
  6. package/lib/components/NavigationHeader/InboxNavigationHeader.js.map +1 -1
  7. package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js +4 -8
  8. package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js.map +1 -1
  9. package/lib/compute.js +25 -14
  10. package/lib/index.js.map +1 -1
  11. package/lib/queries/slackuiQueries.js +129 -0
  12. package/lib/queries/slackuiQueries.js.map +1 -0
  13. package/lib/routes.json +25 -14
  14. package/lib/screens/Account/AccountScreen.js.map +1 -1
  15. package/lib/screens/Channels/Add/AddVisibility.js +1 -1
  16. package/lib/screens/Channels/Add/AddVisibility.js.map +1 -1
  17. package/lib/screens/Channels/AddChannel.js +1 -1
  18. package/lib/screens/Channels/AddChannel.js.map +1 -1
  19. package/lib/screens/Channels/Channels.js +6 -16
  20. package/lib/screens/Channels/Channels.js.map +1 -1
  21. package/lib/screens/Home/Components/Channels/Channels.js +19 -98
  22. package/lib/screens/Home/Components/Channels/Channels.js.map +1 -1
  23. package/lib/screens/Home/Components/DirectChannels/DirectChannels.js +90 -116
  24. package/lib/screens/Home/Components/DirectChannels/DirectChannels.js.map +1 -1
  25. package/lib/screens/Home/Components/InviteMembers/index.js +2 -2
  26. package/lib/screens/Home/Components/InviteMembers/index.js.map +1 -1
  27. package/lib/screens/Home/Components/Teams/Teams.js +22 -77
  28. package/lib/screens/Home/Components/Teams/Teams.js.map +1 -1
  29. package/lib/screens/Home/HomeScreen.js +2 -2
  30. package/lib/screens/Home/HomeScreen.js.map +1 -1
  31. package/lib/screens/Inbox/InboxChannelDetail.js +45 -13
  32. package/lib/screens/Inbox/InboxChannelDetail.js.map +1 -1
  33. package/lib/screens/Organization/AddWorkspace.js +4 -8
  34. package/lib/screens/Organization/AddWorkspace.js.map +1 -1
  35. package/lib/screens/Organization/CreateOrganization.js +1 -1
  36. package/lib/screens/Organization/CreateOrganization.js.map +1 -1
  37. package/lib/screens/Organization/InitialChannelOnboarding.js +19 -3
  38. package/lib/screens/Organization/InitialChannelOnboarding.js.map +1 -1
  39. package/lib/screens/Organization/InitializeOrganizationChannel.js +6 -3
  40. package/lib/screens/Organization/InitializeOrganizationChannel.js.map +1 -1
  41. package/lib/screens/Organization/InviteOrganizationMembers.js +50 -10
  42. package/lib/screens/Organization/InviteOrganizationMembers.js.map +1 -1
  43. package/lib/screens/Peoples/AddByEmail.js +1 -1
  44. package/lib/screens/Peoples/AddByEmail.js.map +1 -1
  45. package/lib/screens/Peoples/AddFromContacts.js +34 -9
  46. package/lib/screens/Peoples/AddFromContacts.js.map +1 -1
  47. package/lib/screens/Peoples/AddPeople.js +8 -17
  48. package/lib/screens/Peoples/AddPeople.js.map +1 -1
  49. package/lib/screens/Peoples/People.js +42 -4
  50. package/lib/screens/Peoples/People.js.map +1 -1
  51. package/lib/screens/Profile/ProfileScreen.js +24 -9
  52. package/lib/screens/Profile/ProfileScreen.js.map +1 -1
  53. package/lib/screens/Search/Channels.js +3 -7
  54. package/lib/screens/Search/Channels.js.map +1 -1
  55. package/lib/screens/Search/People.js +2 -2
  56. package/lib/screens/Search/People.js.map +1 -1
  57. package/lib/screens/Search/Recents.js +2 -2
  58. package/lib/screens/Search/Recents.js.map +1 -1
  59. package/lib/screens/Search/SearchAddChannel.js +85 -12
  60. package/lib/screens/Search/SearchAddChannel.js.map +1 -1
  61. package/lib/screens/Search/SearchChannelPeople.js +22 -2
  62. package/lib/screens/Search/SearchChannelPeople.js.map +1 -1
  63. package/lib/screens/Search/SearchScreen.js +2 -2
  64. package/lib/screens/Search/SearchScreen.js.map +1 -1
  65. package/lib/screens/Teams/AddTeam.js +1 -1
  66. package/lib/screens/Teams/AddTeam.js.map +1 -1
  67. package/lib/screens/Teams/Components/Channels/Channels.js +2 -2
  68. package/lib/screens/Teams/Components/Channels/Channels.js.map +1 -1
  69. package/lib/screens/Teams/Components/Members/Members.js.map +1 -1
  70. package/lib/screens/Teams/Team.js +2 -7
  71. package/lib/screens/Teams/Team.js.map +1 -1
  72. package/lib/screens/Teams/Teams.js +1 -1
  73. package/lib/screens/Teams/Teams.js.map +1 -1
  74. package/lib/screens/Teams/useTeams.js +27 -90
  75. package/lib/screens/Teams/useTeams.js.map +1 -1
  76. package/package.json +3 -3
  77. package/lib/screens/Teams/Teams-xstate.js +0 -226
  78. package/lib/screens/Teams/Teams-xstate.js.map +0 -1
@@ -1,23 +1,4 @@
1
- import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import React__default,{useState,useContext,useRef,useCallback,useEffect,useMemo}from'react';import {TouchableOpacity}from'react-native';import {HStack,Avatar,AvatarFallbackText,AvatarImage,Text,Box,FlatList}from'@admin-layout/gluestack-ui-mobile';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector,shallowEqual}from'react-redux';import {orderBy}from'lodash-es';import {RoomType}from'common';import {useGetChannelsByUserQuery,useAddDirectChannelMutation,GetChannelsByUserDocument}from'common/graphql';import'../../../../constants/device.js';import'../../../../constants/globalStyles.js';import'../../../../constants/Layout.js';import {NavigationRoutes}from'../../../../constants/routes.js';import {Feather,MaterialIcons,FontAwesome}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../../../hooks/useDrawerLayout.js';import'../../../../hooks/useExpoNotificationProvider.js';import colors from'tailwindcss/colors';import {RefetchContext}from'../../HomeScreen.js';var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- const DirectChannels = () => {
1
+ import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import React__default,{useState,useContext,useRef,useCallback,useEffect,useMemo}from'react';import {TouchableOpacity}from'react-native';import {HStack,Avatar,AvatarFallbackText,AvatarImage,Text,Box,FlatList}from'@admin-layout/gluestack-ui-mobile';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector,shallowEqual}from'react-redux';import {orderBy}from'lodash-es';import {RoomType}from'common';import {useChannelsQuery,useAddDirectChannelMutation}from'../../../../queries/slackuiQueries.js';import'../../../../constants/device.js';import'../../../../constants/globalStyles.js';import'../../../../constants/Layout.js';import {NavigationRoutes}from'../../../../constants/routes.js';import {Feather,MaterialIcons,FontAwesome}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../../../hooks/useDrawerLayout.js';import'../../../../hooks/useExpoNotificationProvider.js';import colors from'tailwindcss/colors';import {RefetchContext}from'../../HomeScreen.js';import {gql}from'@apollo/client/index.js';const DirectChannels = () => {
21
2
  const navigation = useNavigation();
22
3
  const [expandableMessage, setExpendableMessage] = useState(true);
23
4
  const user = useSelector(userSelector, shallowEqual);
@@ -28,16 +9,14 @@ const DirectChannels = () => {
28
9
  const {
29
10
  shouldRefetch
30
11
  } = useContext(RefetchContext);
31
- const [state, setState] = useState({
32
- directChannels: [],
33
- error: null
34
- });
35
12
  const reFetchDirectChannelsRef = useRef(() => {
36
13
  });
37
14
  const {
38
- data: userDirectChannels,
15
+ data,
16
+ loading,
17
+ error,
39
18
  refetch: reFetchUserDirectChannels
40
- } = useGetChannelsByUserQuery({
19
+ } = useChannelsQuery({
41
20
  variables: {
42
21
  criteria: {
43
22
  orgName,
@@ -48,68 +27,66 @@ const DirectChannels = () => {
48
27
  },
49
28
  fetchPolicy: "cache-and-network",
50
29
  nextFetchPolicy: "cache-first",
51
- onCompleted(data) {
52
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
53
- directChannels: (data == null ? void 0 : data.channelsByUser) || []
54
- }));
55
- },
56
- onError(error) {
57
- const isChannelServiceError = error.message.includes("Service 'ChannelService.getAll' is not found");
58
- const errorMessage = isChannelServiceError ? "Channel service is temporarily unavailable. Please try again later." : error.message;
59
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
60
- error: errorMessage
61
- }));
62
- },
63
30
  skip: !orgName
64
31
  });
65
32
  const [addDirectChannel] = useAddDirectChannelMutation({
66
- onCompleted: () => {
67
- reFetchDirectChannelsRef.current();
68
- },
69
- onError: (error) => {
70
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
71
- error: error.message
72
- }));
73
- },
74
33
  update: (cache, {
75
- data
34
+ data: data2
76
35
  }) => {
77
36
  try {
78
- if (data == null ? void 0 : data.createDirectChannel) {
79
- const existingData = cache.readQuery({
80
- query: GetChannelsByUserDocument,
81
- variables: {
82
- criteria: {
83
- orgName,
84
- type: RoomType.Direct,
85
- team: null
86
- },
87
- limit: 21
88
- }
89
- });
90
- if (existingData == null ? void 0 : existingData.channelsByUser) {
91
- const channelExists = existingData.channelsByUser.some((channel) => channel.id === data.createDirectChannel.id);
92
- if (!channelExists) {
93
- cache.writeQuery({
94
- query: GetChannelsByUserDocument,
95
- variables: {
96
- criteria: {
97
- orgName,
98
- type: RoomType.Direct,
99
- team: null
100
- },
101
- limit: 21
102
- },
103
- data: {
104
- channelsByUser: [data.createDirectChannel, ...existingData.channelsByUser]
37
+ if (data2 == null ? void 0 : data2.createDirectChannel) {
38
+ cache.modify({
39
+ fields: {
40
+ channelsByUser: (existingChannels = [], {
41
+ readField,
42
+ storeFieldName
43
+ }) => {
44
+ if (!storeFieldName.includes(RoomType.Direct) || !storeFieldName.includes(orgName)) {
45
+ return existingChannels;
46
+ }
47
+ const newChannelRef = cache.writeFragment({
48
+ data: data2.createDirectChannel,
49
+ fragment: gql`
50
+ fragment NewChannel on Channel {
51
+ id
52
+ }
53
+ `
54
+ });
55
+ const channelExists = existingChannels.some((channelRef) => readField("id", channelRef) === data2.createDirectChannel.id);
56
+ if (!channelExists) {
57
+ return [newChannelRef, ...existingChannels];
105
58
  }
106
- });
59
+ return existingChannels;
60
+ }
107
61
  }
108
- }
62
+ });
109
63
  }
110
64
  } catch (err) {
111
65
  console.error("Error updating cache after adding direct channel:", err);
112
66
  }
67
+ },
68
+ optimisticResponse: (variables) => {
69
+ return {
70
+ __typename: "Mutation",
71
+ createDirectChannel: {
72
+ __typename: "Channel",
73
+ id: `temp-id-${Date.now()}`,
74
+ title: "DIRECT CHANNEL",
75
+ displayName: "DIRECT CHANNEL",
76
+ type: RoomType.Direct,
77
+ members: [{
78
+ __typename: "ChannelMember",
79
+ id: `temp-member-${Date.now()}`,
80
+ user: {
81
+ __typename: "User",
82
+ id: user == null ? void 0 : user.id,
83
+ givenName: (user == null ? void 0 : user.givenName) || (user == null ? void 0 : user.username) || "You",
84
+ username: user == null ? void 0 : user.username,
85
+ picture: user == null ? void 0 : user.picture
86
+ }
87
+ }]
88
+ }
89
+ };
113
90
  }
114
91
  });
115
92
  const reFetchDirectChannels = useCallback(() => {
@@ -122,14 +99,9 @@ const DirectChannels = () => {
122
99
  },
123
100
  limit: 21
124
101
  }).then((res) => {
125
- var _a, _b, _c, _d;
126
- if ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.channelsByUser) {
127
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
128
- directChannels: res.data.channelsByUser
129
- }));
130
- }
131
- if (((_b = res == null ? void 0 : res.data) == null ? void 0 : _b.channelsByUser) && (user == null ? void 0 : user.id)) {
132
- const filteredChannels = (_d = (_c = res == null ? void 0 : res.data) == null ? void 0 : _c.channelsByUser) == null ? void 0 : _d.filter((channel) => {
102
+ var _a, _b, _c;
103
+ if (((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.channelsByUser) && (user == null ? void 0 : user.id)) {
104
+ const filteredChannels = (_c = (_b = res == null ? void 0 : res.data) == null ? void 0 : _b.channelsByUser) == null ? void 0 : _c.filter((channel) => {
133
105
  var _a2, _b2;
134
106
  return channel.members.length === 1 && ((_b2 = (_a2 = channel.members[0]) == null ? void 0 : _a2.user) == null ? void 0 : _b2.id) === (user == null ? void 0 : user.id);
135
107
  });
@@ -145,25 +117,14 @@ const DirectChannels = () => {
145
117
  });
146
118
  }
147
119
  }
148
- }).catch((error) => {
149
- const isChannelServiceError = error.message && error.message.includes("Service 'ChannelService.getAll' is not found");
150
- const errorMessage = isChannelServiceError ? "Direct messages are temporarily unavailable. Please try again later." : error.message || "Failed to fetch direct messages";
151
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
152
- error: errorMessage
153
- }));
120
+ }).catch((error2) => {
121
+ console.error("Failed to fetch direct messages:", error2.message);
154
122
  });
155
123
  }
156
124
  }, [orgName, user == null ? void 0 : user.id, reFetchUserDirectChannels, addDirectChannel]);
157
125
  useEffect(() => {
158
126
  reFetchDirectChannelsRef.current = reFetchDirectChannels;
159
127
  }, [reFetchDirectChannels]);
160
- useEffect(() => {
161
- return () => {
162
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
163
- directChannels: []
164
- }));
165
- };
166
- }, [orgName]);
167
128
  useEffect(() => {
168
129
  if (shouldRefetch && orgName) {
169
130
  reFetchDirectChannels();
@@ -176,11 +137,11 @@ const DirectChannels = () => {
176
137
  }, [orgName]));
177
138
  const organizationDirectChannels = useMemo(() => {
178
139
  var _a, _b;
179
- return state.directChannels && ((_a = state.directChannels) == null ? void 0 : _a.length) && orderBy((_b = [...state.directChannels]) == null ? void 0 : _b.filter((i) => i.type === RoomType.Direct), [(ch) => {
140
+ return (data == null ? void 0 : data.channelsByUser) && ((_a = data.channelsByUser) == null ? void 0 : _a.length) && orderBy((_b = [...data.channelsByUser]) == null ? void 0 : _b.filter((i) => i.type === RoomType.Direct), [(ch) => {
180
141
  var _a2, _b2;
181
142
  return ch.members && ch.members.length > 0 ? (_b2 = (_a2 = ch.members[0]) == null ? void 0 : _a2.user) == null ? void 0 : _b2.givenName : "";
182
143
  }], ["asc"]) || [];
183
- }, [state.directChannels]);
144
+ }, [data == null ? void 0 : data.channelsByUser]);
184
145
  const openInbox = useCallback((id, title, totalMembers, type) => {
185
146
  navigation.navigate(NavigationRoutes.DialogMessages, {
186
147
  channelId: id == null ? void 0 : id.toString(),
@@ -201,10 +162,11 @@ const DirectChannels = () => {
201
162
  return ((_a2 = m == null ? void 0 : m.user) == null ? void 0 : _a2.id) !== (user == null ? void 0 : user.id);
202
163
  })) == null ? void 0 : _f[0]) == null ? void 0 : _g.user) || ((_i = (_h = item.members) == null ? void 0 : _h[0]) == null ? void 0 : _i.user);
203
164
  const getUserName = () => {
165
+ var _a2, _b2;
204
166
  if (isSelfDM) {
205
- return (user == null ? void 0 : user.givenName) || (user == null ? void 0 : user.username) || "You";
167
+ return ((_a2 = user == null ? void 0 : user.profile) == null ? void 0 : _a2.name) || ((_b2 = user == null ? void 0 : user.profile) == null ? void 0 : _b2.nickname) || "You";
206
168
  }
207
- return (member == null ? void 0 : member.givenName) || (member == null ? void 0 : member.username) || "Unknown";
169
+ return (member == null ? void 0 : member.givenName) + " " + (member == null ? void 0 : member.familyName) || (member == null ? void 0 : member.givenName) || (member == null ? void 0 : member.username) || "Unknown";
208
170
  };
209
171
  return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => {
210
172
  var _a2;
@@ -212,9 +174,9 @@ const DirectChannels = () => {
212
174
  }, style: {
213
175
  paddingVertical: 2,
214
176
  paddingHorizontal: 12
215
- } }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Avatar, { size: "xs", style: {
177
+ } }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Avatar, { size: "xs", className: "rounded-md", style: {
216
178
  backgroundColor: getUserAvatarColor(getUserName())
217
- } }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, null, getUserName()), (member == null ? void 0 : member.picture) && /* @__PURE__ */ React__default.createElement(AvatarImage, { source: {
179
+ } }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, null, getUserName()), (member == null ? void 0 : member.picture) && /* @__PURE__ */ React__default.createElement(AvatarImage, { className: "rounded-md", source: {
218
180
  uri: member.picture
219
181
  }, alt: getUserName() })), /* @__PURE__ */ React__default.createElement(Text, { className: "text-gray-900 flex-1 text-base" }, getUserName(), isSelfDM && " (you)")));
220
182
  }, [user, openInbox]);
@@ -246,18 +208,23 @@ const DirectChannels = () => {
246
208
  const ListEmptyComponent = useCallback(() => {
247
209
  return /* @__PURE__ */ React__default.createElement(Box, { style: {
248
210
  padding: 12
249
- } }, state.error ? /* @__PURE__ */ React__default.createElement(Box, { style: {
211
+ } }, error ? /* @__PURE__ */ React__default.createElement(Box, { style: {
250
212
  padding: 8,
251
213
  backgroundColor: "#FFF4F4",
252
214
  borderRadius: 4
253
215
  } }, /* @__PURE__ */ React__default.createElement(Text, { color: "#E01E5A", style: {
254
216
  marginBottom: 8,
255
217
  fontWeight: "500"
256
- } }, state.error), /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: reFetchDirectChannels }, /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", style: {
218
+ } }, error.message.includes("Service 'ChannelService.getAll' is not found") ? "Direct messages are temporarily unavailable. Please try again later." : error.message), /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: reFetchDirectChannels }, /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", style: {
257
219
  alignItems: "center"
258
220
  } }, /* @__PURE__ */ React__default.createElement(Feather, { name: "refresh-cw", color: "#1264A3", size: 16 }), /* @__PURE__ */ React__default.createElement(Text, { color: "#1264A3", style: {
259
221
  fontWeight: "500"
260
- } }, "Retry")))) : /* @__PURE__ */ React__default.createElement(Box, { style: {
222
+ } }, "Retry")))) : loading ? /* @__PURE__ */ React__default.createElement(Box, { style: {
223
+ alignItems: "center",
224
+ paddingVertical: 16
225
+ } }, /* @__PURE__ */ React__default.createElement(Text, { style: {
226
+ color: "#616061"
227
+ } }, "Loading...")) : /* @__PURE__ */ React__default.createElement(Box, { style: {
261
228
  alignItems: "center",
262
229
  paddingVertical: 16
263
230
  } }, /* @__PURE__ */ React__default.createElement(Box, { style: {
@@ -269,17 +236,24 @@ const DirectChannels = () => {
269
236
  color: "#616061",
270
237
  textAlign: "center"
271
238
  } }, "No direct messages yet")));
272
- }, [state.error, reFetchDirectChannels]);
239
+ }, [error, loading, reFetchDirectChannels]);
273
240
  const ListFooterComponent = useCallback(() => {
274
- return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => navigation.navigate(NavigationRoutes.AddPeople, {
275
- orgName
276
- }), style: {
277
- paddingVertical: 6,
278
- paddingHorizontal: 12
279
- } }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Feather, { color: "#616061", name: "plus", size: 18 }), /* @__PURE__ */ React__default.createElement(Text, { style: {
280
- fontSize: 16,
281
- color: "#616061"
282
- } }, "Add People")));
241
+ return /* @__PURE__ */ React__default.createElement(
242
+ TouchableOpacity,
243
+ {
244
+ onPress: () => navigation.navigate(NavigationRoutes.SearchAddChannel, {
245
+ orgName
246
+ }),
247
+ style: {
248
+ paddingVertical: 6,
249
+ paddingHorizontal: 12
250
+ }
251
+ },
252
+ /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Feather, { color: "#616061", name: "plus", size: 18 }), /* @__PURE__ */ React__default.createElement(Text, { style: {
253
+ fontSize: 16,
254
+ color: "#616061"
255
+ } }, "Start a new message"))
256
+ );
283
257
  }, [orgName, navigation]);
284
258
  const SectionHeader = useCallback(() => {
285
259
  return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => setExpendableMessage(!expandableMessage), style: {
@@ -1 +1 @@
1
- {"version":3,"file":"DirectChannels.js","sources":["../../../../../src/screens/Home/Components/DirectChannels/DirectChannels.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useEffect, useCallback, useMemo, useRef, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styles from '../../styles';\nimport {\n View,\n FlatList,\n HStack,\n Icon,\n Box,\n Text,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n AddIcon,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { startCase, orderBy } from 'lodash-es';\nimport { RoomType } from 'common';\nimport { useGetChannelsByUserQuery, useAddDirectChannelMutation, GetChannelsByUserDocument } from 'common/graphql';\nimport { NavigationRoutes } from '../../../../constants';\nimport { MaterialIcons, Feather, FontAwesome } from '@expo/vector-icons';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext } from '../../HomeScreen';\n\n// Define a type for the channel data\ninterface Channel {\n id: string;\n title: string;\n displayName: string;\n type: string;\n members: Array<{\n id: string;\n user: any;\n }>;\n}\n\ninterface ChannelsByUserData {\n channelsByUser: Channel[];\n}\n\nconst DirectChannels = () => {\n const navigation = useNavigation<any>();\n const [expandableMessage, setExpendableMessage] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { orgName } = useDrawerLayout();\n const { shouldRefetch } = useContext(RefetchContext);\n\n // Simplified local state\n const [state, setState] = useState({\n directChannels: [],\n error: null,\n });\n\n // Refs to avoid circular dependencies\n const reFetchDirectChannelsRef = useRef<() => void>(() => {});\n\n // GraphQL Queries and Mutations\n const { data: userDirectChannels, refetch: reFetchUserDirectChannels } = useGetChannelsByUserQuery({\n variables: {\n criteria: {\n orgName: orgName,\n type: RoomType.Direct,\n team: null,\n },\n limit: 21,\n },\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n onCompleted(data) {\n setState((prev) => ({\n ...prev,\n directChannels: data?.channelsByUser || [],\n }));\n },\n onError(error) {\n // Check specifically for ChannelService error\n const isChannelServiceError = error.message.includes(\"Service 'ChannelService.getAll' is not found\");\n const errorMessage = isChannelServiceError\n ? 'Channel service is temporarily unavailable. Please try again later.'\n : error.message;\n\n // Update state to reflect the error\n setState((prev) => ({\n ...prev,\n error: errorMessage,\n }));\n },\n // Skip the query if organization name is not available\n skip: !orgName,\n });\n\n const [addDirectChannel] = useAddDirectChannelMutation({\n onCompleted: () => {\n reFetchDirectChannelsRef.current();\n },\n onError: (error: any) => {\n setState((prev) => ({\n ...prev,\n error: error.message,\n }));\n },\n update: (cache, { data }) => {\n // Update the cache with the new channel\n try {\n if (data?.createDirectChannel) {\n // Read the current query data from cache with type assertion\n const existingData = cache.readQuery({\n query: GetChannelsByUserDocument,\n variables: {\n criteria: {\n orgName: orgName,\n type: RoomType.Direct,\n team: null,\n },\n limit: 21,\n },\n }) as ChannelsByUserData | null;\n\n // If we have existing data, update it\n if (existingData?.channelsByUser) {\n // Check if the new channel already exists in the cache\n const channelExists = existingData.channelsByUser.some(\n (channel) => channel.id === data.createDirectChannel.id,\n );\n\n // Only add the new channel if it doesn't already exist\n if (!channelExists) {\n // Write the updated data back to the cache with type assertion\n cache.writeQuery({\n query: GetChannelsByUserDocument,\n variables: {\n criteria: {\n orgName: orgName,\n type: RoomType.Direct,\n team: null,\n },\n limit: 21,\n },\n data: {\n channelsByUser: [data.createDirectChannel, ...existingData.channelsByUser],\n } as ChannelsByUserData,\n });\n }\n }\n }\n } catch (err) {\n console.error('Error updating cache after adding direct channel:', err);\n }\n },\n });\n\n // Initialize reFetchDirectChannels function\n const reFetchDirectChannels = useCallback(() => {\n if (orgName) {\n reFetchUserDirectChannels({\n criteria: {\n orgName: orgName,\n type: RoomType.Direct,\n team: null,\n },\n limit: 21,\n })\n .then((res) => {\n if (res?.data?.channelsByUser) {\n setState((prev) => ({\n ...prev,\n directChannels: res.data.channelsByUser,\n }));\n }\n\n if (res?.data?.channelsByUser && user?.id) {\n const filteredChannels = res?.data?.channelsByUser?.filter(\n (channel) => channel.members.length === 1 && channel.members[0]?.user?.id === user?.id,\n );\n\n if (!filteredChannels?.length) {\n addDirectChannel({\n variables: {\n receiver: [user.id],\n displayName: 'DIRECT CHANNEL',\n channelOptions: { schemeAdmin: true },\n },\n });\n }\n }\n })\n .catch((error) => {\n // Check specifically for ChannelService error\n const isChannelServiceError =\n error.message && error.message.includes(\"Service 'ChannelService.getAll' is not found\");\n const errorMessage = isChannelServiceError\n ? 'Direct messages are temporarily unavailable. Please try again later.'\n : error.message || 'Failed to fetch direct messages';\n\n setState((prev) => ({\n ...prev,\n error: errorMessage,\n }));\n });\n }\n }, [orgName, user?.id, reFetchUserDirectChannels, addDirectChannel]);\n\n // Set ref for future calls\n useEffect(() => {\n reFetchDirectChannelsRef.current = reFetchDirectChannels;\n }, [reFetchDirectChannels]);\n\n // Reset state when unmounting\n useEffect(() => {\n return () => {\n setState((prev) => ({\n ...prev,\n directChannels: [],\n }));\n };\n }, [orgName]);\n\n // Use RefetchContext to control when to refetch data\n useEffect(() => {\n if (shouldRefetch && orgName) {\n reFetchDirectChannels();\n }\n }, [shouldRefetch, orgName, reFetchDirectChannels]);\n\n // Focus effect to fetch data when screen is focused\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n reFetchDirectChannels();\n }\n }, [orgName]),\n );\n\n const organizationDirectChannels = useMemo(() => {\n return (\n (state.directChannels &&\n state.directChannels?.length &&\n orderBy(\n [...state.directChannels]?.filter((i: any) => i.type === RoomType.Direct),\n [(ch: any) => (ch.members && ch.members.length > 0 ? ch.members[0]?.user?.givenName : '')],\n ['asc'],\n )) ||\n []\n );\n }, [state.directChannels]);\n\n const openInbox = useCallback(\n (id: any, title: any, totalMembers: any, type?: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: id?.toString(),\n title: title?.toString(),\n totalMembers: totalMembers,\n channelType: type,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderDirectChannelItem = useCallback(\n ({ item }) => {\n const isSelfDM = item.members?.length === 1 && item.members?.[0]?.user?.id === user?.id;\n\n const member =\n item.members?.filter((m: any) => m?.user?.id !== user?.id)?.[0]?.user || item.members?.[0]?.user;\n\n const getUserName = () => {\n if (isSelfDM) {\n return user?.givenName || user?.username || 'You';\n }\n\n return member?.givenName || member?.username || 'Unknown';\n };\n\n return (\n <TouchableOpacity\n onPress={() => openInbox(item.id, getUserName(), item.members?.length, item.type)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Avatar size=\"xs\" style={{ backgroundColor: getUserAvatarColor(getUserName()) }}>\n <AvatarFallbackText>{getUserName()}</AvatarFallbackText>\n {member?.picture && <AvatarImage source={{ uri: member.picture }} alt={getUserName()} />}\n </Avatar>\n <Text className=\"text-gray-900 flex-1 text-base\">\n {getUserName()}\n {isSelfDM && ' (you)'}\n </Text>\n </HStack>\n </TouchableOpacity>\n );\n },\n [user, openInbox],\n );\n\n const getUserAvatarColor = (name: string) => {\n const colorOptions = [\n '#E57373', // Red\n '#F06292', // Pink\n '#BA68C8', // Purple\n '#9575CD', // Deep Purple\n '#7986CB', // Indigo\n '#64B5F6', // Blue\n '#4FC3F7', // Light Blue\n '#4DD0E1', // Cyan\n '#4DB6AC', // Teal\n '#81C784', // Green\n '#AED581', // Light Green\n '#DCE775', // Lime\n '#FFD54F', // Amber\n '#FFB74D', // Orange\n '#FF8A65', // Deep Orange\n ];\n\n // Simple hash function to map names to consistent colors\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n hash = Math.abs(hash);\n return colorOptions[hash % colorOptions.length];\n };\n\n const ListEmptyComponent = useCallback(() => {\n return (\n <Box style={{ padding: 12 }}>\n {state.error ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {state.error}\n </Text>\n <TouchableOpacity onPress={reFetchDirectChannels}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <MaterialIcons name=\"person-outline\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No direct messages yet</Text>\n </Box>\n )}\n </Box>\n );\n }, [state.error, reFetchDirectChannels]);\n\n const ListFooterComponent = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddPeople, { orgName })}\n style={{ paddingVertical: 6, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Add People</Text>\n </HStack>\n </TouchableOpacity>\n );\n }, [orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setExpendableMessage(!expandableMessage)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Direct Messages\n </Text>\n <FontAwesome\n name={expandableMessage ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [expandableMessage]);\n\n if (!expandableMessage) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationDirectChannels?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'direct') + '-' + item?.title}\n data={organizationDirectChannels}\n renderItem={renderDirectChannelItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <Box>\n <ListEmptyComponent />\n <ListFooterComponent />\n </Box>\n )}\n </Box>\n );\n};\n\nexport default DirectChannels;\n"],"names":["_a","_b","React"],"mappings":"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"}
1
+ {"version":3,"file":"DirectChannels.js","sources":["../../../../../src/screens/Home/Components/DirectChannels/DirectChannels.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useEffect, useCallback, useMemo, useRef, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styles from '../../styles';\nimport {\n View,\n FlatList,\n HStack,\n Icon,\n Box,\n Text,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n AddIcon,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { startCase, orderBy } from 'lodash-es';\nimport { RoomType } from 'common';\nimport {\n useChannelsQuery,\n useAddDirectChannelMutation,\n GetChannelsByUserDocument,\n} from '../../../../queries/slackuiQueries';\nimport { NavigationRoutes } from '../../../../constants';\nimport { MaterialIcons, Feather, FontAwesome } from '@expo/vector-icons';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext } from '../../HomeScreen';\nimport { gql } from '@apollo/client';\n\n// Define a type for the channel data\ninterface Channel {\n id: string;\n title: string;\n displayName: string;\n type: string;\n members: Array<{\n id: string;\n user: any;\n }>;\n}\n\ninterface ChannelsByUserData {\n channelsByUser: Channel[];\n}\n\nconst DirectChannels = () => {\n const navigation = useNavigation<any>();\n const [expandableMessage, setExpendableMessage] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { orgName } = useDrawerLayout();\n const { shouldRefetch } = useContext(RefetchContext);\n\n // Refs to avoid circular dependencies\n const reFetchDirectChannelsRef = useRef<() => void>(() => {});\n\n // GraphQL Queries and Mutations\n const {\n data,\n loading,\n error,\n refetch: reFetchUserDirectChannels,\n } = useChannelsQuery({\n variables: {\n criteria: {\n orgName: orgName,\n type: RoomType.Direct,\n team: null,\n },\n limit: 21,\n },\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n // Skip the query if organization name is not available\n skip: !orgName,\n });\n\n const [addDirectChannel] = useAddDirectChannelMutation({\n update: (cache, { data }) => {\n // Update the cache with the new channel\n try {\n if (data?.createDirectChannel) {\n // Use cache.modify instead of readQuery/writeQuery for better integration with type policies\n cache.modify({\n fields: {\n channelsByUser: (existingChannels = [], { readField, storeFieldName }) => {\n // Get variables from the storeFieldName to ensure we're modifying the correct query\n // Only do this if we can extract the correct variables from the storeFieldName\n if (!storeFieldName.includes(RoomType.Direct) || !storeFieldName.includes(orgName)) {\n return existingChannels;\n }\n\n // Check if the new channel already exists in the cache\n const newChannelRef = cache.writeFragment({\n data: data.createDirectChannel,\n fragment: gql`\n fragment NewChannel on Channel {\n id\n }\n `,\n });\n\n // Check if this channel already exists\n const channelExists = existingChannels.some(\n (channelRef) => readField('id', channelRef) === data.createDirectChannel.id,\n );\n\n // Only add the channel if it doesn't already exist\n if (!channelExists) {\n return [newChannelRef, ...existingChannels];\n }\n\n return existingChannels;\n },\n },\n });\n }\n } catch (err) {\n console.error('Error updating cache after adding direct channel:', err);\n }\n },\n optimisticResponse: (variables) => {\n // Create an optimistic response that mimics the expected server response\n return {\n __typename: 'Mutation',\n createDirectChannel: {\n __typename: 'Channel',\n id: `temp-id-${Date.now()}`, // Temporary ID that will be replaced when the server responds\n title: 'DIRECT CHANNEL',\n displayName: 'DIRECT CHANNEL',\n type: RoomType.Direct,\n members: [\n {\n __typename: 'ChannelMember',\n id: `temp-member-${Date.now()}`,\n user: {\n __typename: 'User',\n id: user?.id,\n givenName: user?.givenName || user?.username || 'You',\n username: user?.username,\n picture: user?.picture,\n },\n },\n ],\n },\n };\n },\n });\n\n // Initialize reFetchDirectChannels function\n const reFetchDirectChannels = useCallback(() => {\n if (orgName) {\n reFetchUserDirectChannels({\n criteria: {\n orgName: orgName,\n type: RoomType.Direct,\n team: null,\n },\n limit: 21,\n })\n .then((res) => {\n if (res?.data?.channelsByUser && user?.id) {\n const filteredChannels = res?.data?.channelsByUser?.filter(\n (channel) => channel.members.length === 1 && channel.members[0]?.user?.id === user?.id,\n );\n\n if (!filteredChannels?.length) {\n addDirectChannel({\n variables: {\n receiver: [user.id],\n displayName: 'DIRECT CHANNEL',\n channelOptions: { schemeAdmin: true },\n },\n });\n }\n }\n })\n .catch((error) => {\n console.error('Failed to fetch direct messages:', error.message);\n });\n }\n }, [orgName, user?.id, reFetchUserDirectChannels, addDirectChannel]);\n\n // Set ref for future calls\n useEffect(() => {\n reFetchDirectChannelsRef.current = reFetchDirectChannels;\n }, [reFetchDirectChannels]);\n\n // Use RefetchContext to control when to refetch data\n useEffect(() => {\n if (shouldRefetch && orgName) {\n reFetchDirectChannels();\n }\n }, [shouldRefetch, orgName, reFetchDirectChannels]);\n\n // Focus effect to fetch data when screen is focused\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n reFetchDirectChannels();\n }\n }, [orgName]),\n );\n\n const organizationDirectChannels = useMemo(() => {\n return (\n (data?.channelsByUser &&\n data.channelsByUser?.length &&\n orderBy(\n [...data.channelsByUser]?.filter((i: any) => i.type === RoomType.Direct),\n [(ch: any) => (ch.members && ch.members.length > 0 ? ch.members[0]?.user?.givenName : '')],\n ['asc'],\n )) ||\n []\n );\n }, [data?.channelsByUser]);\n\n const openInbox = useCallback(\n (id: any, title: any, totalMembers: any, type?: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: id?.toString(),\n title: title?.toString(),\n totalMembers: totalMembers,\n channelType: type,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderDirectChannelItem = useCallback(\n ({ item }) => {\n const isSelfDM = item.members?.length === 1 && item.members?.[0]?.user?.id === user?.id;\n\n const member =\n item.members?.filter((m: any) => m?.user?.id !== user?.id)?.[0]?.user || item.members?.[0]?.user;\n\n const getUserName = () => {\n if (isSelfDM) {\n return user?.profile?.name || user?.profile?.nickname || 'You';\n }\n\n return (\n member?.givenName + ' ' + member?.familyName || member?.givenName || member?.username || 'Unknown'\n );\n };\n\n return (\n <TouchableOpacity\n onPress={() => openInbox(item.id, getUserName(), item.members?.length, item.type)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Avatar\n size=\"xs\"\n className=\"rounded-md\"\n style={{ backgroundColor: getUserAvatarColor(getUserName()) }}\n >\n <AvatarFallbackText>{getUserName()}</AvatarFallbackText>\n {member?.picture && (\n <AvatarImage\n className=\"rounded-md\"\n source={{ uri: member.picture }}\n alt={getUserName()}\n />\n )}\n </Avatar>\n <Text className=\"text-gray-900 flex-1 text-base\">\n {getUserName()}\n {isSelfDM && ' (you)'}\n </Text>\n </HStack>\n </TouchableOpacity>\n );\n },\n [user, openInbox],\n );\n\n const getUserAvatarColor = (name: string) => {\n const colorOptions = [\n '#E57373', // Red\n '#F06292', // Pink\n '#BA68C8', // Purple\n '#9575CD', // Deep Purple\n '#7986CB', // Indigo\n '#64B5F6', // Blue\n '#4FC3F7', // Light Blue\n '#4DD0E1', // Cyan\n '#4DB6AC', // Teal\n '#81C784', // Green\n '#AED581', // Light Green\n '#DCE775', // Lime\n '#FFD54F', // Amber\n '#FFB74D', // Orange\n '#FF8A65', // Deep Orange\n ];\n\n // Simple hash function to map names to consistent colors\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n hash = Math.abs(hash);\n return colorOptions[hash % colorOptions.length];\n };\n\n const ListEmptyComponent = useCallback(() => {\n return (\n <Box style={{ padding: 12 }}>\n {error ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {error.message.includes(\"Service 'ChannelService.getAll' is not found\")\n ? 'Direct messages are temporarily unavailable. Please try again later.'\n : error.message}\n </Text>\n <TouchableOpacity onPress={reFetchDirectChannels}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : loading ? (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Text style={{ color: '#616061' }}>Loading...</Text>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <MaterialIcons name=\"person-outline\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No direct messages yet</Text>\n </Box>\n )}\n </Box>\n );\n }, [error, loading, reFetchDirectChannels]);\n\n const ListFooterComponent = useCallback(() => {\n return (\n <TouchableOpacity\n // onPress={() => navigation.navigate(NavigationRoutes.AddPeople, { orgName })}\n onPress={() => navigation.navigate(NavigationRoutes.SearchAddChannel, { orgName })}\n style={{ paddingVertical: 6, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Start a new message</Text>\n </HStack>\n </TouchableOpacity>\n );\n }, [orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setExpendableMessage(!expandableMessage)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Direct Messages\n </Text>\n <FontAwesome\n name={expandableMessage ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [expandableMessage]);\n\n if (!expandableMessage) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationDirectChannels?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'direct') + '-' + item?.title}\n data={organizationDirectChannels}\n renderItem={renderDirectChannelItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <Box>\n <ListEmptyComponent />\n <ListFooterComponent />\n </Box>\n )}\n </Box>\n );\n};\n\nexport default DirectChannels;\n"],"names":["data","_a","_b","error","React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React__default from'react';import {TouchableOpacity,Share}from'react-native';import {Ionicons,AntDesign,MaterialCommunityIcons}from'@expo/vector-icons';import {useNavigation}from'@react-navigation/native';import {HStack,Text,Box}from'@admin-layout/gluestack-ui-mobile';import {useDisclose}from'../../../../hooks/useDisclose.js';import Colors from'../../../../constants/Colors.js';import'../../../../constants/device.js';import'../../../../constants/globalStyles.js';import'../../../../constants/Layout.js';import {NavigationRoutes}from'../../../../constants/routes.js';import'@react-navigation/core';import'../../../../components/Header/styles.js';import'../../../../components/Tiles/styles.js';import'../../../../components/CustomDrawer/CustomDrawer.js';import'../../../../components/CustomBottomTabs/CustomBottomTabs.js';import'../../../../components/NavigationHeader/NavigationHeader.js';import'@react-navigation/elements';import'@common-stack/client-react';import'../../../../components/NavigationHeader/InboxNavigationHeader.js';import colors from'tailwindcss/colors';import'../../../../components/WorkSpaceDrawer/WorkSpaceDrawer.js';import'../../../../components/Channels/ChannelsByAlphabeticalAccordion.js';import'../../../../components/SlackSearchInput/index.js';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../../../hooks/useDrawerLayout.js';import'../../../../hooks/useExpoNotificationProvider.js';import {Actionsheet as ActionSheet}from'../../../../components/Actionsheet.js';import {useGetOrganizationSharableLinkQuery}from'common/graphql';import {config}from'../../../../config/env-config.js';const InviteMembers = () => {
1
+ import React__default from'react';import {TouchableOpacity,Share}from'react-native';import {Ionicons,AntDesign,MaterialCommunityIcons}from'@expo/vector-icons';import {useNavigation}from'@react-navigation/native';import {HStack,Text,Box}from'@admin-layout/gluestack-ui-mobile';import {useDisclose}from'../../../../hooks/useDisclose.js';import Colors from'../../../../constants/Colors.js';import'../../../../constants/device.js';import'../../../../constants/globalStyles.js';import'../../../../constants/Layout.js';import {NavigationRoutes}from'../../../../constants/routes.js';import'@react-navigation/core';import'../../../../components/Header/styles.js';import'../../../../components/Tiles/styles.js';import'../../../../components/CustomDrawer/CustomDrawer.js';import'../../../../components/CustomBottomTabs/CustomBottomTabs.js';import'../../../../components/NavigationHeader/NavigationHeader.js';import'@react-navigation/elements';import'@common-stack/client-react';import'../../../../components/NavigationHeader/InboxNavigationHeader.js';import colors from'tailwindcss/colors';import'../../../../components/WorkSpaceDrawer/WorkSpaceDrawer.js';import'../../../../components/Channels/ChannelsByAlphabeticalAccordion.js';import'../../../../components/SlackSearchInput/index.js';import'../../../../components/AppRootContextProviderComponent.js';import {Actionsheet as ActionSheet}from'../../../../components/Actionsheet.js';import {useOrganizationSharableLinkQuery}from'../../../../queries/slackuiQueries.js';import {useDrawerLayout}from'../../../../hooks/useDrawerLayout.js';import {config}from'../../../../config/env-config.js';const InviteMembers = () => {
2
2
  const {
3
3
  isOpen,
4
4
  onOpen,
@@ -10,7 +10,7 @@ import React__default from'react';import {TouchableOpacity,Share}from'react-nati
10
10
  } = useDrawerLayout();
11
11
  const {
12
12
  data: organizationSharableLink
13
- } = useGetOrganizationSharableLinkQuery({
13
+ } = useOrganizationSharableLinkQuery(orgName, {
14
14
  fetchPolicy: "cache-and-network",
15
15
  skip: !isOpen
16
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/screens/Home/Components/InviteMembers/index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableHighlight, Share, TouchableOpacity } from 'react-native';\nimport { Ionicons, AntDesign, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { useDisclose } from '../../../../hooks/useDisclose';\nimport { NavigationRoutes, colors } from '../../../../constants';\nimport { Actionsheet } from '../../../../components';\nimport { useGetOrganizationSharableLinkQuery } from 'common/graphql';\nimport { useDrawerLayout } from '../../../../hooks/useDrawerLayout';\nimport { config } from '../../../../config';\nimport Colors from 'tailwindcss/colors';\n\nexport const InviteMembers = () => {\n const { isOpen, onOpen, onClose } = useDisclose();\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n\n // Only fetch sharable link when needed (when action sheet is open)\n const { data: organizationSharableLink } = useGetOrganizationSharableLinkQuery({\n fetchPolicy: 'cache-and-network',\n skip: !isOpen,\n });\n\n const shareLink = async () => {\n try {\n await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n };\n\n const actionItems = [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.green,\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n }}\n >\n <Ionicons color={'white'} name=\"share-outline\" size={22} />\n <Text className=\"text-white\" style={{ color: 'white', fontWeight: '600', fontSize: 16 }}>\n Share a Link\n </Text>\n </HStack>\n ),\n onPress: shareLink,\n },\n {\n id: 2,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <AntDesign color={Colors.gray[900]} name=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add from Contacts</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {\n orgName,\n }),\n },\n // {\n // id: 3,\n // label: (\n // <HStack\n // space={'sm'}\n // className=\"flex-1 justify-center items-center\"\n // style={{\n // paddingVertical: 12,\n // borderRadius: 8,\n // marginHorizontal: 10,\n // marginVertical: 5,\n // backgroundColor: Colors.gray[50],\n // }}\n // >\n // <AntDesign color={Colors.gray[900]} name=\"google\" size={22} />\n // <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n // Add from Google Contacts\n // </Text>\n // </HStack>\n // ),\n // onPress: () => {\n // // Navigate to Google contacts integration\n // // This would be implemented based on your app's functionality\n // },\n // },\n {\n id: 4,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <MaterialCommunityIcons color={Colors.gray[900]} name=\"email-outline\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add by Email</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleByEmail, {\n orgName,\n }),\n },\n ];\n\n return (\n <Box style={{ marginBottom: 8, paddingHorizontal: 12 }}>\n {/* Floating Action Button to open ActionSheet */}\n <TouchableOpacity onPress={onOpen}>\n <Box className=\"py-3 \">\n <HStack space={'sm'} className=\"w-full flex-1 items-center space-x-3\">\n <Box>\n <Ionicons name=\"add\" size={20} color=\"black\" />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableOpacity>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n isShowCancelButton={false}\n header={\n <Text\n className=\"text-center font-bold text-lg bg-white\"\n style={{\n paddingVertical: 16,\n color: Colors.gray[900],\n }}\n >\n Invite people to join your team\n </Text>\n }\n />\n </Box>\n );\n};\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/screens/Home/Components/InviteMembers/index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableHighlight, Share, TouchableOpacity } from 'react-native';\nimport { Ionicons, AntDesign, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { useDisclose } from '../../../../hooks/useDisclose';\nimport { NavigationRoutes, colors } from '../../../../constants';\nimport { Actionsheet } from '../../../../components';\nimport { useOrganizationSharableLinkQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks/useDrawerLayout';\nimport { config } from '../../../../config';\nimport Colors from 'tailwindcss/colors';\n\nexport const InviteMembers = () => {\n const { isOpen, onOpen, onClose } = useDisclose();\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n\n // Only fetch sharable link when needed (when action sheet is open)\n const { data: organizationSharableLink } = useOrganizationSharableLinkQuery(orgName, {\n fetchPolicy: 'cache-and-network',\n skip: !isOpen,\n });\n\n const shareLink = async () => {\n try {\n await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n };\n\n const actionItems = [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.green,\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n }}\n >\n <Ionicons color={'white'} name=\"share-outline\" size={22} />\n <Text className=\"text-white\" style={{ color: 'white', fontWeight: '600', fontSize: 16 }}>\n Share a Link\n </Text>\n </HStack>\n ),\n onPress: shareLink,\n },\n {\n id: 2,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <AntDesign color={Colors.gray[900]} name=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add from Contacts</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {\n orgName,\n }),\n },\n // {\n // id: 3,\n // label: (\n // <HStack\n // space={'sm'}\n // className=\"flex-1 justify-center items-center\"\n // style={{\n // paddingVertical: 12,\n // borderRadius: 8,\n // marginHorizontal: 10,\n // marginVertical: 5,\n // backgroundColor: Colors.gray[50],\n // }}\n // >\n // <AntDesign color={Colors.gray[900]} name=\"google\" size={22} />\n // <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n // Add from Google Contacts\n // </Text>\n // </HStack>\n // ),\n // onPress: () => {\n // // Navigate to Google contacts integration\n // // This would be implemented based on your app's functionality\n // },\n // },\n {\n id: 4,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <MaterialCommunityIcons color={Colors.gray[900]} name=\"email-outline\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add by Email</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleByEmail, {\n orgName,\n }),\n },\n ];\n\n return (\n <Box style={{ marginBottom: 8, paddingHorizontal: 12 }}>\n {/* Floating Action Button to open ActionSheet */}\n <TouchableOpacity onPress={onOpen}>\n <Box className=\"py-3 \">\n <HStack space={'sm'} className=\"w-full flex-1 items-center space-x-3\">\n <Box>\n <Ionicons name=\"add\" size={20} color=\"black\" />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableOpacity>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n isShowCancelButton={false}\n header={\n <Text\n className=\"text-center font-bold text-lg bg-white\"\n style={{\n paddingVertical: 16,\n color: Colors.gray[900],\n }}\n >\n Invite people to join your team\n </Text>\n }\n />\n </Box>\n );\n};\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}