@messenger-box/slack-ui-mobile 10.0.3-alpha.74 → 10.0.3-alpha.80

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 (87) hide show
  1. package/lib/components/Actionsheet.js.map +1 -1
  2. package/lib/components/AppRootContextProviderComponent.js.map +1 -1
  3. package/lib/components/Channels/ChannelsByAlphabeticalAccordion.js.map +1 -1
  4. package/lib/components/CustomBottomTabs/CustomBottomTabs.js.map +1 -1
  5. package/lib/components/CustomDrawer/CustomDrawer.js.map +1 -1
  6. package/lib/components/Header/Header.js.map +1 -1
  7. package/lib/components/Header/styles.js.map +1 -1
  8. package/lib/components/LoadingSpinner/index.js.map +1 -1
  9. package/lib/components/NavigationHeader/InboxNavigationHeader.js.map +1 -1
  10. package/lib/components/NavigationHeader/NavigationHeader.js.map +1 -1
  11. package/lib/components/NavigationHeader/NavigationHeaderChat.js.map +1 -1
  12. package/lib/components/SlackSearchInput/Suggestion.js.map +1 -1
  13. package/lib/components/SlackSearchInput/Tag.js.map +1 -1
  14. package/lib/components/SlackSearchInput/index.js.map +1 -1
  15. package/lib/components/Tiles/Tiles.js.map +1 -1
  16. package/lib/components/Tiles/styles.js.map +1 -1
  17. package/lib/components/VirtualizedScrollView/VirtualizedScrollView.js.map +1 -1
  18. package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js.map +1 -1
  19. package/lib/compute.js.map +1 -1
  20. package/lib/config/env-config.js.map +1 -1
  21. package/lib/constants/Colors.js.map +1 -1
  22. package/lib/constants/Layout.js.map +1 -1
  23. package/lib/constants/device.js.map +1 -1
  24. package/lib/constants/fonts.js.map +1 -1
  25. package/lib/constants/globalStyles.js.map +1 -1
  26. package/lib/constants/routes.js.map +1 -1
  27. package/lib/hooks/useCachedResources.js.map +1 -1
  28. package/lib/hooks/useColorScheme.js.map +1 -1
  29. package/lib/hooks/useDisclose.js.map +1 -1
  30. package/lib/hooks/useDrawerLayout.js.map +1 -1
  31. package/lib/hooks/useExpoNotificationProvider.js.map +1 -1
  32. package/lib/hooks/useOptimizedChannelsQueries.js.map +1 -1
  33. package/lib/locales/index.js.map +1 -1
  34. package/lib/module.js.map +1 -1
  35. package/lib/navigation/SearchTabNavigation.js.map +1 -1
  36. package/lib/navigation/TeamTabNavigation.js.map +1 -1
  37. package/lib/queries/slackuiQueries.js.map +1 -1
  38. package/lib/screens/Account/AccountScreen.js.map +1 -1
  39. package/lib/screens/Activity/ActivityScreen.js.map +1 -1
  40. package/lib/screens/Channels/Add/AddName.js.map +1 -1
  41. package/lib/screens/Channels/Add/AddVisibility.js.map +1 -1
  42. package/lib/screens/Channels/AddChannel.js.map +1 -1
  43. package/lib/screens/Channels/Channels.js.map +1 -1
  44. package/lib/screens/Files/FilesScreen.js.map +1 -1
  45. package/lib/screens/Home/Components/Channels/Channels.js.map +1 -1
  46. package/lib/screens/Home/Components/DirectChannels/DirectChannels.js.map +1 -1
  47. package/lib/screens/Home/Components/InviteMembers/index.js.map +1 -1
  48. package/lib/screens/Home/Components/Teams/Teams.js.map +1 -1
  49. package/lib/screens/Home/Components/TopCommonSlider/TopCommonSlider.js.map +1 -1
  50. package/lib/screens/Home/HomeScreen.js.map +1 -1
  51. package/lib/screens/Home/styles.js.map +1 -1
  52. package/lib/screens/Inbox/InboxChannelDetail.js.map +1 -1
  53. package/lib/screens/Inbox/InboxDialogMessages.js.map +1 -1
  54. package/lib/screens/Inbox/InboxScreen.js.map +1 -1
  55. package/lib/screens/Inbox/InboxThreadMessages.js.map +1 -1
  56. package/lib/screens/Inbox/InboxThreads.js.map +1 -1
  57. package/lib/screens/Login.js.map +1 -1
  58. package/lib/screens/Notification/NotificationsScreen.js.map +1 -1
  59. package/lib/screens/Organization/AddWorkspace.js.map +1 -1
  60. package/lib/screens/Organization/CreateOrganization.js.map +1 -1
  61. package/lib/screens/Organization/InitialChannelOnboarding.js.map +1 -1
  62. package/lib/screens/Organization/InitializeOrganizationChannel.js.map +1 -1
  63. package/lib/screens/Organization/InviteOrganizationMembers.js.map +1 -1
  64. package/lib/screens/Peoples/AddByEmail.js.map +1 -1
  65. package/lib/screens/Peoples/AddFromContacts.js.map +1 -1
  66. package/lib/screens/Peoples/AddPeople.js.map +1 -1
  67. package/lib/screens/Peoples/People.js.map +1 -1
  68. package/lib/screens/Profile/ProfileScreen.js.map +1 -1
  69. package/lib/screens/Saved/SavedScreen.js.map +1 -1
  70. package/lib/screens/Search/Channels.js.map +1 -1
  71. package/lib/screens/Search/Files.js.map +1 -1
  72. package/lib/screens/Search/JumpTo.js.map +1 -1
  73. package/lib/screens/Search/People.js.map +1 -1
  74. package/lib/screens/Search/Recents.js.map +1 -1
  75. package/lib/screens/Search/SearchAddChannel.js.map +1 -1
  76. package/lib/screens/Search/SearchChannelPeople.js.map +1 -1
  77. package/lib/screens/Search/SearchScreen.js.map +1 -1
  78. package/lib/screens/Search/styles.js.map +1 -1
  79. package/lib/screens/Teams/AddTeam.js.map +1 -1
  80. package/lib/screens/Teams/Components/Channels/Channels.js.map +1 -1
  81. package/lib/screens/Teams/Components/Members/Members.js.map +1 -1
  82. package/lib/screens/Teams/Team.js.map +1 -1
  83. package/lib/screens/Teams/Teams.js.map +1 -1
  84. package/lib/screens/Teams/useTeams.js.map +1 -1
  85. package/lib/screens/Wiki/WikiScreen.js.map +1 -1
  86. package/lib/theme/index.js.map +1 -1
  87. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Channels.js","sources":["../../../src/screens/Channels/Channels.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { StyleSheet, TouchableHighlight, Dimensions, SafeAreaView, Platform } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n InputIcon,\n SearchIcon,\n Button,\n ButtonText,\n View,\n Text,\n VStack,\n Box,\n Fab,\n FlatList,\n Divider,\n HStack,\n SectionList,\n Center,\n Heading,\n Spinner,\n Avatar,\n Badge,\n BadgeText,\n Pressable,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign } from '@expo/vector-icons';\n// import VirtualizedScrollView from '../VirtualizedScrollView';\nimport { RoomType } from 'common';\nimport { useChannelsQuery } from '../../queries/slackuiQueries';\nimport { useIsFocused, useFocusEffect, useNavigation } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { StatusBar } from 'expo-status-bar';\nimport { NavigationHeader, ChannelsByAlphabeticalAccordion } from '../../components';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\nconst Channels = ({ navigation, route }: any) => {\n const { orgName } = useDrawerLayout();\n const isFocused = useIsFocused();\n const [channels, setChannels] = useState<any[]>([]);\n const [intialChannels, setInitialChannels] = useState<any[]>([]);\n const [searchQuery, setSearchQuery] = useState<string>('');\n\n const { data, loading, error, refetch } = useChannelsQuery();\n\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n refetch({\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n });\n }\n return () => {\n // Cleanup\n };\n }, [orgName, refetch]),\n );\n\n useEffect(() => {\n if (data) {\n const newChannels =\n data?.channelsByUser\n ?.filter((i: any) => i.type !== RoomType.Direct)\n ?.sort((a: any, b: any) => a.title.localeCompare(b.title)) || [];\n\n setChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n setInitialChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n }\n }, [data]);\n\n useEffect(() => {\n if (navigation) {\n navigation.setOptions({\n headerTitleAlign: 'left',\n headerTitleStyle: {\n borderBottomWidth: 1,\n },\n headerLeft: () => (\n <Button\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 variant={'link'}\n >\n <ButtonText>\n <MaterialIcons name=\"close\" size={24} color=\"black\" />\n </ButtonText>\n </Button>\n ),\n headerRight: () => (\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n variant={'link'}\n >\n <ButtonText>Create</ButtonText>\n </Button>\n ),\n // headerLeft:()=><></>,\n // headerRight: () => (\n // <Button onPress={() => navigation.goBack()} variant={'link'}>\n // <ButtonText><MaterialIcons name=\"close\" size={24} color=\"black\" /></ButtonText>\n // </Button>\n // ),\n headerTitle: () => (\n <Box>\n <Text color={colors.black} className=\"text-[15] font-bold\">\n Channels\n </Text>\n </Box>\n ),\n headerStyle: {\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }\n }, [navigation, orgName]);\n\n const openInbox = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n hideTabBar: true,\n });\n },\n [navigation],\n );\n\n const searchChannels = useCallback(\n (text: string) => {\n setSearchQuery(text);\n if (text) {\n const searchedChannel = intialChannels.filter((o: any) =>\n o?.title?.toLowerCase().includes(text?.toLowerCase()),\n );\n setChannels(searchedChannel);\n } else {\n setChannels(intialChannels);\n }\n },\n [intialChannels],\n );\n\n const renderChannelIcon = useCallback((type: RoomType) => {\n if (type === RoomType.Private) {\n return <FontAwesome color={'#525252'} name=\"lock\" size={18} />;\n } else {\n return <Octicons color=\"#525252\" name=\"hash\" size={18} />;\n }\n }, []);\n\n const renderChannelItem = useCallback(\n ({ item }: any) => (\n <Pressable onPress={() => openInbox(item)}>\n {({ pressed }) => (\n <Box\n className={`py-4 ${pressed ? 'bg-gray-100' : 'bg-white'} border-b border-gray-200`}\n style={{ borderBottomColor: colors.gray[300] }}\n >\n <HStack className=\"px-4 items-center\">\n <Box className=\"mr-2\">{renderChannelIcon(item.type)}</Box>\n <VStack>\n <Text\n className=\"font-medium text-lg text-gray-900\"\n numberOfLines={1}\n ellipsizeMode=\"tail\"\n >\n {item.title}\n </Text>\n </VStack>\n </HStack>\n </Box>\n )}\n </Pressable>\n ),\n [openInbox, renderChannelIcon],\n );\n\n const renderEmptyList = useCallback(\n () => (\n <Center className=\"flex-1 py-10\">\n {loading ? (\n <VStack className=\"space-y-3 items-center\">\n <Spinner size=\"large\" color={colors.blue[500]} />\n <Text color={colors.gray[600]}>Loading channels...</Text>\n </VStack>\n ) : (\n <VStack className=\"space-y-3 items-center px-4\">\n <Box className=\"rounded-full bg-gray-100 p-4\">\n <Octicons name=\"hash\" size={32} color={colors.gray[400]} />\n </Box>\n <Heading size=\"sm\" style={{ color: colors.gray[800] }}>\n No Channels Found\n </Heading>\n {searchQuery ? (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n No channels match your search \"{searchQuery}\"\n </Text>\n ) : (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n Create a new channel to get started\n </Text>\n )}\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n className=\"mt-2\"\n >\n <ButtonText>Create Channel</ButtonText>\n </Button>\n </VStack>\n )}\n </Center>\n ),\n [loading, searchQuery, navigation, orgName],\n );\n\n const keyExtractor = useCallback((item: any) => item.id.toString(), []);\n\n const navigateToAddChannel = useCallback(() => {\n navigation.navigate(NavigationRoutes.AddChannel, { orgName });\n }, [navigation, orgName]);\n\n return (\n <SafeAreaView style={styles.safeArea}>\n <StatusBar style=\"dark\" />\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2\" style={styles.searchContainer}>\n <Input\n variant=\"outline\"\n className=\"bg-white rounded-3xl border border-gray-300\"\n style={styles.searchInput}\n size=\"lg\"\n >\n <InputSlot className=\"pl-3\">\n <InputIcon color={colors.gray[500]} as={SearchIcon} />\n </InputSlot>\n <InputField\n type=\"text\"\n size=\"md\"\n placeholder=\"Search channels\"\n placeholderTextColor={colors.gray[400]}\n className=\"px-3 py-2 text-base\"\n value={searchQuery}\n onChange={(event) => searchChannels(event.nativeEvent.text)}\n autoCapitalize=\"none\"\n autoCorrect={false}\n clearButtonMode=\"while-editing\"\n />\n </Input>\n </Box>\n\n <Box className=\"flex-1\">\n <FlatList\n contentContainerStyle={styles.flatListContent}\n data={channels}\n keyExtractor={keyExtractor}\n renderItem={renderChannelItem}\n ListEmptyComponent={renderEmptyList}\n showsVerticalScrollIndicator={false}\n initialNumToRender={10}\n maxToRenderPerBatch={10}\n windowSize={10}\n />\n </Box>\n\n {/* <Fab\n onPress={navigateToAddChannel}\n className=\"bg-blue-500 mb-16 mr-4\"\n $pressed-className=\"bg-blue-600\"\n size=\"lg\"\n placement=\"bottom right\"\n >\n <AntDesign color=\"white\" name=\"plus\" size={24} />\n </Fab> */}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n safeArea: {\n flex: 1,\n backgroundColor: 'white',\n },\n searchContainer: {\n paddingVertical: 10,\n },\n searchInput: {\n borderRadius: 10,\n borderColor: colors.gray[300],\n paddingHorizontal: 10,\n },\n flatListContent: {\n flexGrow: 1,\n paddingBottom: 80,\n },\n channelTitle: {\n color: colors.gray[900],\n fontSize: 16,\n fontWeight: '500',\n },\n channelDescription: {\n color: colors.gray[600],\n fontSize: 14,\n marginTop: 2,\n },\n});\n\nexport default React.memo(Channels);\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Channels.js","sources":["../../../src/screens/Channels/Channels.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { StyleSheet, TouchableHighlight, Dimensions, SafeAreaView, Platform } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n InputIcon,\n SearchIcon,\n Button,\n ButtonText,\n View,\n Text,\n VStack,\n Box,\n Fab,\n FlatList,\n Divider,\n HStack,\n SectionList,\n Center,\n Heading,\n Spinner,\n Avatar,\n Badge,\n BadgeText,\n Pressable,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign } from '@expo/vector-icons';\n// import VirtualizedScrollView from '../VirtualizedScrollView';\nimport { RoomType } from 'common';\nimport { useChannelsQuery } from '../../queries/slackuiQueries';\nimport { useIsFocused, useFocusEffect, useNavigation } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { StatusBar } from 'expo-status-bar';\nimport { NavigationHeader, ChannelsByAlphabeticalAccordion } from '../../components';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\nconst Channels = ({ navigation, route }: any) => {\n const { orgName } = useDrawerLayout();\n const isFocused = useIsFocused();\n const [channels, setChannels] = useState<any[]>([]);\n const [intialChannels, setInitialChannels] = useState<any[]>([]);\n const [searchQuery, setSearchQuery] = useState<string>('');\n\n const { data, loading, error, refetch } = useChannelsQuery();\n\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n refetch({\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n });\n }\n return () => {\n // Cleanup\n };\n }, [orgName, refetch]),\n );\n\n useEffect(() => {\n if (data) {\n const newChannels =\n data?.channelsByUser\n ?.filter((i: any) => i.type !== RoomType.Direct)\n ?.sort((a: any, b: any) => a.title.localeCompare(b.title)) || [];\n\n setChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n setInitialChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n }\n }, [data]);\n\n useEffect(() => {\n if (navigation) {\n navigation.setOptions({\n headerTitleAlign: 'left',\n headerTitleStyle: {\n borderBottomWidth: 1,\n },\n headerLeft: () => (\n <Button\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 variant={'link'}\n >\n <ButtonText>\n <MaterialIcons name=\"close\" size={24} color=\"black\" />\n </ButtonText>\n </Button>\n ),\n headerRight: () => (\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n variant={'link'}\n >\n <ButtonText>Create</ButtonText>\n </Button>\n ),\n // headerLeft:()=><></>,\n // headerRight: () => (\n // <Button onPress={() => navigation.goBack()} variant={'link'}>\n // <ButtonText><MaterialIcons name=\"close\" size={24} color=\"black\" /></ButtonText>\n // </Button>\n // ),\n headerTitle: () => (\n <Box>\n <Text color={colors.black} className=\"text-[15] font-bold\">\n Channels\n </Text>\n </Box>\n ),\n headerStyle: {\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }\n }, [navigation, orgName]);\n\n const openInbox = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n hideTabBar: true,\n });\n },\n [navigation],\n );\n\n const searchChannels = useCallback(\n (text: string) => {\n setSearchQuery(text);\n if (text) {\n const searchedChannel = intialChannels.filter((o: any) =>\n o?.title?.toLowerCase().includes(text?.toLowerCase()),\n );\n setChannels(searchedChannel);\n } else {\n setChannels(intialChannels);\n }\n },\n [intialChannels],\n );\n\n const renderChannelIcon = useCallback((type: RoomType) => {\n if (type === RoomType.Private) {\n return <FontAwesome color={'#525252'} name=\"lock\" size={18} />;\n } else {\n return <Octicons color=\"#525252\" name=\"hash\" size={18} />;\n }\n }, []);\n\n const renderChannelItem = useCallback(\n ({ item }: any) => (\n <Pressable onPress={() => openInbox(item)}>\n {({ pressed }) => (\n <Box\n className={`py-4 ${pressed ? 'bg-gray-100' : 'bg-white'} border-b border-gray-200`}\n style={{ borderBottomColor: colors.gray[300] }}\n >\n <HStack className=\"px-4 items-center\">\n <Box className=\"mr-2\">{renderChannelIcon(item.type)}</Box>\n <VStack>\n <Text\n className=\"font-medium text-lg text-gray-900\"\n numberOfLines={1}\n ellipsizeMode=\"tail\"\n >\n {item.title}\n </Text>\n </VStack>\n </HStack>\n </Box>\n )}\n </Pressable>\n ),\n [openInbox, renderChannelIcon],\n );\n\n const renderEmptyList = useCallback(\n () => (\n <Center className=\"flex-1 py-10\">\n {loading ? (\n <VStack className=\"space-y-3 items-center\">\n <Spinner size=\"large\" color={colors.blue[500]} />\n <Text color={colors.gray[600]}>Loading channels...</Text>\n </VStack>\n ) : (\n <VStack className=\"space-y-3 items-center px-4\">\n <Box className=\"rounded-full bg-gray-100 p-4\">\n <Octicons name=\"hash\" size={32} color={colors.gray[400]} />\n </Box>\n <Heading size=\"sm\" style={{ color: colors.gray[800] }}>\n No Channels Found\n </Heading>\n {searchQuery ? (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n No channels match your search \"{searchQuery}\"\n </Text>\n ) : (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n Create a new channel to get started\n </Text>\n )}\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n className=\"mt-2\"\n >\n <ButtonText>Create Channel</ButtonText>\n </Button>\n </VStack>\n )}\n </Center>\n ),\n [loading, searchQuery, navigation, orgName],\n );\n\n const keyExtractor = useCallback((item: any) => item.id.toString(), []);\n\n const navigateToAddChannel = useCallback(() => {\n navigation.navigate(NavigationRoutes.AddChannel, { orgName });\n }, [navigation, orgName]);\n\n return (\n <SafeAreaView style={styles.safeArea}>\n <StatusBar style=\"dark\" />\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2\" style={styles.searchContainer}>\n <Input\n variant=\"outline\"\n className=\"bg-white rounded-3xl border border-gray-300\"\n style={styles.searchInput}\n size=\"lg\"\n >\n <InputSlot className=\"pl-3\">\n <InputIcon color={colors.gray[500]} as={SearchIcon} />\n </InputSlot>\n <InputField\n type=\"text\"\n size=\"md\"\n placeholder=\"Search channels\"\n placeholderTextColor={colors.gray[400]}\n className=\"px-3 py-2 text-base\"\n value={searchQuery}\n onChange={(event) => searchChannels(event.nativeEvent.text)}\n autoCapitalize=\"none\"\n autoCorrect={false}\n clearButtonMode=\"while-editing\"\n />\n </Input>\n </Box>\n\n <Box className=\"flex-1\">\n <FlatList\n contentContainerStyle={styles.flatListContent}\n data={channels}\n keyExtractor={keyExtractor}\n renderItem={renderChannelItem}\n ListEmptyComponent={renderEmptyList}\n showsVerticalScrollIndicator={false}\n initialNumToRender={10}\n maxToRenderPerBatch={10}\n windowSize={10}\n />\n </Box>\n\n {/* <Fab\n onPress={navigateToAddChannel}\n className=\"bg-blue-500 mb-16 mr-4\"\n $pressed-className=\"bg-blue-600\"\n size=\"lg\"\n placement=\"bottom right\"\n >\n <AntDesign color=\"white\" name=\"plus\" size={24} />\n </Fab> */}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n safeArea: {\n flex: 1,\n backgroundColor: 'white',\n },\n searchContainer: {\n paddingVertical: 10,\n },\n searchInput: {\n borderRadius: 10,\n borderColor: colors.gray[300],\n paddingHorizontal: 10,\n },\n flatListContent: {\n flexGrow: 1,\n paddingBottom: 80,\n },\n channelTitle: {\n color: colors.gray[900],\n fontSize: 16,\n fontWeight: '500',\n },\n channelDescription: {\n color: colors.gray[600],\n fontSize: 14,\n marginTop: 2,\n },\n});\n\nexport default React.memo(Channels);\n"],"names":["React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesScreen.js","sources":["../../../src/screens/Files/FilesScreen.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport { StackNavigationProp } from '@react-navigation/stack';\nimport React, { useState } from 'react';\nimport { Pressable, TouchableOpacity } from 'react-native';\nimport { Actionsheet, Box, Text, Button, Image, View, FlatList } from '@admin-layout/gluestack-ui-mobile';\nimport { StatusBar } from 'expo-status-bar';\nimport { Header, Tiles } from '../../components';\nimport { NavigationRoutes } from '../../constants/routes';\ntype FilesScreenProps = {\n navigation: any;\n};\n\nconst FilesScreen = ({ navigation }: FilesScreenProps) => {\n return (\n <Box className=\"py-2 bg-white flex-1 justify-center items-center\">\n <Text className=\"pb-12 text-center text-base font-bold\">Files</Text>\n </Box>\n );\n};\n\nexport default FilesScreen;\n"],"names":["React"],"mappings":"2FAWA,MAAM,cAAc,CAAC;AAAA,EACnB;AACF,CAAwB,KAAA;AACtB,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAU,EAAA,kDAAA,EAAA,+CACX,IAAK,EAAA,EAAA,SAAA,EAAU,uCAAwC,EAAA,EAAA,OAAK,CACjE,CAAA;AACR"}
