@messenger-box/slack-ui-mobile 10.0.3-alpha.40 → 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,26 +1,6 @@
1
- import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import React__default,{useState,useContext,useCallback,useEffect,useMemo}from'react';import {TouchableOpacity}from'react-native';import {HStack,Text,Box,VStack,FlatList}from'@admin-layout/gluestack-ui-mobile';import {NavigationRoutes}from'../../../../constants/routes.js';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector,shallowEqual}from'react-redux';import {take,orderBy,uniqBy}from'lodash-es';import {useGetOrganizationTeamsQuery}from'common/graphql';import {Octicons,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 Teams = () => {
1
+ import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import React__default,{useState,useContext,useCallback,useMemo}from'react';import {TouchableOpacity}from'react-native';import {HStack,Text,Box,VStack,FlatList}from'@admin-layout/gluestack-ui-mobile';import {NavigationRoutes}from'../../../../constants/routes.js';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector,shallowEqual}from'react-redux';import {take,orderBy,uniqBy}from'lodash-es';import {useTeamsQuery}from'../../../../queries/slackuiQueries.js';import {Octicons,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';const Teams = () => {
21
2
  const {
22
- orgName,
23
- organizationDetail
3
+ orgName
24
4
  } = useDrawerLayout();
25
5
  const navigation = useNavigation();
26
6
  const [teamExpandable, setTeamExpendable] = useState(true);
@@ -29,79 +9,42 @@ const Teams = () => {
29
9
  const {
30
10
  shouldRefetch
31
11
  } = useContext(RefetchContext);
32
- const [state, setState] = useState({
33
- teams: [],
34
- error: null
35
- });
36
12
  const {
37
- data: orgTeams,
38
- refetch: reFetchOrgTeams
39
- } = useGetOrganizationTeamsQuery({
13
+ data: orgTeamsData,
14
+ refetch: reFetchOrgTeams,
15
+ error: teamsError
16
+ } = useTeamsQuery({
40
17
  variables: {
41
18
  orgName
42
19
  },
43
20
  fetchPolicy: "cache-and-network",
44
21
  nextFetchPolicy: "cache-first",
45
- onCompleted(data) {
46
- var _a;
47
- if ((_a = data == null ? void 0 : data.getOrganizationTeams) == null ? void 0 : _a.length) {
48
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
49
- teams: (data == null ? void 0 : data.getOrganizationTeams) || []
50
- }));
51
- }
52
- },
53
- onError(error) {
54
- const isTeamServiceError = error.message.includes("Service 'TeamService");
55
- const errorMessage = isTeamServiceError ? "Team service is temporarily unavailable. Please try again later." : error.message;
56
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
57
- error: errorMessage
58
- }));
59
- },
60
22
  skip: !orgName
61
23
  });
62
24
  const reFetchTeams = useCallback(() => {
63
25
  if (orgName) {
64
- reFetchOrgTeams({
26
+ return reFetchOrgTeams({
65
27
  orgName
66
- }).then((res) => {
67
- var _a;
68
- if ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.getOrganizationTeams) {
69
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
70
- teams: res.data.getOrganizationTeams
71
- }));
72
- }
73
- }).catch((error) => {
74
- const isTeamServiceError = error.message && error.message.includes("Service 'TeamService");
75
- const errorMessage = isTeamServiceError ? "Teams are temporarily unavailable. Please try again later." : error.message || "Failed to fetch teams";
76
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
77
- error: errorMessage
78
- }));
79
28
  });
80
29
  }
81
30
  }, [orgName, reFetchOrgTeams]);
82
- useEffect(() => {
83
- return () => {
84
- setState((prev) => __spreadProps(__spreadValues({}, prev), {
85
- teams: []
86
- }));
87
- };
88
- }, [orgName]);
89
- useEffect(() => {
31
+ useFocusEffect(useCallback(() => {
90
32
  if (shouldRefetch && orgName) {
91
33
  reFetchTeams();
92
34
  }
93
- }, [shouldRefetch, orgName, reFetchTeams]);
35
+ }, [shouldRefetch, orgName, reFetchTeams]));
94
36
  useFocusEffect(useCallback(() => {
95
37
  if (orgName) {
96
38
  reFetchTeams();
97
39
  }
98
- }, [orgName]));
40
+ }, [orgName, reFetchTeams]));
99
41
  const organizationTeams = useMemo(() => {
100
- var _a, _b;
101
- return state.teams && ((_a = state.teams) == null ? void 0 : _a.length) && take(orderBy(uniqBy((_b = [...state.teams]) == null ? void 0 : _b.filter((t) => (t == null ? void 0 : t.orgName) === orgName), ({
42
+ var _a;
43
+ const teams = (orgTeamsData == null ? void 0 : orgTeamsData.getOrganizationTeams) || [];
44
+ return teams.length ? take(orderBy(uniqBy((_a = [...teams]) == null ? void 0 : _a.filter((t) => (t == null ? void 0 : t.orgName) === orgName), ({
102
45
  _id
103
- }) => _id), [(ch) => ch == null ? void 0 : ch.title.toLowerCase()], ["asc"]), 10) || [];
104
- }, [state.teams, orgName]);
46
+ }) => _id), [(ch) => ch == null ? void 0 : ch.title.toLowerCase()], ["asc"]), 10) : [];
47
+ }, [orgTeamsData, orgName]);
105
48
  const viewTeam = useCallback((item) => {
106
49
  var _a, _b, _c;
107
50
  navigation.navigate(NavigationRoutes.ViewTeam, {
@@ -120,16 +63,17 @@ const Teams = () => {
120
63
  paddingHorizontal: 12
121
64
  } }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Octicons, { color: colors.gray[700], name: "lock", size: 18 }), /* @__PURE__ */ React__default.createElement(Text, { className: "text-gray-900 flex-1 text-base" }, item.title))), [viewTeam]);
