@messenger-box/slack-ui-mobile 10.0.3-alpha.46 → 10.0.3-alpha.48

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 (56) hide show
  1. package/lib/components/AppRootContextProviderComponent.js +1 -1
  2. package/lib/components/AppRootContextProviderComponent.js.map +1 -1
  3. package/lib/components/NavigationHeader/NavigationHeader.js +28 -2
  4. package/lib/components/NavigationHeader/NavigationHeader.js.map +1 -1
  5. package/lib/components/VirtualizedScrollView/VirtualizedScrollView.js +1 -1
  6. package/lib/compute.js +1 -0
  7. package/lib/compute.js.map +1 -1
  8. package/lib/hooks/useOptimizedChannelsQueries.js +106 -0
  9. package/lib/hooks/useOptimizedChannelsQueries.js.map +1 -0
  10. package/lib/index.js +1 -1
  11. package/lib/index.js.map +1 -1
  12. package/lib/navigation/SearchTabNavigation.js +1 -1
  13. package/lib/navigation/TeamTabNavigation.js +1 -1
  14. package/lib/routes.json +1 -0
  15. package/lib/screens/Account/AccountScreen.js +1 -1
  16. package/lib/screens/Account/AccountScreen.js.map +1 -1
  17. package/lib/screens/Channels/Add/AddName.js +27 -2
  18. package/lib/screens/Channels/Add/AddName.js.map +1 -1
  19. package/lib/screens/Channels/Add/AddVisibility.js +1 -1
  20. package/lib/screens/Channels/Add/AddVisibility.js.map +1 -1
  21. package/lib/screens/Channels/Channels.js +27 -2
  22. package/lib/screens/Channels/Channels.js.map +1 -1
  23. package/lib/screens/Home/Components/Channels/Channels.js +16 -53
  24. package/lib/screens/Home/Components/Channels/Channels.js.map +1 -1
  25. package/lib/screens/Home/Components/DirectChannels/DirectChannels.js +58 -61
  26. package/lib/screens/Home/Components/DirectChannels/DirectChannels.js.map +1 -1
  27. package/lib/screens/Home/Components/Teams/Teams.js +1 -1
  28. package/lib/screens/Home/Components/Teams/Teams.js.map +1 -1
  29. package/lib/screens/Home/Components/TopCommonSlider/TopCommonSlider.js +1 -1
  30. package/lib/screens/Home/Components/TopCommonSlider/TopCommonSlider.js.map +1 -1
  31. package/lib/screens/Home/HomeScreen.js +46 -6
  32. package/lib/screens/Home/HomeScreen.js.map +1 -1
  33. package/lib/screens/Inbox/InboxChannelDetail.js +1 -1
  34. package/lib/screens/Inbox/InboxChannelDetail.js.map +1 -1
  35. package/lib/screens/Inbox/InboxScreen.js +1 -1
  36. package/lib/screens/Peoples/AddByEmail.js +18 -2
  37. package/lib/screens/Peoples/AddByEmail.js.map +1 -1
  38. package/lib/screens/Peoples/AddFromContacts.js +29 -4
  39. package/lib/screens/Peoples/AddFromContacts.js.map +1 -1
  40. package/lib/screens/Peoples/AddPeople.js +1 -1
  41. package/lib/screens/Peoples/AddPeople.js.map +1 -1
  42. package/lib/screens/Search/JumpTo.js +1 -1
  43. package/lib/screens/Search/JumpTo.js.map +1 -1
  44. package/lib/screens/Search/SearchAddChannel.js +21 -2
  45. package/lib/screens/Search/SearchAddChannel.js.map +1 -1
  46. package/lib/screens/Search/SearchChannelPeople.js +29 -4
  47. package/lib/screens/Search/SearchChannelPeople.js.map +1 -1
  48. package/lib/screens/Search/SearchScreen.js +1 -1
  49. package/lib/screens/Teams/AddTeam.js +1 -1
  50. package/lib/screens/Teams/AddTeam.js.map +1 -1
  51. package/lib/screens/Teams/Components/Channels/Channels.js +1 -1
  52. package/lib/screens/Teams/Components/Channels/Channels.js.map +1 -1
  53. package/lib/screens/Teams/Team.js +1 -1
  54. package/lib/screens/Teams/Teams.js +1 -1
  55. package/lib/screens/Teams/Teams.js.map +1 -1
  56. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,VStack,ButtonIcon,CheckIcon,Heading,HStack,Text,Input,InputField}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity,SafeAreaView,Dimensions}from'react-native';import {Ionicons,AntDesign}from'@expo/vector-icons';import {useIsFocused}from'@react-navigation/native';import {useSendOrganizationInvitationMutation}from'../../queries/slackuiQueries.js';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector}from'react-redux';import colors from'tailwindcss/colors';Dimensions.get("window").width;
1
+ import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,VStack,ButtonIcon,CheckIcon,Heading,HStack,Text,Input,InputField}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity,SafeAreaView,Platform,Dimensions}from'react-native';import {NavigationRoutes}from'../../constants/routes.js';import {Ionicons,AntDesign}from'@expo/vector-icons';import {useIsFocused}from'@react-navigation/native';import {useSendOrganizationInvitationMutation}from'../../queries/slackuiQueries.js';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import'../../hooks/useOptimizedChannelsQueries.js';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector}from'react-redux';import colors from'tailwindcss/colors';Dimensions.get("window").width;
2
2
  Dimensions.get("window").height;
3
3
  Dimensions.get("screen").height;
4
4
  const AddPeopleByEmail = ({
@@ -63,6 +63,22 @@ const AddPeopleByEmail = ({
63
63
  flex: 1
64
64
  } }, /* @__PURE__ */ React__default.createElement(VStack, { space: "lg", className: "py-5 flex-1 justify-between" }, /* @__PURE__ */ React__default.createElement(Box, { className: "text-center justify-center rounded-full" }, /* @__PURE__ */ React__default.createElement(Button, { className: "rounded-full bg-green-100", size: "lg" }, /* @__PURE__ */ React__default.createElement(ButtonIcon, { color: "#14532d", as: CheckIcon }))), /* @__PURE__ */ React__default.createElement(Heading, { className: "text-center" }, "Invitation sent"), /* @__PURE__ */ React__default.createElement(HStack, { className: "flex-1 px-4 pr-10", space: "sm" }, /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(AntDesign, { color: "black", name: "adduser", size: 30 })), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: colors.black, className: "font-bold" }, email), /* @__PURE__ */ React__default.createElement(Text, null, "Invited as a member of ", orgName, ".They'll be able to receive and reply to messages by email untill they join."))), /* @__PURE__ */ React__default.createElement(Box, { className: "px-5" }, /* @__PURE__ */ React__default.createElement(Button, { onPress: () => {
65
65
  setEmail("");
66
- navigation.goBack();
66
+ if (Platform.OS === "macos") {
67
+ navigation.navigate("MainStack", {
68
+ screen: NavigationRoutes.Home,
69
+ params: {
70
+ orgName
71
+ }
72
+ });
73
+ } else if (navigation.canGoBack()) {
74
+ navigation.goBack();
75
+ } else {
76
+ navigation.navigate("MainStack", {
77
+ screen: NavigationRoutes.Home,
78
+ params: {
79
+ orgName
80
+ }
81
+ });
82
+ }
67
83
  }, className: "bg-green-900 rounded-lg active:bg-green-600 hover:bg-green-600" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: "font-bold text-[15]" }, "Done"))))) : /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined", className: " rounded-lg", size: "xl" }, /* @__PURE__ */ React__default.createElement(InputField, { type: "text", size: "xl", autoCapitalize: "none", autoCorrect: false, placeholderTextColor: "#404040", value: email, placeholder: "name@example.com", onChange: (event) => setEmail(event.nativeEvent.text), textContentType: "emailAddress", keyboardType: "email-address", className: "px-3 text-[14] transform-none" })));
68
84
  };export{AddPeopleByEmail as default};//# sourceMappingURL=AddByEmail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddByEmail.js","sources":["../../../src/screens/Peoples/AddByEmail.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n FormControl,\n Button,\n ButtonText,\n ButtonIcon,\n Icon,\n Divider,\n FlatList,\n HStack,\n Avatar,\n Image,\n Checkbox,\n ChevronLeftIcon,\n Heading,\n CheckIcon,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { StyleSheet, TouchableOpacity, Linking, Platform, Dimensions, SafeAreaView } from 'react-native';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign, Ionicons } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused } from '@react-navigation/native';\nimport { useSendOrganizationInvitationMutation } from '../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../hooks';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector } from 'react-redux';\nimport colors from 'tailwindcss/colors';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\nconst screenHeight = Dimensions.get('screen').height;\n\nconst AddPeopleByEmail = ({ navigation, route }: any) => {\n const isFocused = useIsFocused();\n const { orgName } = useDrawerLayout();\n const user = useSelector(userSelector);\n const [contacts, setContacts] = useState([]);\n const [email, setEmail] = useState('');\n // const emailReg = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w\\w+)+$/;\n const emailReg = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n const [emailSent, setEmailSent] = useState(false);\n const [sendOrganizationInvitationMutation, { data, loading, error }] = useSendOrganizationInvitationMutation({\n onCompleted: (res) => {\n console.log('org invitation res', JSON.stringify(res));\n if (res?.sendOrganizationInvitation) setEmailSent(true);\n },\n onError: (e) => {\n console.log('e', JSON.stringify(e));\n setEmailSent(false);\n },\n });\n\n useEffect(() => {\n return () => {\n setEmailSent(false);\n setEmail('');\n };\n }, []);\n\n useEffect(() => {\n if (isFocused) {\n }\n\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n title: emailSent ? '' : 'Add by Email',\n headerLeft: (props: any) => (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => navigation?.goBack()}>\n <Ionicons color=\"black\" name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <>\n {emailSent ? (\n <></>\n ) : (\n <Button\n className=\"mr-2\"\n disabled={email && emailReg.test(email) === true ? false : true}\n variant={'link'}\n onPress={() =>\n sendOrganizationInvitationMutation({\n variables: {\n request: {\n emails: [email],\n orgName: orgName,\n invitedBy: user?.profile?.name,\n sentInvitee: true,\n },\n },\n })\n }\n >\n <ButtonText\n className={`${email && emailReg.test(email) === true ? 'text-black' : 'text-gray-400'}`}\n >\n SEND\n </ButtonText>\n </Button>\n )}\n </>\n ),\n });\n }, [isFocused, navigation, email, orgName, user, emailSent]);\n\n return (\n <Box className=\"flex-1 bg-white\">\n {emailSent ? (\n <SafeAreaView style={{ flex: 1 }}>\n <VStack space={'lg'} className=\"py-5 flex-1 justify-between\">\n <Box className=\"text-center justify-center rounded-full\">\n {/* <CheckIcon size={10} mt=\"0.5\" color=\"emerald.500\" /> */}\n <Button className=\"rounded-full bg-green-100\" size={'lg'}>\n {/* <AntDesign name=\"check\" size={25} /> */}\n <ButtonIcon color={'#14532d'} as={CheckIcon} />\n </Button>\n </Box>\n <Heading className=\"text-center\">Invitation sent</Heading>\n <HStack className=\"flex-1 px-4 pr-10\" space={'sm'}>\n <Box>\n <AntDesign color=\"black\" name=\"adduser\" size={30} />\n </Box>\n <Box>\n <Text color={colors.black} className=\"font-bold\">\n {email}\n </Text>\n <Text>\n Invited as a member of {orgName}.They'll be able to receive and reply to messages by\n email untill they join.\n </Text>\n </Box>\n </HStack>\n <Box className=\"px-5\">\n <Button\n onPress={() => {\n setEmail('');\n navigation.goBack();\n }}\n className=\"bg-green-900 rounded-lg active:bg-green-600 hover:bg-green-600\"\n >\n <ButtonText className=\"font-bold text-[15]\">Done</ButtonText>\n </Button>\n </Box>\n </VStack>\n </SafeAreaView>\n ) : (\n <Input variant=\"underlined\" className=\" rounded-lg\" size={'xl'}>\n <InputField\n type=\"text\"\n size=\"xl\"\n autoCapitalize={'none'}\n autoCorrect={false}\n placeholderTextColor={'#404040'}\n value={email}\n placeholder=\"name@example.com\"\n onChange={(event) => setEmail(event.nativeEvent.text)}\n textContentType=\"emailAddress\"\n keyboardType=\"email-address\"\n className=\"px-3 text-[14] transform-none\"\n />\n </Input>\n // <Input\n // textTransform={'none'}\n // borderWidth={1}\n // borderColor={'coolGray.300'}\n // _focus={{ borderColor: 'coolGray.300' }}\n // py={4}\n // px={3}\n // _input={{ placeholderTextColor: '#404040', fontSize: 14 }}\n // variant=\"underlined\"\n // placeholder=\"name@example.com\"\n // value={email}\n // onChangeText={(v) => setEmail(v)}\n // textContentType=\"emailAddress\"\n // keyboardType=\"email-address\"\n // autoCapitalize=\"none\"\n // autoCorrect={false}\n // />\n )}\n {/* <View flex={1}>\n <VirtualizedScrollView>\n <VStack space=\"5\" pt={2}></VStack>\n </VirtualizedScrollView>\n </View> */}\n </Box>\n );\n};\n\nexport default AddPeopleByEmail;\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"AddByEmail.js","sources":["../../../src/screens/Peoples/AddByEmail.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n FormControl,\n Button,\n ButtonText,\n ButtonIcon,\n Icon,\n Divider,\n FlatList,\n HStack,\n Avatar,\n Image,\n Checkbox,\n ChevronLeftIcon,\n Heading,\n CheckIcon,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { StyleSheet, TouchableOpacity, Linking, Platform, Dimensions, SafeAreaView } from 'react-native';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign, Ionicons } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused } from '@react-navigation/native';\nimport { useSendOrganizationInvitationMutation } from '../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../hooks';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector } from 'react-redux';\nimport colors from 'tailwindcss/colors';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\nconst screenHeight = Dimensions.get('screen').height;\n\nconst AddPeopleByEmail = ({ navigation, route }: any) => {\n const isFocused = useIsFocused();\n const { orgName } = useDrawerLayout();\n const user = useSelector(userSelector);\n const [contacts, setContacts] = useState([]);\n const [email, setEmail] = useState('');\n // const emailReg = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w\\w+)+$/;\n const emailReg = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n const [emailSent, setEmailSent] = useState(false);\n const [sendOrganizationInvitationMutation, { data, loading, error }] = useSendOrganizationInvitationMutation({\n onCompleted: (res) => {\n console.log('org invitation res', JSON.stringify(res));\n if (res?.sendOrganizationInvitation) setEmailSent(true);\n },\n onError: (e) => {\n console.log('e', JSON.stringify(e));\n setEmailSent(false);\n },\n });\n\n useEffect(() => {\n return () => {\n setEmailSent(false);\n setEmail('');\n };\n }, []);\n\n useEffect(() => {\n if (isFocused) {\n }\n\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n title: emailSent ? '' : 'Add by Email',\n headerLeft: (props: any) => (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => navigation?.goBack()}>\n <Ionicons color=\"black\" name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <>\n {emailSent ? (\n <></>\n ) : (\n <Button\n className=\"mr-2\"\n disabled={email && emailReg.test(email) === true ? false : true}\n variant={'link'}\n onPress={() =>\n sendOrganizationInvitationMutation({\n variables: {\n request: {\n emails: [email],\n orgName: orgName,\n invitedBy: user?.profile?.name,\n sentInvitee: true,\n },\n },\n })\n }\n >\n <ButtonText\n className={`${email && emailReg.test(email) === true ? 'text-black' : 'text-gray-400'}`}\n >\n SEND\n </ButtonText>\n </Button>\n )}\n </>\n ),\n });\n }, [isFocused, navigation, email, orgName, user, emailSent]);\n\n return (\n <Box className=\"flex-1 bg-white\">\n {emailSent ? (\n <SafeAreaView style={{ flex: 1 }}>\n <VStack space={'lg'} className=\"py-5 flex-1 justify-between\">\n <Box className=\"text-center justify-center rounded-full\">\n {/* <CheckIcon size={10} mt=\"0.5\" color=\"emerald.500\" /> */}\n <Button className=\"rounded-full bg-green-100\" size={'lg'}>\n {/* <AntDesign name=\"check\" size={25} /> */}\n <ButtonIcon color={'#14532d'} as={CheckIcon} />\n </Button>\n </Box>\n <Heading className=\"text-center\">Invitation sent</Heading>\n <HStack className=\"flex-1 px-4 pr-10\" space={'sm'}>\n <Box>\n <AntDesign color=\"black\" name=\"adduser\" size={30} />\n </Box>\n <Box>\n <Text color={colors.black} className=\"font-bold\">\n {email}\n </Text>\n <Text>\n Invited as a member of {orgName}.They'll be able to receive and reply to messages by\n email untill they join.\n </Text>\n </Box>\n </HStack>\n <Box className=\"px-5\">\n <Button\n onPress={() => {\n setEmail('');\n // navigation.goBack();\n if (Platform.OS === 'macos') {\n navigation.navigate('MainStack', {\n screen: NavigationRoutes.Home,\n params: { orgName },\n });\n } else if (navigation.canGoBack()) {\n navigation.goBack();\n } else {\n navigation.navigate('MainStack', {\n screen: NavigationRoutes.Home,\n params: { orgName },\n });\n }\n }}\n className=\"bg-green-900 rounded-lg active:bg-green-600 hover:bg-green-600\"\n >\n <ButtonText className=\"font-bold text-[15]\">Done</ButtonText>\n </Button>\n </Box>\n </VStack>\n </SafeAreaView>\n ) : (\n <Input variant=\"underlined\" className=\" rounded-lg\" size={'xl'}>\n <InputField\n type=\"text\"\n size=\"xl\"\n autoCapitalize={'none'}\n autoCorrect={false}\n placeholderTextColor={'#404040'}\n value={email}\n placeholder=\"name@example.com\"\n onChange={(event) => setEmail(event.nativeEvent.text)}\n textContentType=\"emailAddress\"\n keyboardType=\"email-address\"\n className=\"px-3 text-[14] transform-none\"\n />\n </Input>\n // <Input\n // textTransform={'none'}\n // borderWidth={1}\n // borderColor={'coolGray.300'}\n // _focus={{ borderColor: 'coolGray.300' }}\n // py={4}\n // px={3}\n // _input={{ placeholderTextColor: '#404040', fontSize: 14 }}\n // variant=\"underlined\"\n // placeholder=\"name@example.com\"\n // value={email}\n // onChangeText={(v) => setEmail(v)}\n // textContentType=\"emailAddress\"\n // keyboardType=\"email-address\"\n // autoCapitalize=\"none\"\n // autoCorrect={false}\n // />\n )}\n {/* <View flex={1}>\n <VirtualizedScrollView>\n <VStack space=\"5\" pt={2}></VStack>\n </VirtualizedScrollView>\n </View> */}\n </Box>\n );\n};\n\nexport default AddPeopleByEmail;\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,Input,InputSlot,InputField,Spinner,Text,FlatList,HStack,Avatar,AvatarImage,AvatarFallbackText,Checkbox,CheckboxIndicator,CheckboxIcon,CheckIcon}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity,Platform,Linking,StyleSheet}from'react-native';import Colors from'../../constants/Colors.js';import {useOrganizationSharableLinkQuery,useSendOrganizationInvitationMutation}from'../../queries/slackuiQueries.js';import {Ionicons,Feather}from'@expo/vector-icons';import {useIsFocused}from'@react-navigation/native';import*as Contacts from'expo-contacts';import {config}from'../../config/env-config.js';import {SafeAreaView}from'react-native-safe-area-context';import {useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';const AddFromContacts = ({