1
+ {"version":3,"file":"FilesScreen.js","sources":["../../../src/screens/Files/FilesScreen.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport { StackNavigationProp } from '@react-navigation/stack';\nimport React, { useState } from 'react';\nimport { Pressable, TouchableOpacity } from 'react-native';\nimport { Actionsheet, Box, Text, Button, Image, View, FlatList } from '@admin-layout/gluestack-ui-mobile';\nimport { StatusBar } from 'expo-status-bar';\nimport { Header, Tiles } from '../../components';\nimport { NavigationRoutes } from '../../constants/routes';\ntype FilesScreenProps = {\n navigation: any;\n};\n\nconst FilesScreen = ({ navigation }: FilesScreenProps) => {\n return (\n <Box className=\"py-2 bg-white flex-1 justify-center items-center\">\n <Text className=\"pb-12 text-center text-base font-bold\">Files</Text>\n </Box>\n );\n};\n\nexport default FilesScreen;\n"],"names":["React"],"mappings":"2FAWA,MAAM,cAAc,CAAC;AAAA,EACnB;AACF,CAAA,KAAwB;AACtB,EAAA,uBAAOA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAA,EAAU,kDAAA,EAAA,+CACX,IAAA,EAAA,EAAK,SAAA,EAAU,uCAAA,EAAA,EAAwC,OAAK,CACjE,CAAA;AACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"Channels.js","sources":["../../../../../src/screens/Home/Components/Channels/Channels.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useCallback, useMemo, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { NavigationRoutes } from '../../../../constants';\nimport { Pressable, View, FlatList, Box, Text, HStack, VStack, Icon } from '@admin-layout/gluestack-ui-mobile';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport styles from '../../styles';\nimport { orderBy, uniqBy, take } from 'lodash-es';\nimport { RoomType } from 'common';\nimport { FontAwesome, Feather, MaterialIcons } from '@expo/vector-icons';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext, ChannelsDataContext } from '../../HomeScreen';\n\nconst Channels = () => {\n const navigation = useNavigation<any>();\n const [expandable, setExpendable] = useState(true);\n const user: any = useSelector(userSelector, shallowEqual);\n const { orgName } = useDrawerLayout();\n const isFocused = useIsFocused();\n const { shouldRefetch } = useContext(RefetchContext);\n\n // Use shared channels data from context instead of making separate query\n const { getChannelsForHome, loading, error, refetchChannels, hasChannels } = useContext(ChannelsDataContext);\n\n // Get channels with home-specific limit (10 channels)\n const organizationChannels = useMemo(() => {\n return getChannelsForHome(10);\n }, [getChannelsForHome]);\n\n // Use RefetchContext to control when to refetch data\n useFocusEffect(\n useCallback(() => {\n if (shouldRefetch && orgName) {\n refetchChannels();\n }\n }, [shouldRefetch, orgName, refetchChannels]),\n );\n\n const openInbox = useCallback(\n (id: any, title: any, totalMembers: any, type?: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: id?.toString(),\n title: title?.toString(),\n totalMembers: totalMembers,\n channelType: type,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderChannelItem = useCallback(\n ({ item }) => (\n <TouchableOpacity\n onPress={() => openInbox(item?.id, item?.title, item?.members?.length, item?.type)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Text className=\"text-gray-600 flex-none\">#</Text>\n <Text className=\"text-gray-900 flex-1 text-base\">{item.title}</Text>\n </HStack>\n </TouchableOpacity>\n ),\n [openInbox],\n );\n\n const ListEmptyComponent = useCallback(() => {\n // Get error message if any\n const errorMessage = error\n ? error.message.includes(\"Service 'ChannelService.getAll' is not found\")\n ? 'Channel service is temporarily unavailable. Please try again later.'\n : error.message\n : null;\n\n return (\n <Box style={{ padding: 12 }}>\n {errorMessage ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {errorMessage}\n </Text>\n <TouchableOpacity onPress={refetchChannels}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <Feather name=\"hash\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No channels available</Text>\n </Box>\n )}\n </Box>\n );\n }, [error, refetchChannels]);\n\n const ListFooterComponent = useCallback(() => {\n // Use hasChannels and channel count from context for more accurate data\n const showMoreChannels = hasChannels && organizationChannels.length >= 10;\n\n return (\n <VStack>\n {showMoreChannels && (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Channels, { orgName })}\n style={{ paddingVertical: 8, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <MaterialIcons color=\"#616061\" name=\"search\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Browse all Channels</Text>\n </HStack>\n </TouchableOpacity>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n style={{ paddingVertical: 5, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Add Channels</Text>\n </HStack>\n </TouchableOpacity>\n </VStack>\n );\n }, [hasChannels, organizationChannels.length, orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setExpendable(!expandable)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Channels\n </Text>\n <FontAwesome\n name={expandable ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [expandable]);\n\n if (!expandable) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationChannels?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'channel') + '-' + item?.title}\n data={organizationChannels}\n renderItem={renderChannelItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <ListEmptyComponent />\n )}\n </Box>\n );\n};\n\nexport default Channels;\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Channels.js","sources":["../../../../../src/screens/Home/Components/Channels/Channels.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useCallback, useMemo, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { NavigationRoutes } from '../../../../constants';\nimport { Pressable, View, FlatList, Box, Text, HStack, VStack, Icon } from '@admin-layout/gluestack-ui-mobile';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport styles from '../../styles';\nimport { orderBy, uniqBy, take } from 'lodash-es';\nimport { RoomType } from 'common';\nimport { FontAwesome, Feather, MaterialIcons } from '@expo/vector-icons';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext, ChannelsDataContext } from '../../HomeScreen';\n\nconst Channels = () => {\n const navigation = useNavigation<any>();\n const [expandable, setExpendable] = useState(true);\n const user: any = useSelector(userSelector, shallowEqual);\n const { orgName } = useDrawerLayout();\n const isFocused = useIsFocused();\n const { shouldRefetch } = useContext(RefetchContext);\n\n // Use shared channels data from context instead of making separate query\n const { getChannelsForHome, loading, error, refetchChannels, hasChannels } = useContext(ChannelsDataContext);\n\n // Get channels with home-specific limit (10 channels)\n const organizationChannels = useMemo(() => {\n return getChannelsForHome(10);\n }, [getChannelsForHome]);\n\n // Use RefetchContext to control when to refetch data\n useFocusEffect(\n useCallback(() => {\n if (shouldRefetch && orgName) {\n refetchChannels();\n }\n }, [shouldRefetch, orgName, refetchChannels]),\n );\n\n const openInbox = useCallback(\n (id: any, title: any, totalMembers: any, type?: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: id?.toString(),\n title: title?.toString(),\n totalMembers: totalMembers,\n channelType: type,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderChannelItem = useCallback(\n ({ item }) => (\n <TouchableOpacity\n onPress={() => openInbox(item?.id, item?.title, item?.members?.length, item?.type)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Text className=\"text-gray-600 flex-none\">#</Text>\n <Text className=\"text-gray-900 flex-1 text-base\">{item.title}</Text>\n </HStack>\n </TouchableOpacity>\n ),\n [openInbox],\n );\n\n const ListEmptyComponent = useCallback(() => {\n // Get error message if any\n const errorMessage = error\n ? error.message.includes(\"Service 'ChannelService.getAll' is not found\")\n ? 'Channel service is temporarily unavailable. Please try again later.'\n : error.message\n : null;\n\n return (\n <Box style={{ padding: 12 }}>\n {errorMessage ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {errorMessage}\n </Text>\n <TouchableOpacity onPress={refetchChannels}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <Feather name=\"hash\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No channels available</Text>\n </Box>\n )}\n </Box>\n );\n }, [error, refetchChannels]);\n\n const ListFooterComponent = useCallback(() => {\n // Use hasChannels and channel count from context for more accurate data\n const showMoreChannels = hasChannels && organizationChannels.length >= 10;\n\n return (\n <VStack>\n {showMoreChannels && (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Channels, { orgName })}\n style={{ paddingVertical: 8, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <MaterialIcons color=\"#616061\" name=\"search\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Browse all Channels</Text>\n </HStack>\n </TouchableOpacity>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n style={{ paddingVertical: 5, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Add Channels</Text>\n </HStack>\n </TouchableOpacity>\n </VStack>\n );\n }, [hasChannels, organizationChannels.length, orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setExpendable(!expandable)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Channels\n </Text>\n <FontAwesome\n name={expandable ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [expandable]);\n\n if (!expandable) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationChannels?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'channel') + '-' + item?.title}\n data={organizationChannels}\n renderItem={renderChannelItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <ListEmptyComponent />\n )}\n </Box>\n );\n};\n\nexport default Channels;\n"],"names":["React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DirectChannels.js","sources":["../../../../../src/screens/Home/Components/DirectChannels/DirectChannels.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useEffect, useCallback, useMemo, useRef, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styles from '../../styles';\nimport {\n View,\n FlatList,\n HStack,\n Icon,\n Box,\n Text,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n AddIcon,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { startCase, orderBy } from 'lodash-es';\nimport { RoomType } from 'common';\nimport { useAddDirectChannelMutation, GetChannelsByUserDocument } from '../../../../queries/slackuiQueries';\nimport { NavigationRoutes } from '../../../../constants';\nimport { MaterialIcons, Feather, FontAwesome } from '@expo/vector-icons';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext, ChannelsDataContext } from '../../HomeScreen';\nimport { gql } from '@apollo/client';\n\n// Define a type for the channel data\ninterface Channel {\n id: string;\n title: string;\n displayName: string;\n type: string;\n members: Array<{\n id: string;\n user: any;\n }>;\n}\n\ninterface ChannelsByUserData {\n channelsByUser: Channel[];\n}\n\nconst DirectChannels = () => {\n const navigation = useNavigation<any>();\n const [expandableMessage, setExpendableMessage] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { orgName } = useDrawerLayout();\n const { shouldRefetch } = useContext(RefetchContext);\n\n // Use shared direct channels data from context instead of making separate query\n const { getDirectChannelsForHome, loading, error, refetchChannels, hasDirectChannels } =\n useContext(ChannelsDataContext);\n\n // Refs to avoid circular dependencies and track creation state\n const reFetchDirectChannelsRef = useRef<() => void>(() => {});\n const isCreatingDirectChannel = useRef(false);\n\n // GraphQL Mutations - keep this as it's specific to direct channels\n const [addDirectChannel] = useAddDirectChannelMutation({\n update: (cache, { data }) => {\n // Update the cache with the new channel\n try {\n if (data?.createDirectChannel) {\n // Use cache.modify instead of readQuery/writeQuery for better integration with type policies\n cache.modify({\n fields: {\n channelsByUser: (existingChannels = [], { readField, storeFieldName }) => {\n // Get variables from the storeFieldName to ensure we're modifying the correct query\n // Only do this if we can extract the correct variables from the storeFieldName\n if (!storeFieldName.includes(RoomType.Direct) || !storeFieldName.includes(orgName)) {\n return existingChannels;\n }\n\n // Check if the new channel already exists in the cache\n const newChannelRef = cache.writeFragment({\n data: data.createDirectChannel,\n fragment: gql`\n fragment NewChannel on Channel {\n id\n }\n `,\n });\n\n // Check if this channel already exists\n const channelExists = existingChannels.some(\n (channelRef) => readField('id', channelRef) === data.createDirectChannel.id,\n );\n\n // Only add the channel if it doesn't already exist\n if (!channelExists) {\n return [newChannelRef, ...existingChannels];\n }\n\n return existingChannels;\n },\n },\n });\n }\n } catch (err) {\n console.error('Error updating cache after adding direct channel:', err);\n }\n },\n optimisticResponse: (variables) => {\n // Create an optimistic response that mimics the expected server response\n return {\n __typename: 'Mutation',\n createDirectChannel: {\n __typename: 'Channel',\n id: `temp-id-${Date.now()}`, // Temporary ID that will be replaced when the server responds\n title: 'DIRECT CHANNEL',\n displayName: 'DIRECT CHANNEL',\n type: RoomType.Direct,\n members: [\n {\n __typename: 'ChannelMember',\n id: `temp-member-${Date.now()}`,\n user: {\n __typename: 'User',\n id: user?.id,\n givenName: user?.givenName || user?.username || 'You',\n username: user?.username,\n picture: user?.picture,\n },\n },\n ],\n },\n };\n },\n onCompleted: () => {\n // Reset the creation flag when successfully completed\n isCreatingDirectChannel.current = false;\n },\n onError: (error) => {\n // Reset the creation flag on error and only log if it's not a \"channel already exists\" error\n isCreatingDirectChannel.current = false;\n if (!error.message.includes('Channel already exists')) {\n console.error('Failed to create direct channel:', error.message);\n }\n },\n });\n\n // Get direct channels with home-specific limit (20 channels)\n const organizationDirectChannels = useMemo(() => {\n return getDirectChannelsForHome(20);\n }, [getDirectChannelsForHome]);\n\n // Check and create self-DM channel if needed\n const checkAndCreateSelfDM = useCallback(() => {\n if (!user?.id || isCreatingDirectChannel.current || loading) {\n return;\n }\n\n const directChannelsData = getDirectChannelsForHome(20);\n if (directChannelsData) {\n const selfDMChannels = directChannelsData.filter(\n (channel) => channel.members.length === 1 && channel.members[0]?.user?.id === user?.id,\n );\n\n // Only create if no self-DM channel exists and we're not already creating one\n if (selfDMChannels.length === 0 && !isCreatingDirectChannel.current) {\n isCreatingDirectChannel.current = true;\n addDirectChannel({\n variables: {\n receiver: [user.id],\n displayName: 'DIRECT CHANNEL',\n channelOptions: { schemeAdmin: true },\n },\n });\n }\n }\n }, [user?.id, loading, getDirectChannelsForHome, addDirectChannel]);\n\n // Initialize reFetchDirectChannels function\n const reFetchDirectChannels = useCallback(() => {\n if (orgName) {\n refetchChannels();\n }\n }, [orgName, refetchChannels]);\n\n // Check for self-DM channel when data changes (with debouncing)\n useEffect(() => {\n if (!loading && organizationDirectChannels !== undefined) {\n const timer = setTimeout(checkAndCreateSelfDM, 500); // Increased delay for stability\n return () => clearTimeout(timer);\n }\n }, [organizationDirectChannels, loading, checkAndCreateSelfDM]);\n\n // Set ref for future calls\n useEffect(() => {\n reFetchDirectChannelsRef.current = reFetchDirectChannels;\n }, [reFetchDirectChannels]);\n\n // Use RefetchContext to control when to refetch data (less aggressive)\n useEffect(() => {\n if (shouldRefetch && orgName && !isCreatingDirectChannel.current) {\n reFetchDirectChannels();\n }\n }, [shouldRefetch, orgName, reFetchDirectChannels]);\n\n // Focus effect to fetch data when screen is focused (less aggressive)\n useFocusEffect(\n useCallback(() => {\n if (orgName && !isCreatingDirectChannel.current) {\n reFetchDirectChannels();\n }\n }, [orgName, reFetchDirectChannels]),\n );\n\n const openInbox = useCallback(\n (id: any, title: any, totalMembers: any, type?: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: id?.toString(),\n title: title?.toString(),\n totalMembers: totalMembers,\n channelType: type,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderDirectChannelItem = useCallback(\n ({ item }) => {\n const isSelfDM = item.members?.length === 1 && item.members?.[0]?.user?.id === user?.id;\n\n const member =\n item.members?.filter((m: any) => m?.user?.id !== user?.id)?.[0]?.user || item.members?.[0]?.user;\n\n const getUserName = () => {\n if (isSelfDM) {\n return user?.profile?.name || user?.profile?.nickname || 'You';\n }\n\n return (\n member?.givenName + ' ' + member?.familyName || member?.givenName || member?.username || 'Unknown'\n );\n };\n\n return (\n <TouchableOpacity\n onPress={() => openInbox(item.id, getUserName(), item.members?.length, item.type)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Avatar\n size=\"xs\"\n className=\"rounded-md\"\n style={{ backgroundColor: getUserAvatarColor(getUserName()) }}\n >\n <AvatarFallbackText>{getUserName()}</AvatarFallbackText>\n {member?.picture && (\n <AvatarImage\n className=\"rounded-md\"\n source={{ uri: member.picture }}\n alt={getUserName()}\n />\n )}\n </Avatar>\n <Text className=\"text-gray-900 flex-1 text-base\">\n {getUserName()}\n {isSelfDM && ' (you)'}\n </Text>\n </HStack>\n </TouchableOpacity>\n );\n },\n [user, openInbox],\n );\n\n const getUserAvatarColor = (name: string) => {\n const colorOptions = [\n '#E57373', // Red\n '#F06292', // Pink\n '#BA68C8', // Purple\n '#9575CD', // Deep Purple\n '#7986CB', // Indigo\n '#64B5F6', // Blue\n '#4FC3F7', // Light Blue\n '#4DD0E1', // Cyan\n '#4DB6AC', // Teal\n '#81C784', // Green\n '#AED581', // Light Green\n '#DCE775', // Lime\n '#FFD54F', // Amber\n '#FFB74D', // Orange\n '#FF8A65', // Deep Orange\n ];\n\n // Simple hash function to map names to consistent colors\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n hash = Math.abs(hash);\n return colorOptions[hash % colorOptions.length];\n };\n\n const ListEmptyComponent = useCallback(() => {\n return (\n <Box style={{ padding: 12 }}>\n {error ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {error.message.includes(\"Service 'ChannelService.getAll' is not found\")\n ? 'Direct messages are temporarily unavailable. Please try again later.'\n : error.message}\n </Text>\n <TouchableOpacity onPress={reFetchDirectChannels}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : loading ? (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Text style={{ color: '#616061' }}>Loading...</Text>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <MaterialIcons name=\"person-outline\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No direct messages yet</Text>\n </Box>\n )}\n </Box>\n );\n }, [error, loading, reFetchDirectChannels]);\n\n const ListFooterComponent = useCallback(() => {\n return (\n <TouchableOpacity\n // onPress={() => navigation.navigate(NavigationRoutes.AddPeople, { orgName })}\n onPress={() => navigation.navigate(NavigationRoutes.SearchAddChannel, { orgName })}\n style={{ paddingVertical: 6, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Start a new message</Text>\n </HStack>\n </TouchableOpacity>\n );\n }, [orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setExpendableMessage(!expandableMessage)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Direct Messages\n </Text>\n <FontAwesome\n name={expandableMessage ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [expandableMessage]);\n\n if (!expandableMessage) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationDirectChannels?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'direct') + '-' + item?.title}\n data={organizationDirectChannels}\n renderItem={renderDirectChannelItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <Box>\n <ListEmptyComponent />\n <ListFooterComponent />\n </Box>\n )}\n </Box>\n );\n};\n\nexport default DirectChannels;\n"],"names":["error","_a","_b","React"],"mappings":"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"}
1
+ {"version":3,"file":"DirectChannels.js","sources":["../../../../../src/screens/Home/Components/DirectChannels/DirectChannels.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useEffect, useCallback, useMemo, useRef, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styles from '../../styles';\nimport {\n View,\n FlatList,\n HStack,\n Icon,\n Box,\n Text,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n AddIcon,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { startCase, orderBy } from 'lodash-es';\nimport { RoomType } from 'common';\nimport { useAddDirectChannelMutation, GetChannelsByUserDocument } from '../../../../queries/slackuiQueries';\nimport { NavigationRoutes } from '../../../../constants';\nimport { MaterialIcons, Feather, FontAwesome } from '@expo/vector-icons';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext, ChannelsDataContext } from '../../HomeScreen';\nimport { gql } from '@apollo/client';\n\n// Define a type for the channel data\ninterface Channel {\n id: string;\n title: string;\n displayName: string;\n type: string;\n members: Array<{\n id: string;\n user: any;\n }>;\n}\n\ninterface ChannelsByUserData {\n channelsByUser: Channel[];\n}\n\nconst DirectChannels = () => {\n const navigation = useNavigation<any>();\n const [expandableMessage, setExpendableMessage] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { orgName } = useDrawerLayout();\n const { shouldRefetch } = useContext(RefetchContext);\n\n // Use shared direct channels data from context instead of making separate query\n const { getDirectChannelsForHome, loading, error, refetchChannels, hasDirectChannels } =\n useContext(ChannelsDataContext);\n\n // Refs to avoid circular dependencies and track creation state\n const reFetchDirectChannelsRef = useRef<() => void>(() => {});\n const isCreatingDirectChannel = useRef(false);\n\n // GraphQL Mutations - keep this as it's specific to direct channels\n const [addDirectChannel] = useAddDirectChannelMutation({\n update: (cache, { data }) => {\n // Update the cache with the new channel\n try {\n if (data?.createDirectChannel) {\n // Use cache.modify instead of readQuery/writeQuery for better integration with type policies\n cache.modify({\n fields: {\n channelsByUser: (existingChannels = [], { readField, storeFieldName }) => {\n // Get variables from the storeFieldName to ensure we're modifying the correct query\n // Only do this if we can extract the correct variables from the storeFieldName\n if (!storeFieldName.includes(RoomType.Direct) || !storeFieldName.includes(orgName)) {\n return existingChannels;\n }\n\n // Check if the new channel already exists in the cache\n const newChannelRef = cache.writeFragment({\n data: data.createDirectChannel,\n fragment: gql`\n fragment NewChannel on Channel {\n id\n }\n `,\n });\n\n // Check if this channel already exists\n const channelExists = existingChannels.some(\n (channelRef) => readField('id', channelRef) === data.createDirectChannel.id,\n );\n\n // Only add the channel if it doesn't already exist\n if (!channelExists) {\n return [newChannelRef, ...existingChannels];\n }\n\n return existingChannels;\n },\n },\n });\n }\n } catch (err) {\n console.error('Error updating cache after adding direct channel:', err);\n }\n },\n optimisticResponse: (variables) => {\n // Create an optimistic response that mimics the expected server response\n return {\n __typename: 'Mutation',\n createDirectChannel: {\n __typename: 'Channel',\n id: `temp-id-${Date.now()}`, // Temporary ID that will be replaced when the server responds\n title: 'DIRECT CHANNEL',\n displayName: 'DIRECT CHANNEL',\n type: RoomType.Direct,\n members: [\n {\n __typename: 'ChannelMember',\n id: `temp-member-${Date.now()}`,\n user: {\n __typename: 'User',\n id: user?.id,\n givenName: user?.givenName || user?.username || 'You',\n username: user?.username,\n picture: user?.picture,\n },\n },\n ],\n },\n };\n },\n onCompleted: () => {\n // Reset the creation flag when successfully completed\n isCreatingDirectChannel.current = false;\n },\n onError: (error) => {\n // Reset the creation flag on error and only log if it's not a \"channel already exists\" error\n isCreatingDirectChannel.current = false;\n if (!error.message.includes('Channel already exists')) {\n console.error('Failed to create direct channel:', error.message);\n }\n },\n });\n\n // Get direct channels with home-specific limit (20 channels)\n const organizationDirectChannels = useMemo(() => {\n return getDirectChannelsForHome(20);\n }, [getDirectChannelsForHome]);\n\n // Check and create self-DM channel if needed\n const checkAndCreateSelfDM = useCallback(() => {\n if (!user?.id || isCreatingDirectChannel.current || loading) {\n return;\n }\n\n const directChannelsData = getDirectChannelsForHome(20);\n if (directChannelsData) {\n const selfDMChannels = directChannelsData.filter(\n (channel) => channel.members.length === 1 && channel.members[0]?.user?.id === user?.id,\n );\n\n // Only create if no self-DM channel exists and we're not already creating one\n if (selfDMChannels.length === 0 && !isCreatingDirectChannel.current) {\n isCreatingDirectChannel.current = true;\n addDirectChannel({\n variables: {\n receiver: [user.id],\n displayName: 'DIRECT CHANNEL',\n channelOptions: { schemeAdmin: true },\n },\n });\n }\n }\n }, [user?.id, loading, getDirectChannelsForHome, addDirectChannel]);\n\n // Initialize reFetchDirectChannels function\n const reFetchDirectChannels = useCallback(() => {\n if (orgName) {\n refetchChannels();\n }\n }, [orgName, refetchChannels]);\n\n // Check for self-DM channel when data changes (with debouncing)\n useEffect(() => {\n if (!loading && organizationDirectChannels !== undefined) {\n const timer = setTimeout(checkAndCreateSelfDM, 500); // Increased delay for stability\n return () => clearTimeout(timer);\n }\n }, [organizationDirectChannels, loading, checkAndCreateSelfDM]);\n\n // Set ref for future calls\n useEffect(() => {\n reFetchDirectChannelsRef.current = reFetchDirectChannels;\n }, [reFetchDirectChannels]);\n\n // Use RefetchContext to control when to refetch data (less aggressive)\n useEffect(() => {\n if (shouldRefetch && orgName && !isCreatingDirectChannel.current) {\n reFetchDirectChannels();\n }\n }, [shouldRefetch, orgName, reFetchDirectChannels]);\n\n // Focus effect to fetch data when screen is focused (less aggressive)\n useFocusEffect(\n useCallback(() => {\n if (orgName && !isCreatingDirectChannel.current) {\n reFetchDirectChannels();\n }\n }, [orgName, reFetchDirectChannels]),\n );\n\n const openInbox = useCallback(\n (id: any, title: any, totalMembers: any, type?: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: id?.toString(),\n title: title?.toString(),\n totalMembers: totalMembers,\n channelType: type,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderDirectChannelItem = useCallback(\n ({ item }) => {\n const isSelfDM = item.members?.length === 1 && item.members?.[0]?.user?.id === user?.id;\n\n const member =\n item.members?.filter((m: any) => m?.user?.id !== user?.id)?.[0]?.user || item.members?.[0]?.user;\n\n const getUserName = () => {\n if (isSelfDM) {\n return user?.profile?.name || user?.profile?.nickname || 'You';\n }\n\n return (\n member?.givenName + ' ' + member?.familyName || member?.givenName || member?.username || 'Unknown'\n );\n };\n\n return (\n <TouchableOpacity\n onPress={() => openInbox(item.id, getUserName(), item.members?.length, item.type)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Avatar\n size=\"xs\"\n className=\"rounded-md\"\n style={{ backgroundColor: getUserAvatarColor(getUserName()) }}\n >\n <AvatarFallbackText>{getUserName()}</AvatarFallbackText>\n {member?.picture && (\n <AvatarImage\n className=\"rounded-md\"\n source={{ uri: member.picture }}\n alt={getUserName()}\n />\n )}\n </Avatar>\n <Text className=\"text-gray-900 flex-1 text-base\">\n {getUserName()}\n {isSelfDM && ' (you)'}\n </Text>\n </HStack>\n </TouchableOpacity>\n );\n },\n [user, openInbox],\n );\n\n const getUserAvatarColor = (name: string) => {\n const colorOptions = [\n '#E57373', // Red\n '#F06292', // Pink\n '#BA68C8', // Purple\n '#9575CD', // Deep Purple\n '#7986CB', // Indigo\n '#64B5F6', // Blue\n '#4FC3F7', // Light Blue\n '#4DD0E1', // Cyan\n '#4DB6AC', // Teal\n '#81C784', // Green\n '#AED581', // Light Green\n '#DCE775', // Lime\n '#FFD54F', // Amber\n '#FFB74D', // Orange\n '#FF8A65', // Deep Orange\n ];\n\n // Simple hash function to map names to consistent colors\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n hash = Math.abs(hash);\n return colorOptions[hash % colorOptions.length];\n };\n\n const ListEmptyComponent = useCallback(() => {\n return (\n <Box style={{ padding: 12 }}>\n {error ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {error.message.includes(\"Service 'ChannelService.getAll' is not found\")\n ? 'Direct messages are temporarily unavailable. Please try again later.'\n : error.message}\n </Text>\n <TouchableOpacity onPress={reFetchDirectChannels}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : loading ? (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Text style={{ color: '#616061' }}>Loading...</Text>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <MaterialIcons name=\"person-outline\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No direct messages yet</Text>\n </Box>\n )}\n </Box>\n );\n }, [error, loading, reFetchDirectChannels]);\n\n const ListFooterComponent = useCallback(() => {\n return (\n <TouchableOpacity\n // onPress={() => navigation.navigate(NavigationRoutes.AddPeople, { orgName })}\n onPress={() => navigation.navigate(NavigationRoutes.SearchAddChannel, { orgName })}\n style={{ paddingVertical: 6, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Start a new message</Text>\n </HStack>\n </TouchableOpacity>\n );\n }, [orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setExpendableMessage(!expandableMessage)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Direct Messages\n </Text>\n <FontAwesome\n name={expandableMessage ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [expandableMessage]);\n\n if (!expandableMessage) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationDirectChannels?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'direct') + '-' + item?.title}\n data={organizationDirectChannels}\n renderItem={renderDirectChannelItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <Box>\n <ListEmptyComponent />\n <ListFooterComponent />\n </Box>\n )}\n </Box>\n );\n};\n\nexport default DirectChannels;\n"],"names":["error","_a","_b","React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/screens/Home/Components/InviteMembers/index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableHighlight, Share, TouchableOpacity } from 'react-native';\nimport { Ionicons, AntDesign, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { useDisclose } from '../../../../hooks/useDisclose';\nimport { NavigationRoutes, colors } from '../../../../constants';\nimport { Actionsheet } from '../../../../components';\nimport { useOrganizationSharableLinkQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks/useDrawerLayout';\nimport { config } from '../../../../config';\nimport Colors from 'tailwindcss/colors';\n\nexport const InviteMembers = () => {\n const { isOpen, onOpen, onClose } = useDisclose();\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n\n // Only fetch sharable link when needed (when action sheet is open)\n const { data: organizationSharableLink } = useOrganizationSharableLinkQuery(orgName, {\n fetchPolicy: 'cache-and-network',\n skip: !isOpen,\n });\n\n const shareLink = async () => {\n try {\n await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n };\n\n const actionItems = [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.green,\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n }}\n >\n <Ionicons color={'white'} name=\"share-outline\" size={22} />\n <Text className=\"text-white\" style={{ color: 'white', fontWeight: '600', fontSize: 16 }}>\n Share a Link\n </Text>\n </HStack>\n ),\n onPress: shareLink,\n },\n {\n id: 2,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <AntDesign color={Colors.gray[900]} name=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add from Contacts</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {\n orgName,\n }),\n },\n // {\n // id: 3,\n // label: (\n // <HStack\n // space={'sm'}\n // className=\"flex-1 justify-center items-center\"\n // style={{\n // paddingVertical: 12,\n // borderRadius: 8,\n // marginHorizontal: 10,\n // marginVertical: 5,\n // backgroundColor: Colors.gray[50],\n // }}\n // >\n // <AntDesign color={Colors.gray[900]} name=\"google\" size={22} />\n // <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n // Add from Google Contacts\n // </Text>\n // </HStack>\n // ),\n // onPress: () => {\n // // Navigate to Google contacts integration\n // // This would be implemented based on your app's functionality\n // },\n // },\n {\n id: 4,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <MaterialCommunityIcons color={Colors.gray[900]} name=\"email-outline\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add by Email</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleByEmail, {\n orgName,\n }),\n },\n ];\n\n return (\n <Box style={{ marginBottom: 8, paddingHorizontal: 12 }}>\n {/* Floating Action Button to open ActionSheet */}\n <TouchableOpacity onPress={onOpen}>\n <Box className=\"py-3 \">\n <HStack space={'sm'} className=\"w-full flex-1 items-center space-x-3\">\n <Box>\n <Ionicons name=\"add\" size={20} color=\"black\" />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableOpacity>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n isShowCancelButton={false}\n header={\n <Text\n className=\"text-center font-bold text-lg bg-white\"\n style={{\n paddingVertical: 16,\n color: Colors.gray[900],\n }}\n >\n Invite people to join your team\n </Text>\n }\n />\n </Box>\n );\n};\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/screens/Home/Components/InviteMembers/index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableHighlight, Share, TouchableOpacity } from 'react-native';\nimport { Ionicons, AntDesign, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { useDisclose } from '../../../../hooks/useDisclose';\nimport { NavigationRoutes, colors } from '../../../../constants';\nimport { Actionsheet } from '../../../../components';\nimport { useOrganizationSharableLinkQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks/useDrawerLayout';\nimport { config } from '../../../../config';\nimport Colors from 'tailwindcss/colors';\n\nexport const InviteMembers = () => {\n const { isOpen, onOpen, onClose } = useDisclose();\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n\n // Only fetch sharable link when needed (when action sheet is open)\n const { data: organizationSharableLink } = useOrganizationSharableLinkQuery(orgName, {\n fetchPolicy: 'cache-and-network',\n skip: !isOpen,\n });\n\n const shareLink = async () => {\n try {\n await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n };\n\n const actionItems = [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.green,\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n }}\n >\n <Ionicons color={'white'} name=\"share-outline\" size={22} />\n <Text className=\"text-white\" style={{ color: 'white', fontWeight: '600', fontSize: 16 }}>\n Share a Link\n </Text>\n </HStack>\n ),\n onPress: shareLink,\n },\n {\n id: 2,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <AntDesign color={Colors.gray[900]} name=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add from Contacts</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {\n orgName,\n }),\n },\n // {\n // id: 3,\n // label: (\n // <HStack\n // space={'sm'}\n // className=\"flex-1 justify-center items-center\"\n // style={{\n // paddingVertical: 12,\n // borderRadius: 8,\n // marginHorizontal: 10,\n // marginVertical: 5,\n // backgroundColor: Colors.gray[50],\n // }}\n // >\n // <AntDesign color={Colors.gray[900]} name=\"google\" size={22} />\n // <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n // Add from Google Contacts\n // </Text>\n // </HStack>\n // ),\n // onPress: () => {\n // // Navigate to Google contacts integration\n // // This would be implemented based on your app's functionality\n // },\n // },\n {\n id: 4,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <MaterialCommunityIcons color={Colors.gray[900]} name=\"email-outline\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add by Email</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleByEmail, {\n orgName,\n }),\n },\n ];\n\n return (\n <Box style={{ marginBottom: 8, paddingHorizontal: 12 }}>\n {/* Floating Action Button to open ActionSheet */}\n <TouchableOpacity onPress={onOpen}>\n <Box className=\"py-3 \">\n <HStack space={'sm'} className=\"w-full flex-1 items-center space-x-3\">\n <Box>\n <Ionicons name=\"add\" size={20} color=\"black\" />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableOpacity>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n isShowCancelButton={false}\n header={\n <Text\n className=\"text-center font-bold text-lg bg-white\"\n style={{\n paddingVertical: 16,\n color: Colors.gray[900],\n }}\n >\n Invite people to join your team\n </Text>\n }\n />\n </Box>\n );\n};\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Teams.js","sources":["../../../../../src/screens/Home/Components/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useCallback, useMemo, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { View, FlatList, Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { orderBy, uniqBy, take } from 'lodash-es';\nimport { useTeamsQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext } from '../../HomeScreen';\n\nconst Teams = () => {\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const [teamExpandable, setTeamExpendable] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { shouldRefetch } = useContext(RefetchContext);\n\n const {\n data: orgTeamsData,\n refetch: reFetchOrgTeams,\n error: teamsError,\n } = useTeamsQuery({\n variables: { orgName: orgName },\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n skip: !orgName,\n });\n\n const reFetchTeams = useCallback(() => {\n if (orgName) {\n return reFetchOrgTeams({ orgName: orgName });\n }\n }, [orgName, reFetchOrgTeams]);\n\n // Refetch when context signals to do so\n useFocusEffect(\n useCallback(() => {\n if (shouldRefetch && orgName) {\n reFetchTeams();\n }\n }, [shouldRefetch, orgName, reFetchTeams]),\n );\n\n // Initial fetch on focus\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n reFetchTeams();\n }\n }, [orgName, reFetchTeams]),\n );\n\n const organizationTeams = useMemo(() => {\n const teams = orgTeamsData?.getOrganizationTeams || [];\n return teams.length\n ? take(\n orderBy(\n uniqBy(\n [...teams]?.filter((t: any) => t?.orgName === orgName),\n ({ _id }) => _id,\n ),\n [(ch: any) => ch?.title.toLowerCase()],\n ['asc'],\n ),\n 10,\n )\n : [];\n }, [orgTeamsData, orgName]);\n\n const viewTeam = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.ViewTeam, {\n teamId: item?.id?.toString(),\n teamName: item?.name,\n title: item?.title?.toString(),\n totalMembers: item?.teamMembers?.length,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderOrganizationTeamItem = useCallback(\n ({ item }) => (\n <TouchableOpacity\n key={item.id}\n onPress={() => viewTeam(item)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Octicons color={colors.gray[700]} name=\"lock\" size={18} />\n <Text className=\"text-gray-900 flex-1 text-base\">{item.title}</Text>\n </HStack>\n </TouchableOpacity>\n ),\n [viewTeam],\n );\n\n const ListEmptyComponent = useCallback(() => {\n // Format the error message if present\n const errorMessage = teamsError\n ? teamsError.message.includes(\"Service 'TeamService\")\n ? 'Team service is temporarily unavailable. Please try again later.'\n : teamsError.message\n : null;\n\n return (\n <Box style={{ padding: 12 }}>\n {errorMessage ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {errorMessage}\n </Text>\n <TouchableOpacity onPress={reFetchTeams}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <Octicons name=\"organization\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No teams available</Text>\n </Box>\n )}\n </Box>\n );\n }, [teamsError, reFetchTeams]);\n\n const ListFooterComponent = useCallback(() => {\n const teamsCount = orgTeamsData?.getOrganizationTeams?.length || 0;\n\n return (\n <VStack>\n {teamsCount > 10 && (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Teams, { orgName })}\n style={{ paddingVertical: 8, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <MaterialIcons color=\"#616061\" name=\"search\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Browse all Teams</Text>\n </HStack>\n </TouchableOpacity>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam, { orgName })}\n style={{ paddingBottom: 5, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Add Team</Text>\n </HStack>\n </TouchableOpacity>\n </VStack>\n );\n }, [orgTeamsData, orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setTeamExpendable(!teamExpandable)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Teams\n </Text>\n <FontAwesome\n name={teamExpandable ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [teamExpandable]);\n\n if (!teamExpandable) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationTeams?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'team') + '-' + item?.title}\n data={organizationTeams}\n renderItem={renderOrganizationTeamItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <Box>\n <ListEmptyComponent />\n <ListFooterComponent />\n </Box>\n )}\n </Box>\n );\n};\n\nexport default Teams;\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Teams.js","sources":["../../../../../src/screens/Home/Components/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useCallback, useMemo, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { View, FlatList, Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { orderBy, uniqBy, take } from 'lodash-es';\nimport { useTeamsQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext } from '../../HomeScreen';\n\nconst Teams = () => {\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const [teamExpandable, setTeamExpendable] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { shouldRefetch } = useContext(RefetchContext);\n\n const {\n data: orgTeamsData,\n refetch: reFetchOrgTeams,\n error: teamsError,\n } = useTeamsQuery({\n variables: { orgName: orgName },\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n skip: !orgName,\n });\n\n const reFetchTeams = useCallback(() => {\n if (orgName) {\n return reFetchOrgTeams({ orgName: orgName });\n }\n }, [orgName, reFetchOrgTeams]);\n\n // Refetch when context signals to do so\n useFocusEffect(\n useCallback(() => {\n if (shouldRefetch && orgName) {\n reFetchTeams();\n }\n }, [shouldRefetch, orgName, reFetchTeams]),\n );\n\n // Initial fetch on focus\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n reFetchTeams();\n }\n }, [orgName, reFetchTeams]),\n );\n\n const organizationTeams = useMemo(() => {\n const teams = orgTeamsData?.getOrganizationTeams || [];\n return teams.length\n ? take(\n orderBy(\n uniqBy(\n [...teams]?.filter((t: any) => t?.orgName === orgName),\n ({ _id }) => _id,\n ),\n [(ch: any) => ch?.title.toLowerCase()],\n ['asc'],\n ),\n 10,\n )\n : [];\n }, [orgTeamsData, orgName]);\n\n const viewTeam = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.ViewTeam, {\n teamId: item?.id?.toString(),\n teamName: item?.name,\n title: item?.title?.toString(),\n totalMembers: item?.teamMembers?.length,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderOrganizationTeamItem = useCallback(\n ({ item }) => (\n <TouchableOpacity\n key={item.id}\n onPress={() => viewTeam(item)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Octicons color={colors.gray[700]} name=\"lock\" size={18} />\n <Text className=\"text-gray-900 flex-1 text-base\">{item.title}</Text>\n </HStack>\n </TouchableOpacity>\n ),\n [viewTeam],\n );\n\n const ListEmptyComponent = useCallback(() => {\n // Format the error message if present\n const errorMessage = teamsError\n ? teamsError.message.includes(\"Service 'TeamService\")\n ? 'Team service is temporarily unavailable. Please try again later.'\n : teamsError.message\n : null;\n\n return (\n <Box style={{ padding: 12 }}>\n {errorMessage ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {errorMessage}\n </Text>\n <TouchableOpacity onPress={reFetchTeams}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <Octicons name=\"organization\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No teams available</Text>\n </Box>\n )}\n </Box>\n );\n }, [teamsError, reFetchTeams]);\n\n const ListFooterComponent = useCallback(() => {\n const teamsCount = orgTeamsData?.getOrganizationTeams?.length || 0;\n\n return (\n <VStack>\n {teamsCount > 10 && (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Teams, { orgName })}\n style={{ paddingVertical: 8, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <MaterialIcons color=\"#616061\" name=\"search\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Browse all Teams</Text>\n </HStack>\n </TouchableOpacity>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam, { orgName })}\n style={{ paddingBottom: 5, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Add Team</Text>\n </HStack>\n </TouchableOpacity>\n </VStack>\n );\n }, [orgTeamsData, orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setTeamExpendable(!teamExpandable)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Teams\n </Text>\n <FontAwesome\n name={teamExpandable ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [teamExpandable]);\n\n if (!teamExpandable) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationTeams?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'team') + '-' + item?.title}\n data={organizationTeams}\n renderItem={renderOrganizationTeamItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <Box>\n <ListEmptyComponent />\n <ListFooterComponent />\n </Box>\n )}\n </Box>\n );\n};\n\nexport default Teams;\n"],"names":["React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TopCommonSlider.js","sources":["../../../../../src/screens/Home/Components/TopCommonSlider/TopCommonSlider.tsx"],"sourcesContent":["import React from 'react';\nimport { Dimensions, StyleSheet } from 'react-native';\nimport { Image, FlatList, Box, Text, VStack, Button } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport send from '../../../../assets/images/send.png';\nimport chat from '../../../../assets/images/chat.png';\nimport saveForLater from '../../../../assets/images/save-for-later.png';\nimport { useNavigation } from '@react-navigation/native';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\n\nconst pWidth = Dimensions.get('window').width / 3 - 5;\n\n// Define types\ntype SliderItem = {\n id: number;\n image: any;\n title: string;\n subTitle: string;\n route: string | null;\n};\n\ntype TopCommonSliderProps = {\n // Add any props here if needed\n};\n\n// Move static data outside component\nconst SLIDER_ITEMS: SliderItem[] = [\n {\n id: 1,\n image: chat,\n title: 'Threads',\n subTitle: '0 New',\n route: NavigationRoutes.Threads,\n },\n {\n id: 2,\n image: saveForLater,\n title: 'Later',\n subTitle: '0 items',\n route: null,\n },\n {\n id: 3,\n image: send,\n title: 'Draft & Sent',\n subTitle: '0 drafts',\n route: null,\n },\n];\n\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 2,\n },\n view: {\n maxWidth: pWidth - 5,\n width: pWidth - 5,\n marginTop: 5,\n height: 100,\n overflow: 'hidden',\n borderColor: colors.gray[200],\n },\n image: {\n resizeMode: 'cover',\n tintColor: '#000',\n },\n contentContainer: {\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n});\n\nconst TopCommonSlider: React.FC<TopCommonSliderProps> = () => {\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n const flatListRef = React.useRef<FlatList<SliderItem>>(null);\n\n const renderSliderItem = React.useCallback(\n ({ item }: { item: SliderItem }) => (\n <Button\n key={item.id}\n variant={'outline'}\n style={styles.view}\n className=\"flex-1 border-blue-400 rounded-lg\"\n onPress={() => item.route && navigation.navigate(item.route, { orgName })}\n >\n <Box className=\"rounded-md flex-1 items-center justify-center py-2\">\n <VStack>\n <Box>\n {item.image && (\n <Image\n className=\"p-0 w-8 h-8\"\n size={'xs'}\n alt=\"icon\"\n style={styles.image}\n source={item.image}\n />\n )}\n </Box>\n <Box>\n <Text color={colors.gray[800]} className=\"text-sm\">\n {item.title}\n </Text>\n </Box>\n <Box>\n <Text color={colors.gray[600]} className=\"text-xs\">\n {item.subTitle}\n </Text>\n </Box>\n </VStack>\n </Box>\n </Button>\n ),\n [navigation, orgName],\n );\n\n return (\n <FlatList\n ref={flatListRef}\n pagingEnabled={true}\n horizontal={true}\n snapToInterval={Dimensions.get('window').width}\n snapToAlignment=\"start\"\n decelerationRate={'fast'}\n data={SLIDER_ITEMS}\n renderItem={renderSliderItem}\n keyExtractor={(item) => String(item.id)}\n style={styles.container}\n contentContainerStyle={styles.contentContainer}\n initialNumToRender={3}\n maxToRenderPerBatch={3}\n removeClippedSubviews={true}\n />\n );\n};\n\nexport default React.memo(TopCommonSlider);\n"],"names":["chat","saveForLater","send","React"],"mappings":"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"}
1
+ {"version":3,"file":"TopCommonSlider.js","sources":["../../../../../src/screens/Home/Components/TopCommonSlider/TopCommonSlider.tsx"],"sourcesContent":["import React from 'react';\nimport { Dimensions, StyleSheet } from 'react-native';\nimport { Image, FlatList, Box, Text, VStack, Button } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport send from '../../../../assets/images/send.png';\nimport chat from '../../../../assets/images/chat.png';\nimport saveForLater from '../../../../assets/images/save-for-later.png';\nimport { useNavigation } from '@react-navigation/native';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\n\nconst pWidth = Dimensions.get('window').width / 3 - 5;\n\n// Define types\ntype SliderItem = {\n id: number;\n image: any;\n title: string;\n subTitle: string;\n route: string | null;\n};\n\ntype TopCommonSliderProps = {\n // Add any props here if needed\n};\n\n// Move static data outside component\nconst SLIDER_ITEMS: SliderItem[] = [\n {\n id: 1,\n image: chat,\n title: 'Threads',\n subTitle: '0 New',\n route: NavigationRoutes.Threads,\n },\n {\n id: 2,\n image: saveForLater,\n title: 'Later',\n subTitle: '0 items',\n route: null,\n },\n {\n id: 3,\n image: send,\n title: 'Draft & Sent',\n subTitle: '0 drafts',\n route: null,\n },\n];\n\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 2,\n },\n view: {\n maxWidth: pWidth - 5,\n width: pWidth - 5,\n marginTop: 5,\n height: 100,\n overflow: 'hidden',\n borderColor: colors.gray[200],\n },\n image: {\n resizeMode: 'cover',\n tintColor: '#000',\n },\n contentContainer: {\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n});\n\nconst TopCommonSlider: React.FC<TopCommonSliderProps> = () => {\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n const flatListRef = React.useRef<FlatList<SliderItem>>(null);\n\n const renderSliderItem = React.useCallback(\n ({ item }: { item: SliderItem }) => (\n <Button\n key={item.id}\n variant={'outline'}\n style={styles.view}\n className=\"flex-1 border-blue-400 rounded-lg\"\n onPress={() => item.route && navigation.navigate(item.route, { orgName })}\n >\n <Box className=\"rounded-md flex-1 items-center justify-center py-2\">\n <VStack>\n <Box>\n {item.image && (\n <Image\n className=\"p-0 w-8 h-8\"\n size={'xs'}\n alt=\"icon\"\n style={styles.image}\n source={item.image}\n />\n )}\n </Box>\n <Box>\n <Text color={colors.gray[800]} className=\"text-sm\">\n {item.title}\n </Text>\n </Box>\n <Box>\n <Text color={colors.gray[600]} className=\"text-xs\">\n {item.subTitle}\n </Text>\n </Box>\n </VStack>\n </Box>\n </Button>\n ),\n [navigation, orgName],\n );\n\n return (\n <FlatList\n ref={flatListRef}\n pagingEnabled={true}\n horizontal={true}\n snapToInterval={Dimensions.get('window').width}\n snapToAlignment=\"start\"\n decelerationRate={'fast'}\n data={SLIDER_ITEMS}\n renderItem={renderSliderItem}\n keyExtractor={(item) => String(item.id)}\n style={styles.container}\n contentContainerStyle={styles.contentContainer}\n initialNumToRender={3}\n maxToRenderPerBatch={3}\n removeClippedSubviews={true}\n />\n );\n};\n\nexport default React.memo(TopCommonSlider);\n"],"names":["chat","saveForLater","send","React"],"mappings":"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"}