122
65
  const ListEmptyComponent = useCallback(() => {
66
+ const errorMessage = teamsError ? teamsError.message.includes("Service 'TeamService") ? "Team service is temporarily unavailable. Please try again later." : teamsError.message : null;
123
67
  return /* @__PURE__ */ React__default.createElement(Box, { style: {
124
68
  padding: 12
125
- } }, state.error ? /* @__PURE__ */ React__default.createElement(Box, { style: {
69
+ } }, errorMessage ? /* @__PURE__ */ React__default.createElement(Box, { style: {
126
70
  padding: 8,
127
71
  backgroundColor: "#FFF4F4",
128
72
  borderRadius: 4
129
73
  } }, /* @__PURE__ */ React__default.createElement(Text, { color: "#E01E5A", style: {
130
74
  marginBottom: 8,
131
75
  fontWeight: "500"
132
- } }, state.error), /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: reFetchTeams }, /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", style: {
76
+ } }, errorMessage), /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: reFetchTeams }, /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", style: {
133
77
  alignItems: "center"
134
78
  } }, /* @__PURE__ */ React__default.createElement(Feather, { name: "refresh-cw", color: "#1264A3", size: 16 }), /* @__PURE__ */ React__default.createElement(Text, { color: "#1264A3", style: {
135
79
  fontWeight: "500"
@@ -145,10 +89,11 @@ const Teams = () => {
145
89
  color: "#616061",
146
90
  textAlign: "center"
147
91
  } }, "No teams available")));