1
+ import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,Input,InputSlot,InputField,Spinner,Text,FlatList,HStack,Avatar,AvatarImage,AvatarFallbackText,Checkbox,CheckboxIndicator,CheckboxIcon,CheckIcon}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity,Platform,Linking,StyleSheet}from'react-native';import Colors from'../../constants/Colors.js';import {useOrganizationSharableLinkQuery,useSendOrganizationInvitationMutation}from'../../queries/slackuiQueries.js';import {Ionicons,Feather}from'@expo/vector-icons';import {useIsFocused}from'@react-navigation/native';import*as Contacts from'expo-contacts';import {config}from'../../config/env-config.js';import {SafeAreaView}from'react-native-safe-area-context';import {useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';import'../../constants/device.js';import'../../constants/globalStyles.js';import'../../constants/Layout.js';import {NavigationRoutes}from'../../constants/routes.js';const AddFromContacts = ({
2
2
  navigation,
3
3
  route
4
4
  }) => {
@@ -75,9 +75,34 @@ import React__default,{useState,useEffect}from'react';import {Button,ButtonText,
75
75
  headerTitleStyle: {
76
76
  fontWeight: "600"
77
77
  },
78
- headerLeft: (props) => /* @__PURE__ */ React__default.createElement(TouchableOpacity, { style: {
79
- paddingHorizontal: 10
80
- }, onPress: () => navigation.goBack() }, /* @__PURE__ */ React__default.createElement(Ionicons, { color: Colors.slackBlack, name: "chevron-back", size: 20 })),
78
+ headerLeft: (props) => /* @__PURE__ */ React__default.createElement(
79
+ TouchableOpacity,
80
+ {
81
+ style: {
82
+ paddingHorizontal: 10
83
+ },
84
+ onPress: () => {
85
+ if (Platform.OS === "macos") {
86
+ navigation.navigate("MainStack", {
87
+ screen: NavigationRoutes.Home,
88
+ params: {
89
+ orgName
90
+ }
91
+ });
92
+ } else if (navigation.canGoBack()) {
93
+ navigation.goBack();
94
+ } else {
95
+ navigation.navigate("MainStack", {
96
+ screen: NavigationRoutes.Home,
97
+ params: {
98
+ orgName
99
+ }
100
+ });
101
+ }
102
+ }
103
+ },
104
+ /* @__PURE__ */ React__default.createElement(Ionicons, { color: Colors.slackBlack, name: "chevron-back", size: 20 })
105
+ ),
81
106
  headerRight: (props) => /* @__PURE__ */ React__default.createElement(Button, { className: "mr-2", onPress: () => sendInvitation(), disabled: selectedContacts.length === 0, variant: "link" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: `${selectedContacts.length > 0 ? "text-black font-bold" : "text-gray-500"}` }, "Send"))
82
107
  });