148
- }, [state.error, reFetchTeams]);
92
+ }, [teamsError, reFetchTeams]);
149
93
  const ListFooterComponent = useCallback(() => {
150
94
  var _a;
151
- return /* @__PURE__ */ React__default.createElement(VStack, null, ((_a = state.teams) == null ? void 0 : _a.length) > 10 && /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => navigation.navigate(NavigationRoutes.Teams, {
95
+ const teamsCount = ((_a = orgTeamsData == null ? void 0 : orgTeamsData.getOrganizationTeams) == null ? void 0 : _a.length) || 0;
96
+ return /* @__PURE__ */ React__default.createElement(VStack, null, teamsCount > 10 && /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => navigation.navigate(NavigationRoutes.Teams, {
152
97
  orgName
153
98
  }), style: {
154
99
  paddingVertical: 8,
@@ -165,7 +110,7 @@ const Teams = () => {
165
110
  fontSize: 16,
166
111
  color: "#616061"
167
112
  } }, "Add Team"))));
168
- }, [state.teams, orgName, navigation]);
113
+ }, [orgTeamsData, orgName, navigation]);
169
114
  const SectionHeader = useCallback(() => {
170
115
  return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => setTeamExpendable(!teamExpandable), style: {
171
116
  paddingVertical: 6,
@@ -1 +1 @@
1
- {"version":3,"file":"Teams.js","sources":["../../../../../src/screens/Home/Components/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useEffect, useCallback, useMemo, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styles from '../../styles';\nimport { View, FlatList, Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { orderBy, uniqBy, take } from 'lodash-es';\nimport { useGetOrganizationTeamsQuery } from 'common/graphql';\nimport { useDrawerLayout } from '../../../../hooks';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext } from '../../HomeScreen';\n\nconst Teams = () => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const [teamExpandable, setTeamExpendable] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { shouldRefetch } = useContext(RefetchContext);\n\n // Local state simplified\n const [state, setState] = useState({\n teams: [],\n error: null,\n });\n\n const { data: orgTeams, refetch: reFetchOrgTeams } = useGetOrganizationTeamsQuery({\n variables: { orgName: orgName },\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n onCompleted(data) {\n if (data?.getOrganizationTeams?.length) {\n setState((prev) => ({\n ...prev,\n teams: data?.getOrganizationTeams || [],\n }));\n }\n },\n onError(error) {\n // Check specifically for team service errors\n const isTeamServiceError = error.message.includes(\"Service 'TeamService\");\n const errorMessage = isTeamServiceError\n ? 'Team 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: !orgName,\n });\n\n const reFetchTeams = useCallback(() => {\n if (orgName) {\n reFetchOrgTeams({ orgName: orgName })\n .then((res) => {\n if (res?.data?.getOrganizationTeams) {\n setState((prev) => ({\n ...prev,\n teams: res.data.getOrganizationTeams,\n }));\n }\n })\n .catch((error) => {\n // Check specifically for team service errors\n const isTeamServiceError = error.message && error.message.includes(\"Service 'TeamService\");\n const errorMessage = isTeamServiceError\n ? 'Teams are temporarily unavailable. Please try again later.'\n : error.message || 'Failed to fetch teams';\n\n setState((prev) => ({\n ...prev,\n error: errorMessage,\n }));\n });\n }\n }, [orgName, reFetchOrgTeams]);\n\n // Reset state when unmounting or changing org\n useEffect(() => {\n return () => {\n setState((prev) => ({\n ...prev,\n teams: [],\n }));\n };\n }, [orgName]);\n\n // Use RefetchContext to control when to refetch data\n useEffect(() => {\n if (shouldRefetch && orgName) {\n reFetchTeams();\n }\n }, [shouldRefetch, orgName, reFetchTeams]);\n\n // Initial fetch on focus\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n reFetchTeams();\n }\n }, [orgName]),\n );\n\n const organizationTeams = useMemo(() => {\n return (\n (state.teams &&\n state.teams?.length &&\n take(\n orderBy(\n uniqBy(\n [...state.teams]?.filter((t: any) => t?.orgName === orgName),\n ({ _id }) => _id,\n ),\n [(ch: any) => ch?.title.toLowerCase()],\n ['asc'],\n ),\n 10,\n )) ||\n []\n );\n }, [state.teams, orgName]);\n\n const viewTeam = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.ViewTeam, {\n teamId: item?.id?.toString(),\n teamName: item?.name,\n title: item?.title?.toString(),\n totalMembers: item?.teamMembers?.length,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderOrganizationTeamItem = useCallback(\n ({ item }) => (\n <TouchableOpacity\n key={item.id}\n onPress={() => viewTeam(item)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Octicons color={colors.gray[700]} name=\"lock\" size={18} />\n <Text className=\"text-gray-900 flex-1 text-base\">{item.title}</Text>\n </HStack>\n </TouchableOpacity>\n ),\n [viewTeam],\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={reFetchTeams}>\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 <Octicons name=\"organization\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No teams available</Text>\n </Box>\n )}\n </Box>\n );\n }, [state.error, reFetchTeams]);\n\n const ListFooterComponent = useCallback(() => {\n return (\n <VStack>\n {state.teams?.length > 10 && (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Teams, { orgName })}\n style={{ paddingVertical: 8, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <MaterialIcons color=\"#616061\" name=\"search\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Browse all Teams</Text>\n </HStack>\n </TouchableOpacity>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam, { orgName })}\n style={{ paddingBottom: 5, 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 Team</Text>\n </HStack>\n </TouchableOpacity>\n </VStack>\n );\n }, [state.teams, orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setTeamExpendable(!teamExpandable)}\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 Teams\n </Text>\n <FontAwesome\n name={teamExpandable ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [teamExpandable]);\n\n if (!teamExpandable) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationTeams?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'team') + '-' + item?.title}\n data={organizationTeams}\n renderItem={renderOrganizationTeamItem}\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 Teams;\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Teams.js","sources":["../../../../../src/screens/Home/Components/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useCallback, useMemo, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { View, FlatList, Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { orderBy, uniqBy, take } from 'lodash-es';\nimport { useTeamsQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext } from '../../HomeScreen';\n\nconst Teams = () => {\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const [teamExpandable, setTeamExpendable] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { shouldRefetch } = useContext(RefetchContext);\n\n const {\n data: orgTeamsData,\n refetch: reFetchOrgTeams,\n error: teamsError,\n } = useTeamsQuery({\n variables: { orgName: orgName },\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n skip: !orgName,\n });\n\n const reFetchTeams = useCallback(() => {\n if (orgName) {\n return reFetchOrgTeams({ orgName: orgName });\n }\n }, [orgName, reFetchOrgTeams]);\n\n // Refetch when context signals to do so\n useFocusEffect(\n useCallback(() => {\n if (shouldRefetch && orgName) {\n reFetchTeams();\n }\n }, [shouldRefetch, orgName, reFetchTeams]),\n );\n\n // Initial fetch on focus\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n reFetchTeams();\n }\n }, [orgName, reFetchTeams]),\n );\n\n const organizationTeams = useMemo(() => {\n const teams = orgTeamsData?.getOrganizationTeams || [];\n return teams.length\n ? take(\n orderBy(\n uniqBy(\n [...teams]?.filter((t: any) => t?.orgName === orgName),\n ({ _id }) => _id,\n ),\n [(ch: any) => ch?.title.toLowerCase()],\n ['asc'],\n ),\n 10,\n )\n : [];\n }, [orgTeamsData, orgName]);\n\n const viewTeam = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.ViewTeam, {\n teamId: item?.id?.toString(),\n teamName: item?.name,\n title: item?.title?.toString(),\n totalMembers: item?.teamMembers?.length,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderOrganizationTeamItem = useCallback(\n ({ item }) => (\n <TouchableOpacity\n key={item.id}\n onPress={() => viewTeam(item)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Octicons color={colors.gray[700]} name=\"lock\" size={18} />\n <Text className=\"text-gray-900 flex-1 text-base\">{item.title}</Text>\n </HStack>\n </TouchableOpacity>\n ),\n [viewTeam],\n );\n\n const ListEmptyComponent = useCallback(() => {\n // Format the error message if present\n const errorMessage = teamsError\n ? teamsError.message.includes(\"Service 'TeamService\")\n ? 'Team service is temporarily unavailable. Please try again later.'\n : teamsError.message\n : null;\n\n return (\n <Box style={{ padding: 12 }}>\n {errorMessage ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {errorMessage}\n </Text>\n <TouchableOpacity onPress={reFetchTeams}>\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 <Octicons name=\"organization\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No teams available</Text>\n </Box>\n )}\n </Box>\n );\n }, [teamsError, reFetchTeams]);\n\n const ListFooterComponent = useCallback(() => {\n const teamsCount = orgTeamsData?.getOrganizationTeams?.length || 0;\n\n return (\n <VStack>\n {teamsCount > 10 && (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Teams, { orgName })}\n style={{ paddingVertical: 8, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <MaterialIcons color=\"#616061\" name=\"search\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Browse all Teams</Text>\n </HStack>\n </TouchableOpacity>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam, { orgName })}\n style={{ paddingBottom: 5, 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 Team</Text>\n </HStack>\n </TouchableOpacity>\n </VStack>\n );\n }, [orgTeamsData, orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setTeamExpendable(!teamExpandable)}\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 Teams\n </Text>\n <FontAwesome\n name={teamExpandable ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [teamExpandable]);\n\n if (!teamExpandable) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationTeams?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'team') + '-' + item?.title}\n data={organizationTeams}\n renderItem={renderOrganizationTeamItem}\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 Teams;\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import {Ionicons,AntDesign,MaterialCommunityIcons,FontAwesome5}from'@expo/vector-icons';import {useNavigation,useFocusEffect}from'@react-navigation/native';import React__default,{useState,useMemo,useCallback,createContext}from'react';import {Share,TouchableHighlight,Dimensions}from'react-native';import {useSelector,shallowEqual}from'react-redux';import styles from'./styles.js';import {HStack,Text,Box,Icon,AddIcon,Center,Spinner,Divider,Fab}from'@admin-layout/gluestack-ui-mobile';import {RoomType}from'common';import {useSetDeviceTokenMutation,useGetOrganizationSharableLinkQuery}from'common/graphql';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import {useDisclose}from'../../hooks/useDisclose.js';import {useExpoNotification}from'../../hooks/useExpoNotificationProvider.js';import Teams from'./Components/Teams/Teams.js';import Channels from'./Components/Channels/Channels.js';import DirectChannels from'./Components/DirectChannels/DirectChannels.js';import TopCommonSlider from'./Components/TopCommonSlider/TopCommonSlider.js';import {InviteMembers}from'./Components/InviteMembers/index.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 {LoadingSpinnerDefault}from'../../components/LoadingSpinner/index.js';import'../../components/WorkSpaceDrawer/WorkSpaceDrawer.js';import'../../components/Channels/ChannelsByAlphabeticalAccordion.js';import'../../components/SlackSearchInput/index.js';import'expo-font';import'expo-splash-screen';import {Actionsheet as ActionSheet}from'../../components/Actionsheet.js';import {config}from'../../config/env-config.js';import colors from'tailwindcss/colors';var __defProp = Object.defineProperty;
1
+ import {Ionicons,AntDesign,MaterialCommunityIcons,FontAwesome5}from'@expo/vector-icons';import {useNavigation,useFocusEffect}from'@react-navigation/native';import React__default,{useState,useMemo,useCallback,createContext}from'react';import {Share,TouchableHighlight,Dimensions}from'react-native';import {useSelector,shallowEqual}from'react-redux';import styles from'./styles.js';import {HStack,Text,Box,Icon,AddIcon,Center,Spinner,Divider,Fab}from'@admin-layout/gluestack-ui-mobile';import {RoomType}from'common';import {useSetDeviceTokenMutation,useOrganizationSharableLinkQuery}from'../../queries/slackuiQueries.js';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import {useDisclose}from'../../hooks/useDisclose.js';import {useExpoNotification}from'../../hooks/useExpoNotificationProvider.js';import Teams from'./Components/Teams/Teams.js';import Channels from'./Components/Channels/Channels.js';import DirectChannels from'./Components/DirectChannels/DirectChannels.js';import TopCommonSlider from'./Components/TopCommonSlider/TopCommonSlider.js';import {InviteMembers}from'./Components/InviteMembers/index.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 {LoadingSpinnerDefault}from'../../components/LoadingSpinner/index.js';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 {config}from'../../config/env-config.js';import colors from'tailwindcss/colors';var __defProp = Object.defineProperty;
2
2
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
3
  var __hasOwnProp = Object.prototype.hasOwnProperty;
4
4
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -47,7 +47,7 @@ const HomeScreen = ({
47
47
  }), [shouldRefetch]);
48
48
  const {
49
49
  data: organizationSharableLink
50
- } = useGetOrganizationSharableLinkQuery({
50
+ } = useOrganizationSharableLinkQuery(orgName, {
51
51
  fetchPolicy: "cache-and-network",
52
52
  skip: !isOpen
53
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HomeScreen.js","sources":["../../../src/screens/Home/HomeScreen.tsx"],"sourcesContent":["import { Ionicons, AntDesign, FontAwesome5, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport React, { useCallback, useState, useMemo, createContext } from 'react';\nimport { TouchableHighlight, Share, Dimensions } from 'react-native';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport styles from './styles';\nimport {\n Box,\n Avatar,\n Icon,\n AddIcon,\n Text,\n Spinner,\n Center,\n Fab,\n HStack,\n Divider,\n VStack,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useSetDeviceTokenMutation, useGetOrganizationSharableLinkQuery } from 'common/graphql';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useDrawerLayout } from '../../hooks/useDrawerLayout';\nimport { useDisclose } from '../../hooks/useDisclose';\nimport { useExpoNotification } from '../../hooks/useExpoNotificationProvider';\nimport { Teams } from './Components/Teams';\nimport { Channels } from './Components/Channels/index';\nimport { DirectChannels } from './Components/DirectChannels';\nimport { TopCommonSlider } from './Components/TopCommonSlider';\nimport { InviteMembers } from './Components/InviteMembers';\nimport { NavigationRoutes, colors } from '../../constants';\nimport { LoadingSpinnerDefault, Actionsheet } from '../../components';\nimport { config } from '../../config';\nimport Colors from 'tailwindcss/colors';\n\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\n// Create a context to control refetching across child components\nexport const RefetchContext = createContext({\n shouldRefetch: false,\n setRefetchStatus: (status: boolean) => {},\n});\n\nconst HomeScreen = ({ navigation, route }) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { isOpen, onOpen, onClose } = useDisclose();\n const { setSwipeEnabled, orgName, organizationDetail } = useDrawerLayout();\n const { expoToken } = useExpoNotification();\n const [setDeviceTokenMutation] = useSetDeviceTokenMutation();\n const [shouldRefetch, setShouldRefetch] = useState(false);\n\n // Memoize the refetch context value\n const refetchContextValue = useMemo(\n () => ({\n shouldRefetch,\n setRefetchStatus: setShouldRefetch,\n }),\n [shouldRefetch],\n );\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 // Define shareLink before it's used in the memo\n const shareLink = useCallback(async () => {\n try {\n const result = await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n }, [organizationSharableLink?.getOrganizationSharableLink]);\n\n // Memoize action items to prevent unnecessary re-renders\n const actionItems = useMemo(\n () => [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.primaryBgColor,\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: async () => await shareLink(),\n },\n {\n id: 2,\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=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n Add from Contacts\n </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 <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 [isOpen, navigation, orgName, shareLink],\n );\n\n // Optimize token handling\n const handlerExpoToken = useCallback(() => {\n if (expoToken) {\n setDeviceTokenMutation({\n variables: {\n deviceToken: expoToken,\n },\n });\n }\n }, [expoToken, setDeviceTokenMutation]);\n\n useFocusEffect(\n useCallback(() => {\n setSwipeEnabled(true);\n handlerExpoToken();\n setShouldRefetch(true);\n\n // Set refetch status to false after a short delay\n const timer = setTimeout(() => {\n setShouldRefetch(false);\n }, 500);\n\n return () => {\n clearTimeout(timer);\n setSwipeEnabled(false);\n };\n }, [orgName, setSwipeEnabled, handlerExpoToken]),\n );\n\n // Memoize the AddTeammates component\n const AddTeammates = useCallback(\n () => (\n <Box style={[styles.bottomContainer, { marginBottom: 8, paddingHorizontal: 16 }]}>\n <TouchableHighlight underlayColor={Colors.gray[50]} onPress={onOpen}>\n <Box className=\"py-3 px-2\">\n <HStack className=\"w-full flex-1 items-center space-x-3\">\n <Box\n style={{\n backgroundColor: Colors.gray[100],\n borderRadius: 20,\n padding: 6,\n }}\n >\n <Icon as={AddIcon} style={{ width: 20, height: 20 }} color={Colors.gray[700]} />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableHighlight>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n header={\n <Text\n className=\"text-center font-bold text-lg\"\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 [isOpen, onOpen, onClose, actionItems],\n );\n\n if (!orgName) {\n return (\n <Center className=\"flex-1 bg-white\">\n <Spinner size=\"large\" color={colors.primaryBgColor} />\n </Center>\n );\n }\n\n return (\n <RefetchContext.Provider value={refetchContextValue}>\n <VirtualizedScrollView className=\"bg-white flex-1\">\n <Box className=\"flex-1 bg-white pb-10\">\n <TopCommonSlider />\n <Divider style={{ marginVertical: 12 }} />\n <Teams />\n <Divider style={{ marginVertical: 12 }} />\n <Channels />\n <Divider style={{ marginVertical: 12 }} />\n <DirectChannels />\n <Divider style={{ marginVertical: 12 }} />\n {/* <AddTeammates />\n <Divider style={{ marginVertical: 12 }} /> */}\n <InviteMembers />\n </Box>\n </VirtualizedScrollView>\n <Fab\n onPress={() => navigation.navigate(NavigationRoutes.SearchAddChannel, { orgName })}\n size=\"sm\"\n className=\"items-center shadow-lg\"\n style={{ backgroundColor: colors.primaryBgColor, marginBottom: 20, marginRight: 20 }}\n >\n <FontAwesome5 color=\"white\" name=\"edit\" size={18} />\n </Fab>\n </RefetchContext.Provider>\n );\n};\n\n// Memoize the entire Home component\nconst Home = React.memo((props: any) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n\n useFocusEffect(\n React.useCallback(() => {\n if (!user?.profile) navigation?.navigate(NavigationRoutes.Login);\n return () => {};\n }, []),\n );\n\n if (!orgName) return <LoadingSpinnerDefault />;\n\n return <HomeScreen {...props} />;\n});\n\nexport default Home;\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}
1
+ {"version":3,"file":"HomeScreen.js","sources":["../../../src/screens/Home/HomeScreen.tsx"],"sourcesContent":["import { Ionicons, AntDesign, FontAwesome5, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport React, { useCallback, useState, useMemo, createContext } from 'react';\nimport { TouchableHighlight, Share, Dimensions } from 'react-native';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport styles from './styles';\nimport {\n Box,\n Avatar,\n Icon,\n AddIcon,\n Text,\n Spinner,\n Center,\n Fab,\n HStack,\n Divider,\n VStack,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useSetDeviceTokenMutation, useOrganizationSharableLinkQuery } from '../../queries/slackuiQueries';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useDrawerLayout } from '../../hooks/useDrawerLayout';\nimport { useDisclose } from '../../hooks/useDisclose';\nimport { useExpoNotification } from '../../hooks/useExpoNotificationProvider';\nimport { Teams } from './Components/Teams';\nimport { Channels } from './Components/Channels/index';\nimport { DirectChannels } from './Components/DirectChannels';\nimport { TopCommonSlider } from './Components/TopCommonSlider';\nimport { InviteMembers } from './Components/InviteMembers';\nimport { NavigationRoutes, colors } from '../../constants';\nimport { LoadingSpinnerDefault, Actionsheet } from '../../components';\nimport { config } from '../../config';\nimport Colors from 'tailwindcss/colors';\n\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\n// Create a context to control refetching across child components\nexport const RefetchContext = createContext({\n shouldRefetch: false,\n setRefetchStatus: (status: boolean) => {},\n});\n\nconst HomeScreen = ({ navigation, route }) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { isOpen, onOpen, onClose } = useDisclose();\n const { setSwipeEnabled, orgName, organizationDetail } = useDrawerLayout();\n const { expoToken } = useExpoNotification();\n const [setDeviceTokenMutation] = useSetDeviceTokenMutation();\n const [shouldRefetch, setShouldRefetch] = useState(false);\n\n // Memoize the refetch context value\n const refetchContextValue = useMemo(\n () => ({\n shouldRefetch,\n setRefetchStatus: setShouldRefetch,\n }),\n [shouldRefetch],\n );\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 // Define shareLink before it's used in the memo\n const shareLink = useCallback(async () => {\n try {\n const result = await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n }, [organizationSharableLink?.getOrganizationSharableLink]);\n\n // Memoize action items to prevent unnecessary re-renders\n const actionItems = useMemo(\n () => [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.primaryBgColor,\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: async () => await shareLink(),\n },\n {\n id: 2,\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=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n Add from Contacts\n </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 <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 [isOpen, navigation, orgName, shareLink],\n );\n\n // Optimize token handling\n const handlerExpoToken = useCallback(() => {\n if (expoToken) {\n setDeviceTokenMutation({\n variables: {\n deviceToken: expoToken,\n },\n });\n }\n }, [expoToken, setDeviceTokenMutation]);\n\n useFocusEffect(\n useCallback(() => {\n setSwipeEnabled(true);\n handlerExpoToken();\n setShouldRefetch(true);\n\n // Set refetch status to false after a short delay\n const timer = setTimeout(() => {\n setShouldRefetch(false);\n }, 500);\n\n return () => {\n clearTimeout(timer);\n setSwipeEnabled(false);\n };\n }, [orgName, setSwipeEnabled, handlerExpoToken]),\n );\n\n // Memoize the AddTeammates component\n const AddTeammates = useCallback(\n () => (\n <Box style={[styles.bottomContainer, { marginBottom: 8, paddingHorizontal: 16 }]}>\n <TouchableHighlight underlayColor={Colors.gray[50]} onPress={onOpen}>\n <Box className=\"py-3 px-2\">\n <HStack className=\"w-full flex-1 items-center space-x-3\">\n <Box\n style={{\n backgroundColor: Colors.gray[100],\n borderRadius: 20,\n padding: 6,\n }}\n >\n <Icon as={AddIcon} style={{ width: 20, height: 20 }} color={Colors.gray[700]} />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableHighlight>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n header={\n <Text\n className=\"text-center font-bold text-lg\"\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 [isOpen, onOpen, onClose, actionItems],\n );\n\n if (!orgName) {\n return (\n <Center className=\"flex-1 bg-white\">\n <Spinner size=\"large\" color={colors.primaryBgColor} />\n </Center>\n );\n }\n\n return (\n <RefetchContext.Provider value={refetchContextValue}>\n <VirtualizedScrollView className=\"bg-white flex-1\">\n <Box className=\"flex-1 bg-white pb-10\">\n <TopCommonSlider />\n <Divider style={{ marginVertical: 12 }} />\n <Teams />\n <Divider style={{ marginVertical: 12 }} />\n <Channels />\n <Divider style={{ marginVertical: 12 }} />\n <DirectChannels />\n <Divider style={{ marginVertical: 12 }} />\n {/* <AddTeammates />\n <Divider style={{ marginVertical: 12 }} /> */}\n <InviteMembers />\n </Box>\n </VirtualizedScrollView>\n <Fab\n onPress={() => navigation.navigate(NavigationRoutes.SearchAddChannel, { orgName })}\n size=\"sm\"\n className=\"items-center shadow-lg\"\n style={{ backgroundColor: colors.primaryBgColor, marginBottom: 20, marginRight: 20 }}\n >\n <FontAwesome5 color=\"white\" name=\"edit\" size={18} />\n </Fab>\n </RefetchContext.Provider>\n );\n};\n\n// Memoize the entire Home component\nconst Home = React.memo((props: any) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n\n useFocusEffect(\n React.useCallback(() => {\n if (!user?.profile) navigation?.navigate(NavigationRoutes.Login);\n return () => {};\n }, []),\n );\n\n if (!orgName) return <LoadingSpinnerDefault />;\n\n return <HomeScreen {...props} />;\n});\n\nexport default Home;\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React__default from'react';import {SafeAreaView}from'react-native';import {userSelector,isUserAuthenticated}from'@adminide-stack/user-auth0-client';import {RoomType}from'common';import {useViewChannelDetailQuery}from'common/graphql';import {MaterialIcons,Octicons,AntDesign,Feather}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import {Box,VStack,HStack,Button,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge,Text,Image,Divider,ButtonText,ScrollView,FlatList,Switch,SectionList}from'@admin-layout/gluestack-ui-mobile';import {StatusBar}from'expo-status-bar';import {useSelector}from'react-redux';import {startCase}from'lodash-es';import Colors from'../../constants/Colors.js';import'../../constants/device.js';import'../../constants/globalStyles.js';import images from'../../constants/preloadImages.js';import'../../constants/Layout.js';import {NavigationRoutes}from'../../constants/routes.js';import colors from'tailwindcss/colors';const InboxChannelDetailScreen = ({
1
+ import React__default from'react';import {SafeAreaView}from'react-native';import {userSelector,isUserAuthenticated}from'@adminide-stack/user-auth0-client';import {RoomType}from'common';import {useChannelDetailQuery,useAddMemberToChannelMutation,useSaveMembersToChannelMutation,useAddDirectChannelMutation}from'../../queries/slackuiQueries.js';import {MaterialIcons,Octicons,AntDesign,Feather}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import {Box,VStack,HStack,Button,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge,Text,Image,Divider,ButtonText,ScrollView,FlatList,Switch,SectionList}from'@admin-layout/gluestack-ui-mobile';import {StatusBar}from'expo-status-bar';import {useSelector}from'react-redux';import {startCase}from'lodash-es';import Colors from'../../constants/Colors.js';import'../../constants/device.js';import'../../constants/globalStyles.js';import images from'../../constants/preloadImages.js';import'../../constants/Layout.js';import {NavigationRoutes}from'../../constants/routes.js';import colors from'tailwindcss/colors';const InboxChannelDetailScreen = ({
2
2
  channelId,
3
3
  navigation
4
4
  }) => {
@@ -15,15 +15,27 @@ import React__default from'react';import {SafeAreaView}from'react-native';import
15
15
  data: channelData,
16
16
  loading: channelLoading,
17
17
  refetch: reFetchChannel
18
- } = useViewChannelDetailQuery({
19
- variables: {
20
- id: channelId == null ? void 0 : channelId.toString()
21
- }
22
- });
18
+ } = useChannelDetailQuery(channelId == null ? void 0 : channelId.toString());
19
+ const [addMemberToChannel, {
20
+ loading: addMemberToChannelLoading,
21
+ error: addMemberToChannelError
22
+ }] = useAddMemberToChannelMutation();
23
+ const [saveMembersToChannel, {
24
+ loading: saveMembersToChannelLoading,
25
+ error: saveMembersToChannelError
26
+ }] = useSaveMembersToChannelMutation();
27
+ const [addDirectChannel, {
28
+ loading: addDirectChannelLoading,
29
+ error: addDirectChannelError
30
+ }] = useAddDirectChannelMutation();
31
+ const [leaveChannelLoading, setLeaveChannelLoading] = React__default.useState(false);
32
+ const [isMuted, setIsMuted] = React__default.useState(false);
33
+ const handleMuteToggle = React__default.useCallback((value) => {
34
+ setIsMuted(value);
35
+ console.log(`Channel ${channelId} mute status changed to: ${value}`);
36
+ }, [channelId]);
23
37
  React__default.useEffect(() => {
24
- reFetchChannel({
25
- id: channelId == null ? void 0 : channelId.toString()
26
- });
38
+ reFetchChannel();
27
39
  return () => {
28
40
  };
29
41
  }, []);
@@ -124,7 +136,19 @@ import React__default from'react';import {SafeAreaView}from'react-native';import
124
136
  height: 10
125
137
  }, className: "bg-green-800" })) : channelType == RoomType.Channel ? /* @__PURE__ */ React__default.createElement(Text, { className: "pl-2" }, /* @__PURE__ */ React__default.createElement(Octicons, { color: "black", name: "hash", size: 20 })) : channelType === RoomType.Private ? /* @__PURE__ */ React__default.createElement(Text, { className: "pl-2" }, /* @__PURE__ */ React__default.createElement(Octicons, { color: "black", name: "lock", size: 20 })) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null)), /* @__PURE__ */ React__default.createElement(Text, { className: "px-2 text-black flex-wrap text-[18px] font-bold", numberOfLines: 1 }, item == null ? void 0 : item.title)), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(Text, { className: "text-black text-[18]] text-justify", color: Colors.black }, /* @__PURE__ */ React__default.createElement(Text, { className: "font-bold text-[15]", color: colors.black }, "Description:", " "), (_b = item == null ? void 0 : item.data) == null ? void 0 : _b.description)), /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "flex-1 justify-between items-center" }, /* @__PURE__ */ React__default.createElement(Button, { variant: "outline", className: "flex-1 items-center rounded-lg py-4 h-full active:bg-gray-200 hover:bg-gray-200 border-gray-200", onPress: () => navigation.navigate(NavigationRoutes.AddPeople, {
126
138
  channelId,
127
- isAddMemeber: true
139
+ isAddMemeber: true,
140
+ onMemberAdded: (memberId) => {
141
+ if (memberId) {
142
+ addMemberToChannel({
143
+ variables: {
144
+ channelId: channelId == null ? void 0 : channelId.toString(),
145
+ memberId
146
+ }
147
+ }).then(() => {
148
+ reFetchChannel();
149
+ });
150
+ }
151
+ }
128
152
  }) }, /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-1 justify-center items-center", space: "sm" }, /* @__PURE__ */ React__default.createElement(AntDesign, { color: "black", name: "adduser", size: 20 }), /* @__PURE__ */ React__default.createElement(Text, { className: "text-[12] font-bold", color: colors.black }, "Add"))), /* @__PURE__ */ React__default.createElement(Button, { variant: "outline", className: "flex-1 items-center rounded-lg py-4 h-full active:bg-gray-200 hover:bg-gray-200 border-gray-200" }, /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-1 justify-center items-center", space: "sm" }, /* @__PURE__ */ React__default.createElement(Feather, { color: "$black", name: "headphones", size: 20 }), /* @__PURE__ */ React__default.createElement(Text, { className: "text-[12] font-bold", color: colors.black }, "Huddle"))), /* @__PURE__ */ React__default.createElement(Button, { variant: "outline", className: "flex-1 items-center rounded-lg py-4 h-full active:bg-gray-200 hover:bg-gray-200 border-gray-200" }, /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-1 justify-center items-center", space: "sm" }, /* @__PURE__ */ React__default.createElement(AntDesign, { color: "black", name: "search1", size: 20 }), /* @__PURE__ */ React__default.createElement(Text, { className: "text-[12] font-bold", color: colors.black }, "Search")))), /* @__PURE__ */ React__default.createElement(Divider, null), /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-1", space: "sm" }, /* @__PURE__ */ React__default.createElement(HStack, { className: "flex-1 justify-between items-center" }, /* @__PURE__ */ React__default.createElement(Text, { className: "text-[15] font-semibold", color: colors.black }, "Members(", (_d = (_c = item == null ? void 0 : item.data) == null ? void 0 : _c.members) == null ? void 0 : _d.length, ")"), /* @__PURE__ */ React__default.createElement(Button, { variant: "link" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: "font-semibold", style: {
129
153
  fontSize: 15
130
154
  } }, "See All"))), /* @__PURE__ */ React__default.createElement(ScrollView, { horizontal: true, style: {
@@ -134,7 +158,9 @@ import React__default from'react';import {SafeAreaView}from'react-native';import
134
158
  }) => /* @__PURE__ */ React__default.createElement(SectionItemChannelMembers, { member }) }))), /* @__PURE__ */ React__default.createElement(Divider, null), /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-1", space: "lg" }, /* @__PURE__ */ React__default.createElement(Text, { className: "text-[15] font-semibold", color: colors.black }, "Settings"), /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "flex-1 items-center justify-between" }, /* @__PURE__ */ React__default.createElement(AntDesign, { color: "black", name: "bells", size: 20 }), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-[0.5]", space: "sm" }, /* @__PURE__ */ React__default.createElement(Text, { color: colors.black, className: "font-semibold text-[16]" }, "Mute Channel"), /* @__PURE__ */ React__default.createElement(Text, { className: "flex-wrap text-[18] text-justify", color: colors.black }, "Muted channels will always appears read and you won't receive any notification from t.."))), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(
135
159
  Switch,
136
160
  {
137
- size: "sm"
161
+ size: "sm",
162
+ value: isMuted,
163
+ onValueChange: handleMuteToggle
138
164
  }
139
165
  ))), /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "flex-1 items-center justify-between" }, /* @__PURE__ */ React__default.createElement(Avatar, { key: "account-image-key", size: "sm", className: "bg-transparent rounded-lg" }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, null, "NC"), /* @__PURE__ */ React__default.createElement(AvatarImage, { alt: "image", style: {
140
166
  width: 30,
@@ -145,10 +171,16 @@ import React__default from'react';import {SafeAreaView}from'react-native';import
145
171
  }, source: images.pushNotification }), /* @__PURE__ */ React__default.createElement(AvatarBadge, { style: {
146
172
  width: 10,
147
173
  height: 10
148
- }, className: "bg-green-800" })), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-[0.5]", space: "sm" }, /* @__PURE__ */ React__default.createElement(Text, { color: colors.black, className: "font-semibold text-[16]" }, "Notification"), /* @__PURE__ */ React__default.createElement(Text, { className: "flex-wrap text-[14] text-justify", color: colors.black }, "Just @mentions"))))), /* @__PURE__ */ React__default.createElement(Button, { variant: "solid", className: "rounded-lg bg-rose-600" }, /* @__PURE__ */ React__default.createElement(MaterialIcons, { name: "logout", color: "white", size: 20 }), /* @__PURE__ */ React__default.createElement(ButtonText, { className: "pl-1.5", style: {
174
+ }, className: "bg-green-800" })), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-[0.5]", space: "sm" }, /* @__PURE__ */ React__default.createElement(Text, { color: colors.black, className: "font-semibold text-[16]" }, "Notification"), /* @__PURE__ */ React__default.createElement(Text, { className: "flex-wrap text-[14] text-justify", color: colors.black }, "Just @mentions"))))), /* @__PURE__ */ React__default.createElement(Button, { variant: "solid", className: "rounded-lg bg-rose-600", onPress: () => {
175
+ setLeaveChannelLoading(true);
176
+ setTimeout(() => {
177
+ setLeaveChannelLoading(false);
178
+ navigation == null ? void 0 : navigation.goBack();
179
+ }, 1e3);
180
+ }, isDisabled: leaveChannelLoading }, /* @__PURE__ */ React__default.createElement(MaterialIcons, { name: "logout", color: "white", size: 20 }), /* @__PURE__ */ React__default.createElement(ButtonText, { className: "pl-1.5", style: {
149
181
  fontSize: 14,
150
182
  fontWeight: "bold"
151
- } }, "Leave channel")));
183
+ } }, leaveChannelLoading ? "Leaving..." : "Leave channel")));
152
184
  });
153
185
  return /* @__PURE__ */ React__default.createElement(SafeAreaView, { style: {
154
186
  flex: 1