83
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AddFromContacts.js","sources":["../../../src/screens/Peoples/AddFromContacts.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n Button,\n ButtonText,\n CheckIcon,\n FlatList,\n HStack,\n Avatar,\n AvatarImage,\n AvatarFallbackText,\n Image,\n Checkbox,\n CheckboxIndicator,\n CheckboxIcon,\n Heading,\n Spinner,\n InputSlot,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { StyleSheet, TouchableOpacity, Linking, Platform } from 'react-native';\nimport Colors from '../../constants/Colors';\nimport { useOrganizationSharableLinkQuery, useSendOrganizationInvitationMutation } from '../../queries/slackuiQueries';\nimport { AntDesign, Ionicons, Feather } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused } from '@react-navigation/native';\nimport * as Contacts from 'expo-contacts';\nimport { config } from '../../config';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport { useSelector } from 'react-redux';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\n\nconst AddFromContacts = ({ navigation, route }: any) => {\n const isFocused = useIsFocused();\n const [contacts, setContacts] = useState<any[]>([]);\n const [filteredContacts, setFilteredContacts] = useState<any[]>([]);\n const [selectedContacts, setSelectedContacts] = useState<any>([]);\n const [searchQuery, setSearchQuery] = useState('');\n const [loading, setLoading] = useState(true);\n const orgName = route?.params?.orgName || '';\n const { data: organizationSharableLink } = useOrganizationSharableLinkQuery(orgName);\n const [sendOrganizationInvitation] = useSendOrganizationInvitationMutation();\n const user = useSelector(userSelector);\n\n useEffect(() => {\n if (searchQuery.trim() === '') {\n setFilteredContacts(contacts);\n } else {\n const filtered = contacts.filter((contact) => {\n const fullName = `${contact.firstName || ''} ${contact.lastName || ''}`.toLowerCase();\n const phoneNumber = contact.phoneNumbers?.[0]?.number?.toLowerCase() || '';\n const query = searchQuery.toLowerCase();\n return fullName.includes(query) || phoneNumber.includes(query);\n });\n setFilteredContacts(filtered);\n }\n }, [searchQuery, contacts]);\n\n useEffect(() => {\n (async () => {\n try {\n setLoading(true);\n const { status } = await Contacts.requestPermissionsAsync();\n if (status === 'granted') {\n const { data } = await Contacts.getContactsAsync({\n fields: [\n Contacts.Fields.FirstName,\n Contacts.Fields.LastName,\n Contacts.Fields.PhoneNumbers,\n Contacts.Fields.Image,\n Contacts.Fields.ImageAvailable,\n ],\n });\n\n if (data.length > 0) {\n // Sort contacts alphabetically by name\n const sortedContacts = data.sort((a, b) => {\n const nameA = `${a.firstName || ''} ${a.lastName || ''}`.trim().toLowerCase();\n const nameB = `${b.firstName || ''} ${b.lastName || ''}`.trim().toLowerCase();\n return nameA.localeCompare(nameB);\n });\n\n // Filter out contacts without phone numbers\n const validContacts = sortedContacts.filter(\n (contact) => contact.phoneNumbers && contact.phoneNumbers.length > 0,\n );\n\n // Log information about contact images\n console.log(`Total contacts with phone numbers: ${validContacts.length}`);\n const contactsWithImages = validContacts.filter(\n (contact) => contact.imageAvailable && contact.image,\n );\n console.log(`Contacts with images: ${contactsWithImages.length}`);\n if (contactsWithImages.length > 0) {\n console.log('Sample image data:', contactsWithImages[0].image);\n }\n\n setContacts(validContacts);\n setFilteredContacts(validContacts);\n }\n }\n } catch (error) {\n console.error('Error fetching contacts:', error);\n } finally {\n setLoading(false);\n }\n })();\n }, []);\n\n useEffect(() => {\n if (isFocused) {\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n title: 'Add from Contacts',\n headerTitleStyle: {\n fontWeight: '600',\n },\n headerLeft: (props: any) => (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => navigation.goBack()}>\n <Ionicons color={Colors.slackBlack} name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => sendInvitation()}\n disabled={selectedContacts.length === 0}\n variant={'link'}\n >\n <ButtonText\n className={`${selectedContacts.length > 0 ? 'text-black font-bold' : 'text-gray-500'}`}\n >\n Send\n </ButtonText>\n </Button>\n ),\n });\n }\n }, [isFocused, navigation, selectedContacts]);\n\n const toggleContact = (item: any) => {\n if (!item.phoneNumbers || item.phoneNumbers.length === 0) return;\n\n const contact = {\n id: item.id,\n name: `${item.firstName || ''} ${item.lastName || ''}`.trim(),\n mobile: item.phoneNumbers[0],\n };\n\n setSelectedContacts((prev) => {\n const isSelected = prev.some((c: any) => c.id === contact.id);\n if (isSelected) {\n return prev.filter((c: any) => c.id !== contact.id);\n } else {\n return [...prev, contact];\n }\n });\n };\n\n const getInitials = (firstName?: string, lastName?: string) => {\n const first = firstName ? firstName.charAt(0).toUpperCase() : '';\n const last = lastName ? lastName.charAt(0).toUpperCase() : '';\n return (first + last).substring(0, 2);\n };\n\n const renderContactList = ({ item }: any) => {\n const isSelected = selectedContacts.some((c: any) => c.id === item.id);\n const hasPhoneNumber = item.phoneNumbers && item.phoneNumbers.length > 0;\n const initials = getInitials(item.firstName, item.lastName);\n\n if (!hasPhoneNumber) return null;\n\n return (\n <TouchableOpacity\n key={item.id}\n onPress={() => toggleContact(item)}\n style={styles.contactItem}\n disabled={!hasPhoneNumber}\n activeOpacity={0.7}\n >\n <HStack space=\"md\" className=\"justify-between items-center w-full\">\n <HStack space=\"md\" className=\"items-center space-x-3\">\n {item.imageAvailable && item.image && item.image.uri ? (\n <Avatar size=\"md\" className=\"bg-gray-400\">\n <AvatarImage\n source={{ uri: item.image.uri }}\n alt={`${item.firstName || ''} ${item.lastName || ''}`.trim()}\n onError={(e) => console.log('Avatar image failed to load', e.nativeEvent.error)}\n style={styles.avatarImage}\n />\n <AvatarFallbackText>{initials}</AvatarFallbackText>\n </Avatar>\n ) : (\n <Avatar size=\"md\" className=\"bg-blue-500\">\n <AvatarFallbackText style={styles.avatarText}>{initials}</AvatarFallbackText>\n </Avatar>\n )}\n\n <Box>\n <Text className=\"text-gray-800 font-semibold text-base\">\n {item.firstName || ''} {item.lastName || ''}\n </Text>\n <Text className=\"text-gray-500 text-sm\">\n {item.phoneNumbers?.[0]?.number || 'No number'}\n </Text>\n </Box>\n </HStack>\n\n <Checkbox\n value={item.id}\n isChecked={isSelected}\n accessibilityLabel={`Select ${item.firstName}`}\n aria-label={`Select ${item.firstName}`}\n >\n <CheckboxIndicator className={isSelected ? 'bg-blue-500 border-blue-500' : ''}>\n <CheckboxIcon as={CheckIcon} />\n </CheckboxIndicator>\n </Checkbox>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n const sendInvitation = () => {\n if (selectedContacts.length === 0) return;\n\n // Get phone numbers to send SMS invites\n const mobileNumbers = selectedContacts.map((i: any) => i.mobile.number);\n\n // Send organization invitation through the API\n sendOrganizationInvitation({\n variables: {\n request: {\n orgName: orgName,\n emails: mobileNumbers.map((num) => num.replace(/\\s/g, '')), // Use emails field for phone numbers\n invitedBy: user?.profile?.name || '',\n sentInvitee: true,\n },\n },\n onCompleted: (data) => {\n console.log('Organization invitation sent successfully:', data);\n // After sending invitations through API, send SMS with link\n sendSMSInvitations();\n },\n onError: (error) => {\n console.error('Error sending invitations:', error);\n // Still attempt to send SMS if API fails\n sendSMSInvitations();\n },\n });\n };\n\n const sendSMSInvitations = () => {\n const mobileNumbers = selectedContacts.map((i: any) => i.mobile.number);\n let numbers = '';\n mobileNumbers.forEach((phoneNumber: string) => {\n numbers += `${phoneNumber.replace(/\\s/g, '')},`;\n });\n numbers = numbers.slice(0, -1);\n\n const message = `Join me on ${\n config.APP_NAME\n } - it's a faster, simpler way to work. Sign up here from any device: ${\n organizationSharableLink?.getOrganizationSharableLink ?? ''\n }`;\n\n const url =\n Platform.OS === 'android'\n ? `sms:${numbers}?body=${encodeURIComponent(message)}`\n : `sms:/open?addresses=${numbers}&body=${encodeURIComponent(message)}`;\n Linking.openURL(url);\n };\n\n return (\n <SafeAreaView style={styles.container}>\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2 bg-white\">\n <Input size=\"md\" className=\"bg-gray-100 rounded-lg\">\n <InputSlot>\n <Feather name=\"search\" size={16} color=\"#9ca3af\" style={{ marginLeft: 8 }} />\n </InputSlot>\n <InputField\n placeholder=\"Search contacts\"\n placeholderTextColor=\"#9ca3af\"\n onChange={(event) => setSearchQuery(event.nativeEvent.text)}\n value={searchQuery}\n autoCapitalize=\"none\"\n autoCorrect={false}\n className=\"text-black\"\n />\n {searchQuery ? (\n <InputSlot>\n <TouchableOpacity onPress={() => setSearchQuery('')} style={{ marginRight: 8 }}>\n <Ionicons name=\"close-circle\" size={16} color=\"#9ca3af\" />\n </TouchableOpacity>\n </InputSlot>\n ) : null}\n </Input>\n </Box>\n\n {loading ? (\n <Box className=\"flex-1 justify-center items-center\">\n <Spinner size=\"large\" color={Colors.blue} />\n <Text className=\"mt-4 text-gray-500\">Loading contacts...</Text>\n </Box>\n ) : (\n <Box className=\"flex-1\">\n {selectedContacts.length > 0 && (\n <Box className=\"px-4 py-2 bg-gray-50 border-b border-gray-200\">\n <Text className=\"text-sm text-gray-500\">\n {selectedContacts.length} {selectedContacts.length === 1 ? 'contact' : 'contacts'}{' '}\n selected\n </Text>\n </Box>\n )}\n\n <FlatList\n data={filteredContacts}\n renderItem={renderContactList}\n keyExtractor={(item) => item.id}\n contentContainerStyle={styles.listContainer}\n ListEmptyComponent={() => (\n <Box className=\"flex-1 justify-center items-center py-8\">\n <Feather name=\"users\" size={48} color=\"#d1d5db\" />\n <Text className=\"text-center text-gray-500 mt-4\">\n {searchQuery ? 'No matching contacts found' : 'No contacts found'}\n </Text>\n </Box>\n )}\n />\n </Box>\n )}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: 'white',\n },\n listContainer: {\n flexGrow: 1,\n },\n contactItem: {\n paddingHorizontal: 16,\n paddingVertical: 12,\n borderBottomWidth: 1,\n borderBottomColor: '#f3f4f6',\n },\n avatarText: {\n color: 'white',\n fontWeight: '600',\n },\n avatarImage: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default AddFromContacts;\n"],"names":["_a","React"],"mappings":"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"}
1
+ {"version":3,"file":"AddFromContacts.js","sources":["../../../src/screens/Peoples/AddFromContacts.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n Button,\n ButtonText,\n CheckIcon,\n FlatList,\n HStack,\n Avatar,\n AvatarImage,\n AvatarFallbackText,\n Image,\n Checkbox,\n CheckboxIndicator,\n CheckboxIcon,\n Heading,\n Spinner,\n InputSlot,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { StyleSheet, TouchableOpacity, Linking, Platform } from 'react-native';\nimport Colors from '../../constants/Colors';\nimport { useOrganizationSharableLinkQuery, useSendOrganizationInvitationMutation } from '../../queries/slackuiQueries';\nimport { AntDesign, Ionicons, Feather } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused } from '@react-navigation/native';\nimport * as Contacts from 'expo-contacts';\nimport { config } from '../../config';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport { useSelector } from 'react-redux';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { NavigationRoutes } from '../../constants';\n\nconst AddFromContacts = ({ navigation, route }: any) => {\n const isFocused = useIsFocused();\n const [contacts, setContacts] = useState<any[]>([]);\n const [filteredContacts, setFilteredContacts] = useState<any[]>([]);\n const [selectedContacts, setSelectedContacts] = useState<any>([]);\n const [searchQuery, setSearchQuery] = useState('');\n const [loading, setLoading] = useState(true);\n const orgName = route?.params?.orgName || '';\n const { data: organizationSharableLink } = useOrganizationSharableLinkQuery(orgName);\n const [sendOrganizationInvitation] = useSendOrganizationInvitationMutation();\n const user = useSelector(userSelector);\n\n useEffect(() => {\n if (searchQuery.trim() === '') {\n setFilteredContacts(contacts);\n } else {\n const filtered = contacts.filter((contact) => {\n const fullName = `${contact.firstName || ''} ${contact.lastName || ''}`.toLowerCase();\n const phoneNumber = contact.phoneNumbers?.[0]?.number?.toLowerCase() || '';\n const query = searchQuery.toLowerCase();\n return fullName.includes(query) || phoneNumber.includes(query);\n });\n setFilteredContacts(filtered);\n }\n }, [searchQuery, contacts]);\n\n useEffect(() => {\n (async () => {\n try {\n setLoading(true);\n const { status } = await Contacts.requestPermissionsAsync();\n if (status === 'granted') {\n const { data } = await Contacts.getContactsAsync({\n fields: [\n Contacts.Fields.FirstName,\n Contacts.Fields.LastName,\n Contacts.Fields.PhoneNumbers,\n Contacts.Fields.Image,\n Contacts.Fields.ImageAvailable,\n ],\n });\n\n if (data.length > 0) {\n // Sort contacts alphabetically by name\n const sortedContacts = data.sort((a, b) => {\n const nameA = `${a.firstName || ''} ${a.lastName || ''}`.trim().toLowerCase();\n const nameB = `${b.firstName || ''} ${b.lastName || ''}`.trim().toLowerCase();\n return nameA.localeCompare(nameB);\n });\n\n // Filter out contacts without phone numbers\n const validContacts = sortedContacts.filter(\n (contact) => contact.phoneNumbers && contact.phoneNumbers.length > 0,\n );\n\n // Log information about contact images\n console.log(`Total contacts with phone numbers: ${validContacts.length}`);\n const contactsWithImages = validContacts.filter(\n (contact) => contact.imageAvailable && contact.image,\n );\n console.log(`Contacts with images: ${contactsWithImages.length}`);\n if (contactsWithImages.length > 0) {\n console.log('Sample image data:', contactsWithImages[0].image);\n }\n\n setContacts(validContacts);\n setFilteredContacts(validContacts);\n }\n }\n } catch (error) {\n console.error('Error fetching contacts:', error);\n } finally {\n setLoading(false);\n }\n })();\n }, []);\n\n useEffect(() => {\n if (isFocused) {\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n title: 'Add from Contacts',\n headerTitleStyle: {\n fontWeight: '600',\n },\n headerLeft: (props: any) => (\n <TouchableOpacity\n style={{ paddingHorizontal: 10 }}\n //onPress={() => navigation.goBack()}\n onPress={() => {\n if (Platform.OS === 'macos') {\n navigation.navigate('MainStack', {\n screen: NavigationRoutes.Home,\n params: { orgName },\n });\n } else if (navigation.canGoBack()) {\n navigation.goBack();\n } else {\n navigation.navigate('MainStack', {\n screen: NavigationRoutes.Home,\n params: { orgName },\n });\n }\n }}\n >\n <Ionicons color={Colors.slackBlack} name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => sendInvitation()}\n disabled={selectedContacts.length === 0}\n variant={'link'}\n >\n <ButtonText\n className={`${selectedContacts.length > 0 ? 'text-black font-bold' : 'text-gray-500'}`}\n >\n Send\n </ButtonText>\n </Button>\n ),\n });\n }\n }, [isFocused, navigation, selectedContacts]);\n\n const toggleContact = (item: any) => {\n if (!item.phoneNumbers || item.phoneNumbers.length === 0) return;\n\n const contact = {\n id: item.id,\n name: `${item.firstName || ''} ${item.lastName || ''}`.trim(),\n mobile: item.phoneNumbers[0],\n };\n\n setSelectedContacts((prev) => {\n const isSelected = prev.some((c: any) => c.id === contact.id);\n if (isSelected) {\n return prev.filter((c: any) => c.id !== contact.id);\n } else {\n return [...prev, contact];\n }\n });\n };\n\n const getInitials = (firstName?: string, lastName?: string) => {\n const first = firstName ? firstName.charAt(0).toUpperCase() : '';\n const last = lastName ? lastName.charAt(0).toUpperCase() : '';\n return (first + last).substring(0, 2);\n };\n\n const renderContactList = ({ item }: any) => {\n const isSelected = selectedContacts.some((c: any) => c.id === item.id);\n const hasPhoneNumber = item.phoneNumbers && item.phoneNumbers.length > 0;\n const initials = getInitials(item.firstName, item.lastName);\n\n if (!hasPhoneNumber) return null;\n\n return (\n <TouchableOpacity\n key={item.id}\n onPress={() => toggleContact(item)}\n style={styles.contactItem}\n disabled={!hasPhoneNumber}\n activeOpacity={0.7}\n >\n <HStack space=\"md\" className=\"justify-between items-center w-full\">\n <HStack space=\"md\" className=\"items-center space-x-3\">\n {item.imageAvailable && item.image && item.image.uri ? (\n <Avatar size=\"md\" className=\"bg-gray-400\">\n <AvatarImage\n source={{ uri: item.image.uri }}\n alt={`${item.firstName || ''} ${item.lastName || ''}`.trim()}\n onError={(e) => console.log('Avatar image failed to load', e.nativeEvent.error)}\n style={styles.avatarImage}\n />\n <AvatarFallbackText>{initials}</AvatarFallbackText>\n </Avatar>\n ) : (\n <Avatar size=\"md\" className=\"bg-blue-500\">\n <AvatarFallbackText style={styles.avatarText}>{initials}</AvatarFallbackText>\n </Avatar>\n )}\n\n <Box>\n <Text className=\"text-gray-800 font-semibold text-base\">\n {item.firstName || ''} {item.lastName || ''}\n </Text>\n <Text className=\"text-gray-500 text-sm\">\n {item.phoneNumbers?.[0]?.number || 'No number'}\n </Text>\n </Box>\n </HStack>\n\n <Checkbox\n value={item.id}\n isChecked={isSelected}\n accessibilityLabel={`Select ${item.firstName}`}\n aria-label={`Select ${item.firstName}`}\n >\n <CheckboxIndicator className={isSelected ? 'bg-blue-500 border-blue-500' : ''}>\n <CheckboxIcon as={CheckIcon} />\n </CheckboxIndicator>\n </Checkbox>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n const sendInvitation = () => {\n if (selectedContacts.length === 0) return;\n\n // Get phone numbers to send SMS invites\n const mobileNumbers = selectedContacts.map((i: any) => i.mobile.number);\n\n // Send organization invitation through the API\n sendOrganizationInvitation({\n variables: {\n request: {\n orgName: orgName,\n emails: mobileNumbers.map((num) => num.replace(/\\s/g, '')), // Use emails field for phone numbers\n invitedBy: user?.profile?.name || '',\n sentInvitee: true,\n },\n },\n onCompleted: (data) => {\n console.log('Organization invitation sent successfully:', data);\n // After sending invitations through API, send SMS with link\n sendSMSInvitations();\n },\n onError: (error) => {\n console.error('Error sending invitations:', error);\n // Still attempt to send SMS if API fails\n sendSMSInvitations();\n },\n });\n };\n\n const sendSMSInvitations = () => {\n const mobileNumbers = selectedContacts.map((i: any) => i.mobile.number);\n let numbers = '';\n mobileNumbers.forEach((phoneNumber: string) => {\n numbers += `${phoneNumber.replace(/\\s/g, '')},`;\n });\n numbers = numbers.slice(0, -1);\n\n const message = `Join me on ${\n config.APP_NAME\n } - it's a faster, simpler way to work. Sign up here from any device: ${\n organizationSharableLink?.getOrganizationSharableLink ?? ''\n }`;\n\n const url =\n Platform.OS === 'android'\n ? `sms:${numbers}?body=${encodeURIComponent(message)}`\n : `sms:/open?addresses=${numbers}&body=${encodeURIComponent(message)}`;\n Linking.openURL(url);\n };\n\n return (\n <SafeAreaView style={styles.container}>\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2 bg-white\">\n <Input size=\"md\" className=\"bg-gray-100 rounded-lg\">\n <InputSlot>\n <Feather name=\"search\" size={16} color=\"#9ca3af\" style={{ marginLeft: 8 }} />\n </InputSlot>\n <InputField\n placeholder=\"Search contacts\"\n placeholderTextColor=\"#9ca3af\"\n onChange={(event) => setSearchQuery(event.nativeEvent.text)}\n value={searchQuery}\n autoCapitalize=\"none\"\n autoCorrect={false}\n className=\"text-black\"\n />\n {searchQuery ? (\n <InputSlot>\n <TouchableOpacity onPress={() => setSearchQuery('')} style={{ marginRight: 8 }}>\n <Ionicons name=\"close-circle\" size={16} color=\"#9ca3af\" />\n </TouchableOpacity>\n </InputSlot>\n ) : null}\n </Input>\n </Box>\n\n {loading ? (\n <Box className=\"flex-1 justify-center items-center\">\n <Spinner size=\"large\" color={Colors.blue} />\n <Text className=\"mt-4 text-gray-500\">Loading contacts...</Text>\n </Box>\n ) : (\n <Box className=\"flex-1\">\n {selectedContacts.length > 0 && (\n <Box className=\"px-4 py-2 bg-gray-50 border-b border-gray-200\">\n <Text className=\"text-sm text-gray-500\">\n {selectedContacts.length} {selectedContacts.length === 1 ? 'contact' : 'contacts'}{' '}\n selected\n </Text>\n </Box>\n )}\n\n <FlatList\n data={filteredContacts}\n renderItem={renderContactList}\n keyExtractor={(item) => item.id}\n contentContainerStyle={styles.listContainer}\n ListEmptyComponent={() => (\n <Box className=\"flex-1 justify-center items-center py-8\">\n <Feather name=\"users\" size={48} color=\"#d1d5db\" />\n <Text className=\"text-center text-gray-500 mt-4\">\n {searchQuery ? 'No matching contacts found' : 'No contacts found'}\n </Text>\n </Box>\n )}\n />\n </Box>\n )}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: 'white',\n },\n listContainer: {\n flexGrow: 1,\n },\n contactItem: {\n paddingHorizontal: 16,\n paddingVertical: 12,\n borderBottomWidth: 1,\n borderBottomColor: '#f3f4f6',\n },\n avatarText: {\n color: 'white',\n fontWeight: '600',\n },\n avatarImage: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default AddFromContacts;\n"],"names":["_a","React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,Input,InputField,VStack,FlatList,Text,Spinner,HStack,Avatar,AvatarFallbackText,AvatarImage,Checkbox,CheckboxIndicator,CheckboxIcon,CheckIcon}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity}from'react-native';import {useOrganizationMembersQuery,useChannelDetailQuery,useChannelsQuery,useSaveMembersToChannelMutation,useAddMemberToChannelMutation,useAddDirectChannelMutation}from'../../queries/slackuiQueries.js';import {NavigationRoutes}from'../../constants/routes.js';import {AntDesign,Ionicons}from'@expo/vector-icons';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useIsFocused,useFocusEffect}from'@react-navigation/native';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector}from'react-redux';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import {uniqBy}from'lodash-es';const orgMemersDataFetchLimit = 10;
1
+ import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,Input,InputField,VStack,FlatList,Text,Spinner,HStack,Avatar,AvatarFallbackText,AvatarImage,Checkbox,CheckboxIndicator,CheckboxIcon,CheckIcon}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity}from'react-native';import {useOrganizationMembersQuery,useChannelDetailQuery,useChannelsQuery,useSaveMembersToChannelMutation,useAddMemberToChannelMutation,useAddDirectChannelMutation}from'../../queries/slackuiQueries.js';import {NavigationRoutes}from'../../constants/routes.js';import {AntDesign,Ionicons}from'@expo/vector-icons';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useIsFocused,useFocusEffect}from'@react-navigation/native';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector}from'react-redux';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import'../../hooks/useOptimizedChannelsQueries.js';import {uniqBy}from'lodash-es';const orgMemersDataFetchLimit = 10;
2
2
  const AddPeople = ({
3
3
  navigation,
4
4
  route
@@ -1 +1 @@
1
- {"version":3,"file":"AddPeople.js","sources":["../../../src/screens/Peoples/AddPeople.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport {\n Input,\n InputField,\n InputSlot,\n View,\n Text,\n VStack,\n Box,\n FormControl,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n FlatList,\n HStack,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n Image,\n Checkbox,\n CheckboxIndicator,\n CheckboxIcon,\n CheckIcon,\n CheckboxLabel,\n ChevronLeftIcon,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { TouchableOpacity } from 'react-native';\nimport {\n useChannelsQuery,\n useChannelsLazyQuery,\n useOrganizationMembersQuery,\n useUserOrganizationsQuery,\n useChannelDetailQuery,\n useChannelDetailLazyQuery,\n useAddChannelMutation,\n useAddDirectChannelMutation,\n useAddMemberToChannelMutation,\n useSaveMembersToChannelMutation,\n} from '../../queries/slackuiQueries';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign, Entypo, Ionicons } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector } from 'react-redux';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\nimport colors from 'tailwindcss/colors';\n\nconst orgMemersDataFetchLimit = 10;\n\nconst AddPeople = ({ navigation, route }: any) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const { channelId, isCreate, isAddMemeber, addMember: routeAddMember } = route?.params;\n const isFocused = useIsFocused();\n const userState = useSelector(userSelector);\n const [organizationMembers, setOrganizationMembers] = useState<any>([]);\n const [totalMembers, setTotalMembers] = useState<any>(0);\n const [initialOrgMembers, setInitialOrgMembers] = useState<any>([]);\n const [orgMembers, setOrgMembers] = useState<any>([]);\n const [dirChannelMembers, setDirChannelMembers] = useState<any>([]);\n const [selectedMembers, setSelectedMembers] = useState<any>([]);\n const [dataSource, setDataSource] = useState([]);\n const [offset, setOffset] = useState(0);\n const [isListEnd, setIsListEnd] = useState(false);\n\n const {\n data: orgMembersData,\n loading: orgMemebersLoading,\n error: orgMembersError,\n refetch: refetchOrgMembers,\n } = useOrganizationMembersQuery(orgName, {\n variables: {\n offset: offset,\n limit: orgMemersDataFetchLimit,\n },\n });\n\n const { data: channelDetail, refetch: refetchChannelDetail } = useChannelDetailQuery(channelId);\n\n const {\n data: userChannelsData,\n loading,\n error,\n refetch: refetchUserChannels,\n } = useChannelsQuery({\n variables: {\n criteria: {\n orgName: orgName,\n type: 'DIRECT',\n },\n },\n });\n\n const [saveMembersToChannel, { loading: saveMembersLoading }] = useSaveMembersToChannelMutation({\n onCompleted: (data: any) => {\n // console.log('data add',data)\n\n const dirChannelIds =\n dirChannelMembers\n ?.filter((v: any, i: any, a: any) => a.findIndex((v2: any) => v2.id === v.id) === i)\n ?.map((u: any) => u?.id) ?? [];\n const receiver = selectedMembers?.filter((item: any) => !dirChannelIds?.includes(item));\n if (receiver?.length > 0) {\n addDirectChannelMutation({\n variables: {\n receiver: receiver,\n displayName: 'DIRECT CHANNEL',\n },\n });\n } else {\n goToChannel();\n }\n // if(data?.createDirectChannel) navigation.navigate(NavigationRoutes.Home)\n // navigation.navigate('MainStack.MainDrawer.Home')\n },\n onError: (error: any) => {\n console.log('error add', error);\n },\n });\n\n const [addMemberToChannel] = useAddMemberToChannelMutation({\n onCompleted: (data: any) => {\n console.log('data add', data);\n // if(data?.createDirectChannel) navigation.navigate(NavigationRoutes.Home)\n // navigation.navigate('MainStack.MainDrawer.Home')\n },\n onError: (error: any) => {\n console.log('error add', error);\n },\n });\n\n const [addDirectChannelMutation, { loading: addDirectChannaleLoading }] = useAddDirectChannelMutation({\n onCompleted: (data: any) => {\n goToChannel();\n },\n });\n\n const goToChannel = React.useCallback(() => {\n if (channelId && channelDetail?.viewChannelDetail && isCreate) {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: channelId?.toString(),\n title: channelDetail?.viewChannelDetail?.title?.toString(),\n totalMembers: channelDetail?.viewChannelDetail?.members?.length,\n goToHome: true,\n hideTabBar: true,\n });\n }\n if (isAddMemeber) {\n navigation?.goBack(null);\n }\n }, [channelId, channelDetail?.viewChannelDetail, isCreate, isAddMemeber]);\n\n useFocusEffect(\n React.useCallback(() => {\n if (orgName) {\n refetchOrgMembers({\n offset: offset,\n limit: orgMemersDataFetchLimit,\n });\n refetchUserChannels({\n criteria: {\n orgName: orgName,\n },\n });\n }\n\n if (channelId) refetchChannelDetail();\n\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerLeft: (props: any) => (\n <>\n {isCreate ? (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => goToChannel()}>\n <AntDesign color=\"black\" name=\"close\" size={20} />\n </TouchableOpacity>\n ) : (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => navigation?.goBack()}>\n <Ionicons color=\"black\" name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n )}\n </>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => addMemeberToChannel()}\n variant={'link'}\n disabled={selectedMembers?.length > 0 ? false : true}\n >\n <ButtonText\n className={`${selectedMembers?.length > 0 ? 'text-black' : 'text-gray-400'} text-[15px]`}\n >\n {selectedMembers?.length ? 'ADD' : 'ADD'}\n </ButtonText>\n </Button>\n ),\n });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n // setOffset(0);\n //setOrganizationMembers([]);\n };\n }, [isCreate, orgName, channelId, channelDetail, selectedMembers]),\n );\n\n useEffect(() => {\n return () => {\n setOffset(0);\n setOrganizationMembers([]);\n };\n }, []);\n\n useEffect(() => {\n if (orgMembersData?.getOrganizationMembers?.data && channelDetail?.viewChannelDetail) {\n const allOrgMembersWithoutCurrent =\n orgMembersData?.getOrganizationMembers?.data?.filter((mu: any) => mu?.user?.id != userState?.id) ?? [];\n const channelMembers =\n channelDetail?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != userState?.id) ?? [];\n\n const filteredOrgMembers = allOrgMembersWithoutCurrent.filter(\n (x: any) => !channelMembers.filter((y: any) => y?.user?.id === x?.user?.id).length,\n );\n\n setOrganizationMembers((oldOrgMembers: any) =>\n uniqBy([...oldOrgMembers, ...filteredOrgMembers], ({ userId }) => userId),\n );\n // setOrganizationMembers(filteredOrgMembers);\n setInitialOrgMembers(filteredOrgMembers);\n }\n\n if (orgMembersData?.getOrganizationMembers?.totalCount)\n setTotalMembers(orgMembersData?.getOrganizationMembers?.totalCount - 1);\n }, [orgMembersData?.getOrganizationMembers, channelDetail?.viewChannelDetail]);\n\n useEffect(() => {\n if (userChannelsData?.channelsByUser) {\n const userDirectChannels = userChannelsData?.channelsByUser?.filter((i: any) => i.type == 'DIRECT') ?? [];\n const uDirectChannelMemebers: any =\n userDirectChannels?.map((c: any) => {\n return c?.members?.filter((mu: any) => mu?.user?.id != userState?.id)?.map((m: any) => m?.user);\n }) ?? null;\n const dirChannelMembers =\n uDirectChannelMemebers\n ?.flat(1)\n ?.filter((v: any, i: any, a: any) => a.findIndex((v2: any) => v2.id === v.id) === i) ?? [];\n setDirChannelMembers(dirChannelMembers);\n }\n }, [userChannelsData]);\n\n const renderChannelMemebers = ({ item }: any) => {\n const matches: any = item?.user?.username.match(/\\b(\\w)/g);\n const acronym: any = matches.join('').substring(0, 2); // JSON\n return (\n <TouchableOpacity\n key={item?.user?.id}\n style={{ marginTop: 2 }}\n onPress={() => selectMembers(item?.user?.id)}\n >\n <HStack space={'sm'} className=\"py-1 pr-2 w-full justify-between items-center\">\n <HStack className=\"items-center\">\n <Button disabled size={'sm'} className=\"bg-transparent\">\n <Avatar className=\"bg-transparent rounded-none\" size={'sm'}>\n <AvatarFallbackText className=\"text-white font-bold\">\n {acronym.toUpperCase()}\n </AvatarFallbackText>\n <AvatarImage\n alt={'image'}\n borderRadius={0}\n source={{\n uri: item?.user?.picture,\n }}\n />\n </Avatar>\n </Button>\n\n <Text className=\"text-gray-800 font-bold\">\n {item?.user?.givenName} {item?.user?.familyName}\n </Text>\n </HStack>\n\n <Checkbox\n onChange={() => selectMembers(item?.user?.id)}\n value={item?.user?.id}\n isChecked={selectedMembers && selectedMembers?.includes(item?.user?.id) ? true : false}\n accessibilityLabel={item?.user?.username ?? ''}\n aria-label={item?.user?.username ?? ''}\n aria-labelledby={item?.user?.username ?? ''}\n >\n <CheckboxIndicator>\n <CheckboxIcon as={CheckIcon} />\n </CheckboxIndicator>\n </Checkbox>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n const skip = () => {\n // if(channelId) navigation.navigate(NavigationRoutes.DialogMessages, { channelId, hideTabBar: true,addMember:true });\n // else navigation.navigate(NavigationRoutes.Home)\n navigation.navigate(NavigationRoutes.Home);\n };\n\n const selectMembers = (id: any) => {\n setSelectedMembers((pre: any) =>\n pre.indexOf(id) === -1 ? [...pre, id] : pre.filter((mId: String) => mId != id),\n );\n };\n\n const addMemeberToChannel = () => {\n if (selectedMembers?.length > 0) {\n saveMembersToChannel({\n variables: {\n membersIds: selectedMembers,\n channelId: channelId,\n },\n });\n }\n };\n\n const searchMembers = React.useCallback(\n (v: any) => {\n if (v) {\n let searchedChannel = organizationMembers.filter((o: any) => o?.user?.givenName.includes(v));\n setOrganizationMembers(searchedChannel);\n } else {\n setOrganizationMembers(initialOrgMembers);\n }\n },\n [organizationMembers],\n );\n\n const loadMoreOrgMemebers = React.useCallback(() => {\n if (totalMembers == organizationMembers?.length) setIsListEnd(true);\n\n if (totalMembers > organizationMembers?.length && !orgMemebersLoading && !isListEnd) {\n const offSet = offset + 1;\n refetchOrgMembers({\n offset: offSet,\n limit: orgMemersDataFetchLimit,\n }).finally(() => {\n console.log('finally');\n setOffset(offSet);\n });\n }\n }, [organizationMembers, totalMembers, offset]);\n\n const renderFooter = () => {\n return (\n //Footer View with Loader\n <Box>\n {orgMemebersLoading || saveMembersLoading || addDirectChannaleLoading ? (\n <Spinner color=\"black\" style={{ margin: 15 }} />\n ) : null}\n </Box>\n );\n };\n\n return (\n <Box className=\"flex-1 bg-white\">\n <Input variant=\"underlined\">\n <InputField\n autoFocus={true}\n type=\"text\"\n size=\"xl\"\n placeholderTextColor={'#404040'}\n className=\"px-3 items-center text-[14px] text-black\"\n placeholder=\"Name, @username, name@example.com\"\n onChange={({ nativeEvent: { eventCount, target, text } }) => {\n searchMembers(text);\n }}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n </Input>\n\n <Box className=\"flex-1\">\n <VirtualizedScrollView>\n <VStack space=\"md\" className=\"flex-1 pt-2\">\n <FlatList\n style={{ flex: 1, paddingHorizontal: 2 }}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n }}\n data={organizationMembers && organizationMembers.length > 0 ? organizationMembers : []}\n renderItem={renderChannelMemebers}\n ListEmptyComponent={() => {\n return (\n <TouchableOpacity style={{ marginTop: 5 }}>\n <Box className=\"bg-white py-2\">\n <VStack space=\"md\">\n <Box className=\"px-4 py-5\">\n <Text>No people found</Text>\n </Box>\n </VStack>\n </Box>\n </TouchableOpacity>\n );\n }}\n key={'add-channel-people-list'}\n ListFooterComponent={renderFooter}\n onEndReached={loadMoreOrgMemebers}\n onEndReachedThreshold={0.5}\n />\n </VStack>\n </VirtualizedScrollView>\n </Box>\n </Box>\n );\n};\n\nexport default AddPeople;\n"],"names":["error","React","_a","_b","dirChannelMembers"],"mappings":"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"}
1
+ {"version":3,"file":"AddPeople.js","sources":["../../../src/screens/Peoples/AddPeople.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport {\n Input,\n InputField,\n InputSlot,\n View,\n Text,\n VStack,\n Box,\n FormControl,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n FlatList,\n HStack,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n Image,\n Checkbox,\n CheckboxIndicator,\n CheckboxIcon,\n CheckIcon,\n CheckboxLabel,\n ChevronLeftIcon,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { TouchableOpacity } from 'react-native';\nimport {\n useChannelsQuery,\n useChannelsLazyQuery,\n useOrganizationMembersQuery,\n useUserOrganizationsQuery,\n useChannelDetailQuery,\n useChannelDetailLazyQuery,\n useAddChannelMutation,\n useAddDirectChannelMutation,\n useAddMemberToChannelMutation,\n useSaveMembersToChannelMutation,\n} from '../../queries/slackuiQueries';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign, Entypo, Ionicons } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector } from 'react-redux';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\nimport colors from 'tailwindcss/colors';\n\nconst orgMemersDataFetchLimit = 10;\n\nconst AddPeople = ({ navigation, route }: any) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const { channelId, isCreate, isAddMemeber, addMember: routeAddMember } = route?.params;\n const isFocused = useIsFocused();\n const userState = useSelector(userSelector);\n const [organizationMembers, setOrganizationMembers] = useState<any>([]);\n const [totalMembers, setTotalMembers] = useState<any>(0);\n const [initialOrgMembers, setInitialOrgMembers] = useState<any>([]);\n const [orgMembers, setOrgMembers] = useState<any>([]);\n const [dirChannelMembers, setDirChannelMembers] = useState<any>([]);\n const [selectedMembers, setSelectedMembers] = useState<any>([]);\n const [dataSource, setDataSource] = useState([]);\n const [offset, setOffset] = useState(0);\n const [isListEnd, setIsListEnd] = useState(false);\n\n const {\n data: orgMembersData,\n loading: orgMemebersLoading,\n error: orgMembersError,\n refetch: refetchOrgMembers,\n } = useOrganizationMembersQuery(orgName, {\n variables: {\n offset: offset,\n limit: orgMemersDataFetchLimit,\n },\n });\n\n const { data: channelDetail, refetch: refetchChannelDetail } = useChannelDetailQuery(channelId);\n\n const {\n data: userChannelsData,\n loading,\n error,\n refetch: refetchUserChannels,\n } = useChannelsQuery({\n variables: {\n criteria: {\n orgName: orgName,\n type: 'DIRECT',\n },\n },\n });\n\n const [saveMembersToChannel, { loading: saveMembersLoading }] = useSaveMembersToChannelMutation({\n onCompleted: (data: any) => {\n // console.log('data add',data)\n\n const dirChannelIds =\n dirChannelMembers\n ?.filter((v: any, i: any, a: any) => a.findIndex((v2: any) => v2.id === v.id) === i)\n ?.map((u: any) => u?.id) ?? [];\n const receiver = selectedMembers?.filter((item: any) => !dirChannelIds?.includes(item));\n if (receiver?.length > 0) {\n addDirectChannelMutation({\n variables: {\n receiver: receiver,\n displayName: 'DIRECT CHANNEL',\n },\n });\n } else {\n goToChannel();\n }\n // if(data?.createDirectChannel) navigation.navigate(NavigationRoutes.Home)\n // navigation.navigate('MainStack.MainDrawer.Home')\n },\n onError: (error: any) => {\n console.log('error add', error);\n },\n });\n\n const [addMemberToChannel] = useAddMemberToChannelMutation({\n onCompleted: (data: any) => {\n console.log('data add', data);\n // if(data?.createDirectChannel) navigation.navigate(NavigationRoutes.Home)\n // navigation.navigate('MainStack.MainDrawer.Home')\n },\n onError: (error: any) => {\n console.log('error add', error);\n },\n });\n\n const [addDirectChannelMutation, { loading: addDirectChannaleLoading }] = useAddDirectChannelMutation({\n onCompleted: (data: any) => {\n goToChannel();\n },\n });\n\n const goToChannel = React.useCallback(() => {\n if (channelId && channelDetail?.viewChannelDetail && isCreate) {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: channelId?.toString(),\n title: channelDetail?.viewChannelDetail?.title?.toString(),\n totalMembers: channelDetail?.viewChannelDetail?.members?.length,\n goToHome: true,\n hideTabBar: true,\n });\n }\n if (isAddMemeber) {\n navigation?.goBack(null);\n }\n }, [channelId, channelDetail?.viewChannelDetail, isCreate, isAddMemeber]);\n\n useFocusEffect(\n React.useCallback(() => {\n if (orgName) {\n refetchOrgMembers({\n offset: offset,\n limit: orgMemersDataFetchLimit,\n });\n refetchUserChannels({\n criteria: {\n orgName: orgName,\n },\n });\n }\n\n if (channelId) refetchChannelDetail();\n\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerLeft: (props: any) => (\n <>\n {isCreate ? (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => goToChannel()}>\n <AntDesign color=\"black\" name=\"close\" size={20} />\n </TouchableOpacity>\n ) : (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => navigation?.goBack()}>\n <Ionicons color=\"black\" name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n )}\n </>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => addMemeberToChannel()}\n variant={'link'}\n disabled={selectedMembers?.length > 0 ? false : true}\n >\n <ButtonText\n className={`${selectedMembers?.length > 0 ? 'text-black' : 'text-gray-400'} text-[15px]`}\n >\n {selectedMembers?.length ? 'ADD' : 'ADD'}\n </ButtonText>\n </Button>\n ),\n });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n // setOffset(0);\n //setOrganizationMembers([]);\n };\n }, [isCreate, orgName, channelId, channelDetail, selectedMembers]),\n );\n\n useEffect(() => {\n return () => {\n setOffset(0);\n setOrganizationMembers([]);\n };\n }, []);\n\n useEffect(() => {\n if (orgMembersData?.getOrganizationMembers?.data && channelDetail?.viewChannelDetail) {\n const allOrgMembersWithoutCurrent =\n orgMembersData?.getOrganizationMembers?.data?.filter((mu: any) => mu?.user?.id != userState?.id) ?? [];\n const channelMembers =\n channelDetail?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != userState?.id) ?? [];\n\n const filteredOrgMembers = allOrgMembersWithoutCurrent.filter(\n (x: any) => !channelMembers.filter((y: any) => y?.user?.id === x?.user?.id).length,\n );\n\n setOrganizationMembers((oldOrgMembers: any) =>\n uniqBy([...oldOrgMembers, ...filteredOrgMembers], ({ userId }) => userId),\n );\n // setOrganizationMembers(filteredOrgMembers);\n setInitialOrgMembers(filteredOrgMembers);\n }\n\n if (orgMembersData?.getOrganizationMembers?.totalCount)\n setTotalMembers(orgMembersData?.getOrganizationMembers?.totalCount - 1);\n }, [orgMembersData?.getOrganizationMembers, channelDetail?.viewChannelDetail]);\n\n useEffect(() => {\n if (userChannelsData?.channelsByUser) {\n const userDirectChannels = userChannelsData?.channelsByUser?.filter((i: any) => i.type == 'DIRECT') ?? [];\n const uDirectChannelMemebers: any =\n userDirectChannels?.map((c: any) => {\n return c?.members?.filter((mu: any) => mu?.user?.id != userState?.id)?.map((m: any) => m?.user);\n }) ?? null;\n const dirChannelMembers =\n uDirectChannelMemebers\n ?.flat(1)\n ?.filter((v: any, i: any, a: any) => a.findIndex((v2: any) => v2.id === v.id) === i) ?? [];\n setDirChannelMembers(dirChannelMembers);\n }\n }, [userChannelsData]);\n\n const renderChannelMemebers = ({ item }: any) => {\n const matches: any = item?.user?.username.match(/\\b(\\w)/g);\n const acronym: any = matches.join('').substring(0, 2); // JSON\n return (\n <TouchableOpacity\n key={item?.user?.id}\n style={{ marginTop: 2 }}\n onPress={() => selectMembers(item?.user?.id)}\n >\n <HStack space={'sm'} className=\"py-1 pr-2 w-full justify-between items-center\">\n <HStack className=\"items-center\">\n <Button disabled size={'sm'} className=\"bg-transparent\">\n <Avatar className=\"bg-transparent rounded-none\" size={'sm'}>\n <AvatarFallbackText className=\"text-white font-bold\">\n {acronym.toUpperCase()}\n </AvatarFallbackText>\n <AvatarImage\n alt={'image'}\n borderRadius={0}\n source={{\n uri: item?.user?.picture,\n }}\n />\n </Avatar>\n </Button>\n\n <Text className=\"text-gray-800 font-bold\">\n {item?.user?.givenName} {item?.user?.familyName}\n </Text>\n </HStack>\n\n <Checkbox\n onChange={() => selectMembers(item?.user?.id)}\n value={item?.user?.id}\n isChecked={selectedMembers && selectedMembers?.includes(item?.user?.id) ? true : false}\n accessibilityLabel={item?.user?.username ?? ''}\n aria-label={item?.user?.username ?? ''}\n aria-labelledby={item?.user?.username ?? ''}\n >\n <CheckboxIndicator>\n <CheckboxIcon as={CheckIcon} />\n </CheckboxIndicator>\n </Checkbox>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n const skip = () => {\n // if(channelId) navigation.navigate(NavigationRoutes.DialogMessages, { channelId, hideTabBar: true,addMember:true });\n // else navigation.navigate(NavigationRoutes.Home)\n navigation.navigate(NavigationRoutes.Home);\n };\n\n const selectMembers = (id: any) => {\n setSelectedMembers((pre: any) =>\n pre.indexOf(id) === -1 ? [...pre, id] : pre.filter((mId: String) => mId != id),\n );\n };\n\n const addMemeberToChannel = () => {\n if (selectedMembers?.length > 0) {\n saveMembersToChannel({\n variables: {\n membersIds: selectedMembers,\n channelId: channelId,\n },\n });\n }\n };\n\n const searchMembers = React.useCallback(\n (v: any) => {\n if (v) {\n let searchedChannel = organizationMembers.filter((o: any) => o?.user?.givenName.includes(v));\n setOrganizationMembers(searchedChannel);\n } else {\n setOrganizationMembers(initialOrgMembers);\n }\n },\n [organizationMembers],\n );\n\n const loadMoreOrgMemebers = React.useCallback(() => {\n if (totalMembers == organizationMembers?.length) setIsListEnd(true);\n\n if (totalMembers > organizationMembers?.length && !orgMemebersLoading && !isListEnd) {\n const offSet = offset + 1;\n refetchOrgMembers({\n offset: offSet,\n limit: orgMemersDataFetchLimit,\n }).finally(() => {\n console.log('finally');\n setOffset(offSet);\n });\n }\n }, [organizationMembers, totalMembers, offset]);\n\n const renderFooter = () => {\n return (\n //Footer View with Loader\n <Box>\n {orgMemebersLoading || saveMembersLoading || addDirectChannaleLoading ? (\n <Spinner color=\"black\" style={{ margin: 15 }} />\n ) : null}\n </Box>\n );\n };\n\n return (\n <Box className=\"flex-1 bg-white\">\n <Input variant=\"underlined\">\n <InputField\n autoFocus={true}\n type=\"text\"\n size=\"xl\"\n placeholderTextColor={'#404040'}\n className=\"px-3 items-center text-[14px] text-black\"\n placeholder=\"Name, @username, name@example.com\"\n onChange={({ nativeEvent: { eventCount, target, text } }) => {\n searchMembers(text);\n }}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n </Input>\n\n <Box className=\"flex-1\">\n <VirtualizedScrollView>\n <VStack space=\"md\" className=\"flex-1 pt-2\">\n <FlatList\n style={{ flex: 1, paddingHorizontal: 2 }}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n }}\n data={organizationMembers && organizationMembers.length > 0 ? organizationMembers : []}\n renderItem={renderChannelMemebers}\n ListEmptyComponent={() => {\n return (\n <TouchableOpacity style={{ marginTop: 5 }}>\n <Box className=\"bg-white py-2\">\n <VStack space=\"md\">\n <Box className=\"px-4 py-5\">\n <Text>No people found</Text>\n </Box>\n </VStack>\n </Box>\n </TouchableOpacity>\n );\n }}\n key={'add-channel-people-list'}\n ListFooterComponent={renderFooter}\n onEndReached={loadMoreOrgMemebers}\n onEndReachedThreshold={0.5}\n />\n </VStack>\n </VirtualizedScrollView>\n </Box>\n </Box>\n );\n};\n\nexport default AddPeople;\n"],"names":["error","React","_a","_b","dirChannelMembers"],"mappings":"qmCAaA,MAAM,uBAA0B,GAAA,EAAA;AAChC,MAAM,YAAY,CAAC;AAAA,EACjB,UAAA;AAAA,EACA;AACF,CAAW,KAAA;AACT,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA;AAAA,MACE,eAAgB,EAAA;AACpB,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAW,EAAA;AAAA,MACT,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,MAAA;AACX,EAAkB,YAAa;AAC/B,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY,CAAA;AAC1C,EAAA,MAAM,CAAC,mBAAqB,EAAA,sBAAsB,CAAI,GAAA,QAAA,CAAc,EAAE,CAAA;AACtE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAc,CAAC,CAAA;AACvD,EAAA,MAAM,CAAC,iBAAmB,EAAA,oBAAoB,CAAI,GAAA,QAAA,CAAc,EAAE,CAAA;AAClE,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAI,GAAA,QAAA,CAAc,EAAE,CAAA;AACpD,EAAA,MAAM,CAAC,iBAAmB,EAAA,oBAAoB,CAAI,GAAA,QAAA,CAAc,EAAE,CAAA;AAClE,EAAA,MAAM,CAAC,eAAiB,EAAA,kBAAkB,CAAI,GAAA,QAAA,CAAc,EAAE,CAAA;AAC9D,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAI,GAAA,QAAA,CAAS,EAAE,CAAA;AAC/C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,CAAC,CAAA;AACtC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA;AAChD,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,cAAA;AAAA,IACN,OAAS,EAAA,kBAAA;AAAA,IACT,KAAO,EAAA,eAAA;AAAA,IACP,OAAS,EAAA;AAAA,GACX,GAAI,4BAA4B,OAAS,EAAA;AAAA,IACvC,SAAW,EAAA;AAAA,MACT,MAAA;AAAA,MACA,KAAO,EAAA;AAAA;AACT,GACD,CAAA;AACD,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,aAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX,GAAI,sBAAsB,SAAS,CAAA;AACnC,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,gBAAA;AAAA,IACN,OAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACP,gBAAiB,CAAA;AAAA,IACnB,SAAW,EAAA;AAAA,MACT,QAAU,EAAA;AAAA,QACR,OAAA;AAAA,QACA,IAAM,EAAA;AAAA;AACR;AACF,GACD,CAAA;AACD,EAAA,MAAM,CAAC,oBAAsB,EAAA;AAAA,IAC3B,OAAS,EAAA;AAAA,GACV,IAAI,+BAAgC,CAAA;AAAA,IACnC,WAAA,EAAa,CAAC,IAAc,KAAA;AAtEhC,MAAA,IAAA,EAAA,EAAA,EAAA;AAyEM,MAAM,MAAA,aAAA,GAAA,CAAgB,EAAmB,GAAA,CAAA,EAAA,GAAA,iBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,iBAAA,CAAA,MAAA,CAAO,CAAC,CAAA,EAAQ,GAAQ,CAAW,KAAA,CAAA,CAAE,SAAU,CAAA,CAAC,EAAY,KAAA,EAAA,CAAG,OAAO,CAAE,CAAA,EAAE,CAAM,KAAA,CAAA,CAAA,KAAnG,IAAuG,GAAA,MAAA,GAAA,EAAA,CAAA,GAAA,CAAI,CAAC,CAAW,KAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,EAA1H,CAAA,KAAA,IAAA,GAAA,EAAA,GAAiI,EAAC;AACxJ,MAAA,MAAM,WAAW,eAAiB,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAA,MAAA,CAAO,CAAC,IAAc,KAAA,EAAC,+CAAe,QAAS,CAAA,IAAA,CAAA,CAAA,CAAA;AACjF,MAAI,IAAA,CAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,UAAS,CAAG,EAAA;AACxB,QAAyB,wBAAA,CAAA;AAAA,UACvB,SAAW,EAAA;AAAA,YACT,QAAA;AAAA,YACA,WAAa,EAAA;AAAA;AACf,SACD,CAAA;AAAA,OACI,MAAA;AACL,QAAY,WAAA,EAAA;AAAA;AACd,KAGF;AAAA,IACA,OAAA,EAAS,CAACA,MAAe,KAAA;AACvB,MAAQ,OAAA,CAAA,GAAA,CAAI,aAAaA,MAAK,CAAA;AAAA;AAChC,GACD,CAAA;AACD,EAAM,MAAA,CAAC,kBAAkB,CAAA,GAAI,6BAA8B,CAAA;AAAA,IACzD,WAAA,EAAa,CAAC,IAAc,KAAA;AAC1B,MAAQ,OAAA,CAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AAAA,KAG9B;AAAA,IACA,OAAA,EAAS,CAACA,MAAe,KAAA;AACvB,MAAQ,OAAA,CAAA,GAAA,CAAI,aAAaA,MAAK,CAAA;AAAA;AAChC,GACD,CAAA;AACD,EAAA,MAAM,CAAC,wBAA0B,EAAA;AAAA,IAC/B,OAAS,EAAA;AAAA,GACV,IAAI,2BAA4B,CAAA;AAAA,IAC/B,WAAA,EAAa,CAAC,IAAc,KAAA;AAC1B,MAAY,WAAA,EAAA;AAAA;AACd,GACD,CAAA;AACD,EAAM,MAAA,WAAA,GAAcC,cAAM,CAAA,WAAA,CAAY,MAAM;AA7G9C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA8GI,IAAI,IAAA,SAAA,KAAa,aAAe,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAA,iBAAA,CAAA,IAAqB,QAAU,EAAA;AAC7D,MAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,cAAgB,EAAA;AAAA,QACnD,WAAW,SAAW,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAA,QAAA,EAAA;AAAA,QACtB,KAAO,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,iBAAf,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkC,UAAlC,IAAyC,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,EAAA;AAAA,QAChD,YAAc,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,iBAAf,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkC,YAAlC,IAA2C,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA;AAAA,QACzD,QAAU,EAAA,IAAA;AAAA,QACV,UAAY,EAAA;AAAA,OACb,CAAA;AAAA;AAEH,IAAA,IAAI,YAAc,EAAA;AAChB,MAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAY,MAAO,CAAA,IAAA,CAAA;AAAA;AACrB,KACC,CAAC,SAAA,EAAW,+CAAe,iBAAmB,EAAA,QAAA,EAAU,YAAY,CAAC,CAAA;AACxE,EAAe,cAAA,CAAAA,cAAA,CAAM,YAAY,MAAM;AACrC,IAAA,IAAI,OAAS,EAAA;AACX,MAAkB,iBAAA,CAAA;AAAA,QAChB,MAAA;AAAA,QACA,KAAO,EAAA;AAAA,OACR,CAAA;AACD,MAAoB,mBAAA,CAAA;AAAA,QAClB,QAAU,EAAA;AAAA,UACR;AAAA;AACF,OACD,CAAA;AAAA;AAEH,IAAI,IAAA,SAAA;AAAW,MAAqB,oBAAA,EAAA;AACpC,IAAA,UAAA,CAAW,UAAW,CAAA;AAAA,MACpB,WAAa,EAAA,IAAA;AAAA,MACb,gBAAkB,EAAA,MAAA;AAAA,MAClB,kBAAkB,EAAC;AAAA,MACnB,YAAY,CAAC,KAAA,iFACM,QAAW,mBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAiB,KAAO,EAAA;AAAA,QACnD,iBAAmB,EAAA;AAAA,SAClB,OAAS,EAAA,MAAM,WAAY,EAAA,EAAA,+CACL,SAAU,EAAA,EAAA,KAAA,EAAM,OAAQ,EAAA,IAAA,EAAK,SAAQ,IAAM,EAAA,EAAA,EAAI,CACpD,CAAsB,mBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAiB,KAAO,EAAA;AAAA,QACjE,iBAAmB,EAAA;AAAA,OAClB,EAAA,OAAA,EAAS,MAAM,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAY,4BACLA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,KAAM,EAAA,OAAA,EAAQ,IAAK,EAAA,cAAA,EAAe,IAAM,EAAA,EAAA,EAAI,CAC1D,CACR,CAAA;AAAA,MACd,WAAa,EAAA,CAAC,KAAe,qBAAAA,cAAA,CAAA,aAAA,CAAC,UAAO,SAAU,EAAA,MAAA,EAAO,OAAS,EAAA,MAAM,mBAAoB,EAAA,EAAG,OAAS,EAAA,MAAA,EAAQ,WAAU,eAAiB,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAA,MAAA,IAAS,CAAI,GAAA,KAAA,GAAQ,IAC3I,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,SAAA,EAAW,IAAG,eAAiB,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAA,MAAA,IAAS,CAAI,GAAA,YAAA,GAAe,eAClE,CAAA,YAAA,CAAA,EAAA,EAAA,CAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,MAAS,IAAA,KAAA,GAAQ,KACvC,CACJ;AAAA,KACf,CAAA;AACD,IAAA,OAAO,MAAM;AAAA,KAKb;AAAA,GACF,EAAG,CAAC,QAAU,EAAA,OAAA,EAAS,WAAW,aAAe,EAAA,eAAe,CAAC,CAAC,CAAA;AAClE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,CAAC,CAAA;AACX,MAAA,sBAAA,CAAuB,EAAE,CAAA;AAAA,KAC3B;AAAA,GACF,EAAG,EAAE,CAAA;AACL,EAAA,SAAA,CAAU,MAAM;AA1KlB,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2KI,IAAA,IAAA,CAAA,CAAI,EAAgB,GAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAA,sBAAA,KAAhB,IAAwC,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,MAAQ,+CAAe,iBAAmB,CAAA,EAAA;AACpF,MAAM,MAAA,2BAAA,GAAA,CAA8B,kEAAgB,sBAAhB,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwC,SAAxC,IAA8C,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,CAAO,CAAC,EAAS,KAAA;AA5KzG,QAAAC,IAAAA,GAAAA;AA4K4G,QAAA,OAAA,CAAA,CAAAA,MAAA,EAAI,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,KAAJ,IAAAA,GAAAA,MAAAA,GAAAA,GAAAA,CAAU,QAAM,SAAW,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAA,EAAA,CAAA;AAAA,OAAA,CAAA,KAA7F,YAAoG,EAAC;AACzI,MAAM,MAAA,cAAA,GAAA,CAAiB,gEAAe,iBAAf,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkC,YAAlC,IAA2C,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,CAAO,CAAC,EAAS,KAAA;AA7KzF,QAAAA,IAAAA,GAAAA;AA6K4F,QAAA,OAAA,CAAA,CAAAA,MAAA,EAAI,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,KAAJ,IAAAA,GAAAA,MAAAA,GAAAA,GAAAA,CAAU,QAAM,SAAW,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAA,EAAA,CAAA;AAAA,OAAA,CAAA,KAA1F,YAAiG,EAAC;AACzH,MAAM,MAAA,kBAAA,GAAqB,4BAA4B,MAAO,CAAA,CAAC,MAAW,CAAC,cAAA,CAAe,MAAO,CAAA,CAAC,CAAQ,KAAA;AA9KhH,QAAA,IAAAA,GAAAC,EAAAA,GAAAA;AA8KmH,QAAAD,OAAAA,CAAAA,CAAAA,GAAAA,GAAA,CAAG,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,IAAA,KAAH,IAAAA,GAAAA,MAAAA,GAAAA,GAAAA,CAAS,UAAOC,GAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,IAAH,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAS,CAAA,EAAA,CAAA;AAAA,OAAE,EAAE,MAAM,CAAA;AAChJ,MAAuB,sBAAA,CAAA,CAAC,kBAAuB,MAAO,CAAA,CAAC,GAAG,aAAe,EAAA,GAAG,kBAAkB,CAAA,EAAG,CAAC;AAAA,QAChG;AAAA,OACF,KAAM,MAAM,CAAC,CAAA;AAEb,MAAA,oBAAA,CAAqB,kBAAkB,CAAA;AAAA;AAEzC,IAAI,IAAA,CAAA,EAAA,GAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,2BAAhB,IAAwC,GAAA,MAAA,GAAA,EAAA,CAAA,UAAA;AAAY,MAAA,eAAA,CAAA,CAAA,CAAgB,EAAgB,GAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAA,sBAAA,KAAhB,IAAwC,GAAA,MAAA,GAAA,EAAA,CAAA,UAAA,IAAa,CAAC,CAAA;AAAA,KAC7H,CAAC,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,sBAAwB,EAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,iBAAiB,CAAC,CAAA;AAC7E,EAAA,SAAA,CAAU,MAAM;AAvLlB,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwLI,IAAA,IAAI,qDAAkB,cAAgB,EAAA;AACpC,MAAM,MAAA,kBAAA,GAAA,CAAqB,EAAkB,GAAA,CAAA,EAAA,GAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAA,cAAA,KAAlB,IAAkC,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,CAAO,CAAC,CAAA,KAAW,CAAE,CAAA,IAAA,IAAQ,QAA/D,CAAA,KAAA,IAAA,GAAA,EAAA,GAA4E,EAAC;AACxG,MAAA,MAAM,sBAA8B,GAAA,CAAA,EAAA,GAAA,kBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,kBAAA,CAAoB,GAAI,CAAA,CAAC,CAAW,KAAA;AA1L9E,QAAA,IAAAD,GAAAC,EAAAA,GAAAA;AA2LQ,QAAOA,OAAAA,CAAAA,GAAAA,GAAAA,CAAAD,MAAA,CAAG,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,OAAA,KAAH,gBAAAA,GAAY,CAAA,MAAA,CAAO,CAAC,EAAS,KAAA;AA3L5C,UAAAA,IAAAA,GAAAA;AA2L+C,UAAA,OAAA,CAAA,CAAAA,MAAA,EAAI,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,KAAJ,IAAAA,GAAAA,MAAAA,GAAAA,GAAAA,CAAU,QAAM,SAAW,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAA,EAAA,CAAA;AAAA,SAAA,CAAA,KAA3D,IAAAC,GAAAA,MAAAA,GAAAA,GAAAA,CAAgE,GAAI,CAAA,CAAC,MAAW,CAAG,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,IAAA,CAAA;AAAA,aADxD,IAE9B,GAAA,EAAA,GAAA,IAAA;AACN,MAAMC,MAAAA,kBAAAA,GAAAA,CAAoB,4EAAwB,IAAK,CAAA,CAAA,CAAA,KAA7B,mBAAiC,MAAO,CAAA,CAAC,GAAQ,CAAQ,EAAA,CAAA,KAAW,EAAE,SAAU,CAAA,CAAC,OAAY,EAAG,CAAA,EAAA,KAAO,EAAE,EAAE,CAAA,KAAM,CAAjH,CAAA,KAAA,IAAA,GAAA,EAAA,GAAuH,EAAC;AAClJ,MAAA,oBAAA,CAAqBA,kBAAiB,CAAA;AAAA;AACxC,GACF,EAAG,CAAC,gBAAgB,CAAC,CAAA;AACrB,EAAA,MAAM,wBAAwB,CAAC;AAAA,IAC7B;AAAA,GACS,KAAA;AAnMb,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoMI,IAAA,MAAM,OAAe,GAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,IAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,SAAS,KAAM,CAAA,SAAA,CAAA;AAChD,IAAA,MAAM,UAAe,OAAQ,CAAA,IAAA,CAAK,EAAE,CAAE,CAAA,SAAA,CAAU,GAAG,CAAC,CAAA;AACpD,IAAA,oDAAQ,gBAAiB,EAAA,EAAA,GAAA,EAAA,CAAK,kCAAM,IAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,IAAI,KAAO,EAAA;AAAA,MACnD,SAAW,EAAA;AAAA,KACb,EAAG,SAAS,MAAG;AAxMnB,MAAAF,IAAAA,GAAAA;AAwMsB,MAAA,OAAA,aAAA,CAAA,CAAcA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,IAAN,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAY,EAAE,CAAA;AAAA,KAAA,EAAA,+CACjC,MAAO,EAAA,EAAA,KAAA,EAAO,IAAM,EAAA,SAAA,EAAU,mEAC1BD,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,SAAU,EAAA,cAAA,EAAA,+CACb,MAAO,EAAA,EAAA,QAAA,EAAQ,MAAC,IAAM,EAAA,IAAA,EAAM,WAAU,gBACnC,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,MAAO,EAAA,EAAA,SAAA,EAAU,+BAA8B,IAAM,EAAA,IAAA,EAAA,kBACjDA,cAAA,CAAA,aAAA,CAAA,kBAAA,EAAA,EAAmB,WAAU,sBACzB,EAAA,EAAA,OAAA,CAAQ,WAAY,EACzB,mBACCA,cAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,KAAK,OAAS,EAAA,YAAA,EAAc,GAAG,MAAQ,EAAA;AAAA,MACpE,GAAA,EAAA,CAAK,EAAM,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,IAAA,KAAN,IAAY,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,KACnB,EAAG,CACW,CACJ,CAAA,+CAEC,IAAK,EAAA,EAAA,SAAA,EAAU,yBACX,EAAA,EAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,IAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,WAAU,GAAE,EAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,SAAN,IAAY,GAAA,MAAA,GAAA,EAAA,CAAA,UACzC,CACJ,CAEA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,QAAA,EAAU,MAAG;AA3N3C,MAAAC,IAAAA,GAAAA;AA2N8C,MAAA,OAAA,aAAA,CAAA,CAAcA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,IAAN,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAY,EAAE,CAAA;AAAA,KAAG,EAAA,KAAA,EAAA,CAAO,kCAAM,IAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,IAAI,SAAW,EAAA,eAAA,KAAmB,mDAAiB,QAAS,CAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,SAAN,IAAY,GAAA,MAAA,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA,GAAM,OAAO,KAAO,EAAA,kBAAA,EAAA,CAAoB,wCAAM,IAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,aAAZ,IAAwB,GAAA,EAAA,GAAA,EAAA,EAAI,eAAY,EAAM,GAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,IAAA,KAAN,mBAAY,QAAZ,KAAA,IAAA,GAAA,EAAA,GAAwB,IAAI,iBAAiB,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,SAAN,IAAY,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,KAAZ,YAAwB,EACrS,EAAA,kBAAAD,cAAA,CAAA,aAAA,CAAC,yCACIA,cAAA,CAAA,aAAA,CAAA,YAAA,EAAA,EAAa,IAAI,SAAW,EAAA,CACjC,CACJ,CACJ,CACJ,CAAA;AAAA,GACV;AAMA,EAAM,MAAA,aAAA,GAAgB,CAAC,EAAY,KAAA;AACjC,IAAA,kBAAA,CAAmB,CAAC,GAAa,KAAA,GAAA,CAAI,QAAQ,EAAE,CAAA,KAAM,KAAK,CAAC,GAAG,GAAK,EAAA,EAAE,IAAI,GAAI,CAAA,MAAA,CAAO,CAAC,GAAgB,KAAA,GAAA,IAAO,EAAE,CAAC,CAAA;AAAA,GACjH;AACA,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAI,IAAA,CAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,UAAS,CAAG,EAAA;AAC/B,MAAqB,oBAAA,CAAA;AAAA,QACnB,SAAW,EAAA;AAAA,UACT,UAAY,EAAA,eAAA;AAAA,UACZ;AAAA;AACF,OACD,CAAA;AAAA;AACH,GACF;AACA,EAAA,MAAM,aAAgB,GAAAA,cAAA,CAAM,WAAY,CAAA,CAAC,CAAW,KAAA;AAClD,IAAA,IAAI,CAAG,EAAA;AACL,MAAA,IAAI,eAAkB,GAAA,mBAAA,CAAoB,MAAO,CAAA,CAAC,CAAQ,KAAA;AAvPhE,QAAA,IAAA,EAAA;AAuPmE,QAAG,OAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,IAAA,KAAH,IAAS,GAAA,MAAA,GAAA,EAAA,CAAA,SAAA,CAAU,QAAS,CAAA,CAAA,CAAA;AAAA,OAAE,CAAA;AAC3F,MAAA,sBAAA,CAAuB,eAAe,CAAA;AAAA,KACjC,MAAA;AACL,MAAA,sBAAA,CAAuB,iBAAiB,CAAA;AAAA;AAC1C,GACF,EAAG,CAAC,mBAAmB,CAAC,CAAA;AACxB,EAAM,MAAA,mBAAA,GAAsBA,cAAM,CAAA,WAAA,CAAY,MAAM;AAClD,IAAA,IAAI,iBAAgB,mBAAqB,IAAA,IAAA,GAAA,MAAA,GAAA,mBAAA,CAAA,MAAA,CAAA;AAAQ,MAAA,YAAA,CAAa,IAAI,CAAA;AAClE,IAAA,IAAI,gBAAe,mBAAqB,IAAA,IAAA,GAAA,MAAA,GAAA,mBAAA,CAAA,MAAA,CAAA,IAAU,CAAC,kBAAA,IAAsB,CAAC,SAAW,EAAA;AACnF,MAAA,MAAM,SAAS,MAAS,GAAA,CAAA;AACxB,MAAkB,iBAAA,CAAA;AAAA,QAChB,MAAQ,EAAA,MAAA;AAAA,QACR,KAAO,EAAA;AAAA,OACR,CAAE,CAAA,OAAA,CAAQ,MAAM;AACf,QAAA,OAAA,CAAQ,IAAI,SAAS,CAAA;AACrB,QAAA,SAAA,CAAU,MAAM,CAAA;AAAA,OACjB,CAAA;AAAA;AACH,GACC,EAAA,CAAC,mBAAqB,EAAA,YAAA,EAAc,MAAM,CAAC,CAAA;AAC9C,EAAA,MAAM,eAAe,MAAM;AACzB,IAEE,uBAAAA,cAAA,CAAA,aAAA,CAAC,WACU,kBAAsB,IAAA,kBAAA,IAAsB,2CAA4BA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,KAAM,EAAA,OAAA,EAAQ,KAAO,EAAA;AAAA,MAC5G,MAAQ,EAAA;AAAA,KACV,EAAG,IAAK,IACJ,CAAA;AAAA,GAEV;AACA,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAU,EAAA,iBAAA,EAAA,+CACX,KAAM,EAAA,EAAA,OAAA,EAAQ,YACX,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,SAAA,EAAW,MAAM,IAAK,EAAA,MAAA,EAAO,IAAK,EAAA,IAAA,EAAK,oBAAsB,EAAA,SAAA,EAAW,WAAU,0CAA2C,EAAA,WAAA,EAAY,mCAAoC,EAAA,QAAA,EAAU,CAAC;AAAA,IAC5M,WAAa,EAAA;AAAA,MACX,UAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA;AACF,GACI,KAAA;AACJ,IAAA,aAAA,CAAc,IAAI,CAAA;AAAA,GACpB,EAAG,gBAAgB,MAAQ,EAAA,WAAA,EAAa,OAAO,CACzC,CAAA,+CAEC,GAAI,EAAA,EAAA,SAAA,EAAU,4BACVA,cAAA,CAAA,aAAA,CAAA,qBAAA,EAAA,IAAA,+CACI,MAAO,EAAA,EAAA,KAAA,EAAM,MAAK,SAAU,EAAA,aAAA,EAAA,kBACxBA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,KAAO,EAAA;AAAA,IAC7B,IAAM,EAAA,CAAA;AAAA,IACN,iBAAmB,EAAA;AAAA,GACrB,EAAG,cAAc,CAAC,IAAA,EAAM,UAAU,MAAO,CAAA,KAAK,GAAG,qBAAuB,EAAA;AAAA,IACtE,IAAM,EAAA;AAAA,GACL,EAAA,IAAA,EAAM,mBAAuB,IAAA,mBAAA,CAAoB,MAAS,GAAA,CAAA,GAAI,mBAAsB,GAAA,EAAI,EAAA,UAAA,EAAY,qBAAuB,EAAA,kBAAA,EAAoB,MAAM;AACtJ,IAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAiB,KAAO,EAAA;AAAA,MAC9B,SAAW,EAAA;AAAA,yBAEgBA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,WAAU,eACX,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAO,KAAM,EAAA,IAAA,EAAA,+CACT,GAAI,EAAA,EAAA,SAAA,EAAU,+BACVA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAK,iBAAe,CACzB,CACJ,CACJ,CACJ,CAAA;AAAA,GACvB,EAAA,GAAA,EAAK,yBAA2B,EAAA,mBAAA,EAAqB,YAAc,EAAA,YAAA,EAAc,mBAAqB,EAAA,qBAAA,EAAuB,GAAK,EAAA,CAC3H,CACJ,CACJ,CACJ,CAAA;AACR"}
@@ -1,4 +1,4 @@
1
- import React__default,{useState}from'react';import {View,TouchableOpacity,Image,Text,Dimensions}from'react-native';import styles from'./styles.js';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {NavigationRoutes}from'../../constants/routes.js';import img from'../../assets/images/send.png.js';import img$1 from'../../assets/images/right.png.js';import {useNavigation,useRoute,useFocusEffect}from'@react-navigation/native';import'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';Dimensions.get("window").width;
1
+ import React__default,{useState}from'react';import {View,TouchableOpacity,Image,Text,Dimensions}from'react-native';import styles from'./styles.js';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {NavigationRoutes}from'../../constants/routes.js';import img from'../../assets/images/send.png.js';import img$1 from'../../assets/images/right.png.js';import {useNavigation,useRoute,useFocusEffect}from'@react-navigation/native';import'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import'../../hooks/useOptimizedChannelsQueries.js';Dimensions.get("window").width;
2
2
  Dimensions.get("window").height;
3
3
  const JumpToScreen = (props) => {
4
4
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"JumpTo.js","sources":["../../../src/screens/Search/JumpTo.tsx"],"sourcesContent":["// import { Ionicons } from '@expo/vector-icons';\nimport { StackNavigationProp } from '@react-navigation/stack';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { useFormik } from 'formik';\nimport { Pressable, Image, TouchableOpacity, Dimensions, View, Text } from 'react-native';\nimport styles from './styles';\nimport { StatusBar } from 'expo-status-bar';\n// import { Header, Tiles, NavigationHeader } from '../../components';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { NavigationRoutes } from '../../constants/routes';\nimport send from '../../assets/images/send.png';\nimport more from '../../assets/images/more.png';\nimport right from '../../assets/images/right.png';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { useDrawerLayout } from '../../hooks';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\ntype JumpToScreenProps = {\n //navigation: StackNavigationProp<HomeParamList, 'Home'>;\n};\n\nconst JumpToScreen = (props: JumpToScreenProps) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const [loading, setLoading] = useState<boolean>(false);\n\n useFocusEffect(\n React.useCallback(() => {\n // navigation?.setOptions({\n // headerShown: true,\n // title: 'Search',\n // headerTitle: 'Search',\n // header: (props: any) => (\n // <NavigationHeader\n // {...props}\n // showToggle={false}\n // showFilter={false}\n // showTitle={false}\n // showProfile={false}\n // back={null}\n // isSearchBack={true}\n // // customHeader={\n // // <>\n // // <Box flex={1} bg={'#3f0e40'} px={2}>\n // // <Input\n // // InputLeftElement={\n // // <IconButton\n // // onPress={() => navigation.goBack()}\n // // icon={\n // // <Icon size={5} color=\"muted.400\" as={Ionicons} name=\"arrow-back\" />\n // // }\n // // />\n // // }\n // // size=\"lg\"\n // // placeholder=\"Jump to...\"\n // // variant=\"filled\"\n // // />\n // // </Box>\n // // </>\n // // }\n // />\n // ),\n // });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n // const loadingComponent = () => (\n // <Box flex={1} justifyContent={'center'} alignItems={'center'} safeAreaTop>\n // <Spinner />\n // </Box>\n // );\n\n return (\n <VirtualizedScrollView className=\"bg-white flex-1\">\n <View style={styles.container}>\n {/* <Header>\n <Input size=\"lg\" placeholder=\"Enter a search term\" variant=\"filled\" />\n </Header> */}\n {/* <StatusBar style=\"light\" /> */}\n\n {/* Channels */}\n <View style={styles.channelContainer}>\n <TouchableOpacity\n style={[\n styles.headingContainer,\n {\n marginTop: 10,\n },\n ]}\n onPress={() =>\n navigation.navigate(NavigationRoutes.Peoples, {\n orgName: orgName,\n })\n }\n >\n <View\n style={{\n borderRadius: 8,\n alignItems: 'center',\n flexDirection: 'row',\n }}\n >\n <Image\n style={{\n width: 25,\n height: 25,\n resizeMode: 'cover',\n }}\n source={send}\n />\n <Text\n style={{\n fontSize: 16,\n marginLeft: 10,\n }}\n >\n Browse People\n </Text>\n </View>\n <Image style={styles.iconStyle} source={right} />\n </TouchableOpacity>\n </View>\n\n {/* Direct Messages */}\n <View\n style={[\n styles.channelContainer,\n {\n borderBottomWidth: 0.4,\n borderBottomColor: '#868686',\n paddingBottom: 20,\n },\n ]}\n >\n <TouchableOpacity\n style={styles.headingContainer}\n onPress={() =>\n navigation.navigate(NavigationRoutes.Channels, {\n orgName: orgName,\n })\n }\n >\n <View\n style={{\n borderRadius: 8,\n alignItems: 'center',\n flexDirection: 'row',\n }}\n >\n <Image\n style={{\n width: 25,\n height: 25,\n resizeMode: 'cover',\n }}\n source={send}\n />\n <Text\n style={{\n fontSize: 16,\n marginLeft: 10,\n }}\n >\n Browse Channels\n </Text>\n </View>\n <Image style={styles.iconStyle} source={right} />\n </TouchableOpacity>\n </View>\n <View style={styles.bottomContainer}>\n <View\n style={{\n paddingVertical: 5,\n marginTop: 5,\n }}\n >\n <Text\n style={{\n color: '#000',\n fontSize: 15,\n fontWeight: '600',\n }}\n >\n History\n </Text>\n </View>\n </View>\n </View>\n </VirtualizedScrollView>\n );\n};\n\nexport default JumpToScreen;\n"],"names":["React","send","right"],"mappings":"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"}
1
+ {"version":3,"file":"JumpTo.js","sources":["../../../src/screens/Search/JumpTo.tsx"],"sourcesContent":["// import { Ionicons } from '@expo/vector-icons';\nimport { StackNavigationProp } from '@react-navigation/stack';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { useFormik } from 'formik';\nimport { Pressable, Image, TouchableOpacity, Dimensions, View, Text } from 'react-native';\nimport styles from './styles';\nimport { StatusBar } from 'expo-status-bar';\n// import { Header, Tiles, NavigationHeader } from '../../components';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { NavigationRoutes } from '../../constants/routes';\nimport send from '../../assets/images/send.png';\nimport more from '../../assets/images/more.png';\nimport right from '../../assets/images/right.png';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { useDrawerLayout } from '../../hooks';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\ntype JumpToScreenProps = {\n //navigation: StackNavigationProp<HomeParamList, 'Home'>;\n};\n\nconst JumpToScreen = (props: JumpToScreenProps) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const [loading, setLoading] = useState<boolean>(false);\n\n useFocusEffect(\n React.useCallback(() => {\n // navigation?.setOptions({\n // headerShown: true,\n // title: 'Search',\n // headerTitle: 'Search',\n // header: (props: any) => (\n // <NavigationHeader\n // {...props}\n // showToggle={false}\n // showFilter={false}\n // showTitle={false}\n // showProfile={false}\n // back={null}\n // isSearchBack={true}\n // // customHeader={\n // // <>\n // // <Box flex={1} bg={'#3f0e40'} px={2}>\n // // <Input\n // // InputLeftElement={\n // // <IconButton\n // // onPress={() => navigation.goBack()}\n // // icon={\n // // <Icon size={5} color=\"muted.400\" as={Ionicons} name=\"arrow-back\" />\n // // }\n // // />\n // // }\n // // size=\"lg\"\n // // placeholder=\"Jump to...\"\n // // variant=\"filled\"\n // // />\n // // </Box>\n // // </>\n // // }\n // />\n // ),\n // });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n // const loadingComponent = () => (\n // <Box flex={1} justifyContent={'center'} alignItems={'center'} safeAreaTop>\n // <Spinner />\n // </Box>\n // );\n\n return (\n <VirtualizedScrollView className=\"bg-white flex-1\">\n <View style={styles.container}>\n {/* <Header>\n <Input size=\"lg\" placeholder=\"Enter a search term\" variant=\"filled\" />\n </Header> */}\n {/* <StatusBar style=\"light\" /> */}\n\n {/* Channels */}\n <View style={styles.channelContainer}>\n <TouchableOpacity\n style={[\n styles.headingContainer,\n {\n marginTop: 10,\n },\n ]}\n onPress={() =>\n navigation.navigate(NavigationRoutes.Peoples, {\n orgName: orgName,\n })\n }\n >\n <View\n style={{\n borderRadius: 8,\n alignItems: 'center',\n flexDirection: 'row',\n }}\n >\n <Image\n style={{\n width: 25,\n height: 25,\n resizeMode: 'cover',\n }}\n source={send}\n />\n <Text\n style={{\n fontSize: 16,\n marginLeft: 10,\n }}\n >\n Browse People\n </Text>\n </View>\n <Image style={styles.iconStyle} source={right} />\n </TouchableOpacity>\n </View>\n\n {/* Direct Messages */}\n <View\n style={[\n styles.channelContainer,\n {\n borderBottomWidth: 0.4,\n borderBottomColor: '#868686',\n paddingBottom: 20,\n },\n ]}\n >\n <TouchableOpacity\n style={styles.headingContainer}\n onPress={() =>\n navigation.navigate(NavigationRoutes.Channels, {\n orgName: orgName,\n })\n }\n >\n <View\n style={{\n borderRadius: 8,\n alignItems: 'center',\n flexDirection: 'row',\n }}\n >\n <Image\n style={{\n width: 25,\n height: 25,\n resizeMode: 'cover',\n }}\n source={send}\n />\n <Text\n style={{\n fontSize: 16,\n marginLeft: 10,\n }}\n >\n Browse Channels\n </Text>\n </View>\n <Image style={styles.iconStyle} source={right} />\n </TouchableOpacity>\n </View>\n <View style={styles.bottomContainer}>\n <View\n style={{\n paddingVertical: 5,\n marginTop: 5,\n }}\n >\n <Text\n style={{\n color: '#000',\n fontSize: 15,\n fontWeight: '600',\n }}\n >\n History\n </Text>\n </View>\n </View>\n </View>\n </VirtualizedScrollView>\n );\n};\n\nexport default JumpToScreen;\n"],"names":["React","send","right"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React__default,{useState,useEffect,useRef}from'react';import {Box,HStack,Text,ScrollView,Avatar,AvatarImage,AvatarFallbackText,AvatarBadge}from'@admin-layout/gluestack-ui-mobile';import {Keyboard,TouchableOpacity,SafeAreaView,StyleSheet,View,TextInput,Dimensions}from'react-native';import {RoomType}from'common';import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector}from'react-redux';import {startCase,uniqBy}from'lodash-es';import {MaterialIcons,Feather,Octicons}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import {useChannelsLazyQuery,useAddDirectChannelMutation,useAddChannelMutation,useSaveMembersToChannelMutation,useOrganizationMembersWithChannelsQuery}from'../../queries/slackuiQueries.js';Dimensions.get("window").width;
1
+ import React__default,{useState,useEffect,useRef}from'react';import {Box,HStack,Text,ScrollView,Avatar,AvatarImage,AvatarFallbackText,AvatarBadge}from'@admin-layout/gluestack-ui-mobile';import {Keyboard,TouchableOpacity,Platform,SafeAreaView,StyleSheet,View,TextInput,Dimensions}from'react-native';import {RoomType}from'common';import {NavigationRoutes}from'../../constants/routes.js';import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector}from'react-redux';import {startCase,uniqBy}from'lodash-es';import {MaterialIcons,Feather,Octicons}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import'../../hooks/useOptimizedChannelsQueries.js';import {useChannelsLazyQuery,useAddDirectChannelMutation,useAddChannelMutation,useSaveMembersToChannelMutation,useOrganizationMembersWithChannelsQuery}from'../../queries/slackuiQueries.js';Dimensions.get("window").width;
2
2
  Dimensions.get("window").height;
3
3
  Dimensions.get("screen").height;
4
4
  const defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public, RoomType.Direct];
@@ -84,7 +84,26 @@ const SearchAddChannel = (props) => {
84
84
  }, [orgName]));
85
85
  React__default.useEffect(() => {
86
86
  navigation.setOptions({
87
- headerLeft: (props2) => /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => navigation.goBack() }, /* @__PURE__ */ React__default.createElement(MaterialIcons, { size: 20, name: "close", color: "black" }))
87
+ headerLeft: (props2) => /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => {
88
+ console.log("canGoBack:", navigation.canGoBack(), "Platform:", Platform.OS);
89
+ if (Platform.OS === "macos") {
90
+ navigation.navigate("MainStack", {
91
+ screen: NavigationRoutes.Home,
92
+ params: {
93
+ orgName
94
+ }
95
+ });
96
+ } else if (navigation.canGoBack()) {
97
+ navigation.goBack();
98
+ } else {
99
+ navigation.navigate("MainStack", {
100
+ screen: NavigationRoutes.Home,
101
+ params: {
102
+ orgName
103
+ }
104
+ });
105
+ }
106
+ } }, /* @__PURE__ */ React__default.createElement(MaterialIcons, { size: 20, name: "close", color: "black" }))
88
107
  });
89
108
  }, []);
90
109
  React__default.useEffect(() => {