@messenger-box/slack-ui-mobile 10.0.3-alpha.40 → 10.0.3-alpha.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/AppRootContextProviderComponent.js +16 -2
- package/lib/components/AppRootContextProviderComponent.js.map +1 -1
- package/lib/components/CustomDrawer/CustomDrawer.js +3 -3
- package/lib/components/CustomDrawer/CustomDrawer.js.map +1 -1
- package/lib/components/NavigationHeader/InboxNavigationHeader.js +4 -12
- package/lib/components/NavigationHeader/InboxNavigationHeader.js.map +1 -1
- package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js +4 -8
- package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js.map +1 -1
- package/lib/compute.js +25 -14
- package/lib/index.js.map +1 -1
- package/lib/queries/slackuiQueries.js +129 -0
- package/lib/queries/slackuiQueries.js.map +1 -0
- package/lib/routes.json +25 -14
- package/lib/screens/Account/AccountScreen.js.map +1 -1
- package/lib/screens/Channels/Add/AddVisibility.js +1 -1
- package/lib/screens/Channels/Add/AddVisibility.js.map +1 -1
- package/lib/screens/Channels/AddChannel.js +1 -1
- package/lib/screens/Channels/AddChannel.js.map +1 -1
- package/lib/screens/Channels/Channels.js +6 -16
- package/lib/screens/Channels/Channels.js.map +1 -1
- package/lib/screens/Home/Components/Channels/Channels.js +19 -98
- package/lib/screens/Home/Components/Channels/Channels.js.map +1 -1
- package/lib/screens/Home/Components/DirectChannels/DirectChannels.js +90 -116
- package/lib/screens/Home/Components/DirectChannels/DirectChannels.js.map +1 -1
- package/lib/screens/Home/Components/InviteMembers/index.js +2 -2
- package/lib/screens/Home/Components/InviteMembers/index.js.map +1 -1
- package/lib/screens/Home/Components/Teams/Teams.js +22 -77
- package/lib/screens/Home/Components/Teams/Teams.js.map +1 -1
- package/lib/screens/Home/HomeScreen.js +2 -2
- package/lib/screens/Home/HomeScreen.js.map +1 -1
- package/lib/screens/Inbox/InboxChannelDetail.js +45 -13
- package/lib/screens/Inbox/InboxChannelDetail.js.map +1 -1
- package/lib/screens/Inbox/InboxDialogMessages.js +2 -2
- package/lib/screens/Inbox/InboxDialogMessages.js.map +1 -1
- package/lib/screens/Organization/AddWorkspace.js +4 -8
- package/lib/screens/Organization/AddWorkspace.js.map +1 -1
- package/lib/screens/Organization/CreateOrganization.js +1 -1
- package/lib/screens/Organization/CreateOrganization.js.map +1 -1
- package/lib/screens/Organization/InitialChannelOnboarding.js +19 -3
- package/lib/screens/Organization/InitialChannelOnboarding.js.map +1 -1
- package/lib/screens/Organization/InitializeOrganizationChannel.js +6 -3
- package/lib/screens/Organization/InitializeOrganizationChannel.js.map +1 -1
- package/lib/screens/Organization/InviteOrganizationMembers.js +50 -10
- package/lib/screens/Organization/InviteOrganizationMembers.js.map +1 -1
- package/lib/screens/Peoples/AddByEmail.js +1 -1
- package/lib/screens/Peoples/AddByEmail.js.map +1 -1
- package/lib/screens/Peoples/AddFromContacts.js +34 -9
- package/lib/screens/Peoples/AddFromContacts.js.map +1 -1
- package/lib/screens/Peoples/AddPeople.js +8 -17
- package/lib/screens/Peoples/AddPeople.js.map +1 -1
- package/lib/screens/Peoples/People.js +42 -4
- package/lib/screens/Peoples/People.js.map +1 -1
- package/lib/screens/Profile/ProfileScreen.js +24 -9
- package/lib/screens/Profile/ProfileScreen.js.map +1 -1
- package/lib/screens/Search/Channels.js +3 -7
- package/lib/screens/Search/Channels.js.map +1 -1
- package/lib/screens/Search/People.js +2 -2
- package/lib/screens/Search/People.js.map +1 -1
- package/lib/screens/Search/Recents.js +2 -2
- package/lib/screens/Search/Recents.js.map +1 -1
- package/lib/screens/Search/SearchAddChannel.js +85 -12
- package/lib/screens/Search/SearchAddChannel.js.map +1 -1
- package/lib/screens/Search/SearchChannelPeople.js +22 -2
- package/lib/screens/Search/SearchChannelPeople.js.map +1 -1
- package/lib/screens/Search/SearchScreen.js +2 -2
- package/lib/screens/Search/SearchScreen.js.map +1 -1
- package/lib/screens/Teams/AddTeam.js +1 -1
- package/lib/screens/Teams/AddTeam.js.map +1 -1
- package/lib/screens/Teams/Components/Channels/Channels.js +2 -2
- package/lib/screens/Teams/Components/Channels/Channels.js.map +1 -1
- package/lib/screens/Teams/Components/Members/Members.js.map +1 -1
- package/lib/screens/Teams/Team.js +2 -7
- package/lib/screens/Teams/Team.js.map +1 -1
- package/lib/screens/Teams/Teams.js +1 -1
- package/lib/screens/Teams/Teams.js.map +1 -1
- package/lib/screens/Teams/useTeams.js +27 -90
- package/lib/screens/Teams/useTeams.js.map +1 -1
- package/package.json +3 -3
- package/lib/screens/Teams/Teams-xstate.js +0 -226
- package/lib/screens/Teams/Teams-xstate.js.map +0 -1
|
@@ -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 useAddChannelMutation,\n useGetOrganizationMembersQuery,\n useGetChannelsByUserQuery,\n useGetChannelsByUserLazyQuery,\n useGetUserOrganizationsQuery,\n useAddDirectChannelMutation,\n useAddMemberToChannelMutation,\n useViewChannelDetailLazyQuery,\n useViewChannelDetailQuery,\n useSaveMembersToChannelMutation,\n} from 'common/graphql';\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 } = useGetOrganizationMembersQuery({\n variables: {\n offset: offset,\n limit: orgMemersDataFetchLimit,\n orgName: orgName,\n },\n });\n\n const { data: channelDetail, refetch: refetchChannelDetail } = useViewChannelDetailQuery({\n variables: {\n id: channelId,\n },\n });\n\n const {\n data: userChannelsData,\n loading,\n error,\n refetch: refetchUserChannels,\n } = useGetChannelsByUserQuery({\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({ offset: offset, limit: orgMemersDataFetchLimit, orgName: orgName });\n refetchUserChannels({\n criteria: {\n orgName: orgName,\n },\n });\n }\n\n if (channelId) refetchChannelDetail({ id: channelId });\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({ offset: offSet, limit: orgMemersDataFetchLimit, orgName: orgName }).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":"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"}
|
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
import React__default
|
|
2
|
-
navigation
|
|
1
|
+
import React__default,{useState,useEffect}from'react';import {View,StyleSheet,ActivityIndicator,Text,FlatList}from'react-native';import {useAllUsersQuery}from'../../queries/slackuiQueries.js';const Peoples = ({
|
|
2
|
+
navigation,
|
|
3
|
+
route
|
|
3
4
|
}) => {
|
|
5
|
+
const [users, setUsers] = useState([]);
|
|
6
|
+
const [loading, setLoading] = useState(true);
|
|
7
|
+
const {
|
|
8
|
+
data,
|
|
9
|
+
loading: usersLoading,
|
|
10
|
+
error
|
|
11
|
+
} = useAllUsersQuery();
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (data && data.getUsers) {
|
|
14
|
+
setUsers(data.getUsers);
|
|
15
|
+
setLoading(false);
|
|
16
|
+
}
|
|
17
|
+
}, [data]);
|
|
18
|
+
if (loading || usersLoading) {
|
|
19
|
+
return /* @__PURE__ */ React__default.createElement(View, { style: styles.container }, /* @__PURE__ */ React__default.createElement(ActivityIndicator, { size: "large", color: "#62b1f6" }));
|
|
20
|
+
}
|
|
21
|
+
if (error) {
|
|
22
|
+
return /* @__PURE__ */ React__default.createElement(View, { style: styles.container }, /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
23
|
+
color: "red"
|
|
24
|
+
} }, "Error loading users: ", error.message));
|
|
25
|
+
}
|
|
4
26
|
return /* @__PURE__ */ React__default.createElement(View, { style: styles.container }, /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
5
|
-
|
|
6
|
-
|
|
27
|
+
fontSize: 20,
|
|
28
|
+
marginBottom: 20
|
|
29
|
+
} }, "People"), /* @__PURE__ */ React__default.createElement(FlatList, { data: users, keyExtractor: (item) => item.id.toString(), renderItem: ({
|
|
30
|
+
item
|
|
31
|
+
}) => /* @__PURE__ */ React__default.createElement(View, { style: styles.userItem }, /* @__PURE__ */ React__default.createElement(Text, { style: styles.userName }, item.firstName, " ", item.lastName), /* @__PURE__ */ React__default.createElement(Text, { style: styles.userEmail }, item.email)) }));
|
|
7
32
|
};
|
|
8
33
|
const styles = StyleSheet.create({
|
|
9
34
|
container: {
|
|
@@ -23,5 +48,18 @@ const styles = StyleSheet.create({
|
|
|
23
48
|
},
|
|
24
49
|
linkColor: {
|
|
25
50
|
color: "#62b1f6"
|
|
51
|
+
},
|
|
52
|
+
userItem: {
|
|
53
|
+
padding: 15,
|
|
54
|
+
borderBottomWidth: 1,
|
|
55
|
+
borderBottomColor: "#eee"
|
|
56
|
+
},
|
|
57
|
+
userName: {
|
|
58
|
+
fontSize: 16,
|
|
59
|
+
fontWeight: "bold"
|
|
60
|
+
},
|
|
61
|
+
userEmail: {
|
|
62
|
+
color: "#777",
|
|
63
|
+
marginTop: 5
|
|
26
64
|
}
|
|
27
65
|
});export{Peoples as default};//# sourceMappingURL=People.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"People.js","sources":["../../../src/screens/Peoples/People.tsx"],"sourcesContent":["import React, { useState, useLayoutEffect } from 'react';\nimport { StyleSheet, View, Text } from 'react-native';\n\nconst Peoples = ({ navigation }: any) => {\n return (\n
|
|
1
|
+
{"version":3,"file":"People.js","sources":["../../../src/screens/Peoples/People.tsx"],"sourcesContent":["import React, { useState, useLayoutEffect, useEffect } from 'react';\nimport { StyleSheet, View, Text, FlatList, ActivityIndicator } from 'react-native';\nimport { useAllUsersQuery, useOrganizationMembersQuery } from '../../queries/slackuiQueries';\n\nconst Peoples = ({ navigation, route }: any) => {\n const [users, setUsers] = useState<any[]>([]);\n const [loading, setLoading] = useState(true);\n\n // Fetch all users using the query\n const { data, loading: usersLoading, error } = useAllUsersQuery();\n\n // You can also fetch organization members if orgName is available\n // const orgName = route.params?.orgName;\n // const { data: orgMembersData } = useOrganizationMembersQuery(orgName);\n\n useEffect(() => {\n if (data && data.getUsers) {\n setUsers(data.getUsers);\n setLoading(false);\n }\n }, [data]);\n\n if (loading || usersLoading) {\n return (\n <View style={styles.container}>\n <ActivityIndicator size=\"large\" color=\"#62b1f6\" />\n </View>\n );\n }\n\n if (error) {\n return (\n <View style={styles.container}>\n <Text style={{ color: 'red' }}>Error loading users: {error.message}</Text>\n </View>\n );\n }\n\n return (\n <View style={styles.container}>\n <Text style={{ fontSize: 20, marginBottom: 20 }}>People</Text>\n <FlatList\n data={users}\n keyExtractor={(item) => item.id.toString()}\n renderItem={({ item }) => (\n <View style={styles.userItem}>\n <Text style={styles.userName}>\n {item.firstName} {item.lastName}\n </Text>\n <Text style={styles.userEmail}>{item.email}</Text>\n </View>\n )}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n padding: 20,\n },\n marginTop20: {\n marginTop: 20,\n },\n colorWhite: {\n color: 'white',\n },\n direction_row: {\n flexDirection: 'row',\n justifyContent: 'center',\n },\n linkColor: {\n color: '#62b1f6',\n },\n userItem: {\n padding: 15,\n borderBottomWidth: 1,\n borderBottomColor: '#eee',\n },\n userName: {\n fontSize: 16,\n fontWeight: 'bold',\n },\n userEmail: {\n color: '#777',\n marginTop: 5,\n },\n});\n\nexport default Peoples;\n"],"names":["React"],"mappings":"gMAGA,MAAM,UAAU,CAAC;AAAA,EACf,UAAA;AAAA,EACA;AACF,CAAW,KAAA;AACT,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,QAAA,CAAgB,EAAE,CAAA;AAC5C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,IAAI,CAAA;AAG3C,EAAM,MAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAS,EAAA,YAAA;AAAA,IACT;AAAA,MACE,gBAAiB,EAAA;AAMrB,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,IAAA,IAAQ,KAAK,QAAU,EAAA;AACzB,MAAA,QAAA,CAAS,KAAK,QAAQ,CAAA;AACtB,MAAA,UAAA,CAAW,KAAK,CAAA;AAAA;AAClB,GACF,EAAG,CAAC,IAAI,CAAC,CAAA;AACT,EAAA,IAAI,WAAW,YAAc,EAAA;AAC3B,IAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAO,MAAO,CAAA,SAAA,EAAA,kBACdA,cAAA,CAAA,aAAA,CAAA,iBAAA,EAAA,EAAkB,IAAK,EAAA,OAAA,EAAQ,KAAM,EAAA,SAAA,EAAU,CACpD,CAAA;AAAA;AAEV,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,oDAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,OAAO,SACf,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,KAAO,EAAA;AAAA,MACrB,KAAO,EAAA;AAAA,KACN,EAAA,EAAA,uBAAA,EAAsB,KAAM,CAAA,OAAQ,CACjC,CAAA;AAAA;AAEV,EAAA,oDAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,OAAO,SACjB,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,KAAO,EAAA;AAAA,IACnB,QAAU,EAAA,EAAA;AAAA,IACV,YAAc,EAAA;AAAA,GACb,EAAA,EAAA,QAAM,CACD,kBAAAA,cAAA,CAAA,aAAA,CAAC,YAAS,IAAM,EAAA,KAAA,EAAO,YAAc,EAAA,CAAA,IAAA,KAAQ,IAAK,CAAA,EAAA,CAAG,QAAS,EAAA,EAAG,YAAY,CAAC;AAAA,IACpF;AAAA,GACF,qBAAOA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,MAAA,CAAO,QACN,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAO,MAAO,CAAA,QAAA,EAAA,EACf,IAAK,CAAA,SAAA,EAAU,KAAE,IAAK,CAAA,QAC3B,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAO,MAAO,CAAA,SAAA,EAAA,EAAY,IAAK,CAAA,KAAM,CAC/C,CAAA,EAAS,CACrB,CAAA;AACR;AACA,MAAM,MAAA,GAAS,WAAW,MAAO,CAAA;AAAA,EAC/B,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,CAAA;AAAA,IACN,cAAgB,EAAA,QAAA;AAAA,IAChB,OAAS,EAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,SAAW,EAAA;AAAA,GACb;AAAA,EACA,UAAY,EAAA;AAAA,IACV,KAAO,EAAA;AAAA,GACT;AAAA,EACA,aAAe,EAAA;AAAA,IACb,aAAe,EAAA,KAAA;AAAA,IACf,cAAgB,EAAA;AAAA,GAClB;AAAA,EACA,SAAW,EAAA;AAAA,IACT,KAAO,EAAA;AAAA,GACT;AAAA,EACA,QAAU,EAAA;AAAA,IACR,OAAS,EAAA,EAAA;AAAA,IACT,iBAAmB,EAAA,CAAA;AAAA,IACnB,iBAAmB,EAAA;AAAA,GACrB;AAAA,EACA,QAAU,EAAA;AAAA,IACR,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA;AAAA,GACd;AAAA,EACA,SAAW,EAAA;AAAA,IACT,KAAO,EAAA,MAAA;AAAA,IACP,SAAW,EAAA;AAAA;AAEf,CAAC,CAAA"}
|
|
@@ -1,25 +1,32 @@
|
|
|
1
|
-
import React__default,{useState,useEffect}from'react';import {useDispatch,useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';import {Box,VStack,Image,Heading,HStack,Text,Button,ButtonText,Divider}from'@admin-layout/gluestack-ui-mobile';import {
|
|
1
|
+
import React__default,{useState,useEffect}from'react';import {useDispatch,useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';import {useToast,Box,VStack,Image,Heading,HStack,Text,Button,ToastAlert,ButtonText,Divider}from'@admin-layout/gluestack-ui-mobile';import {useUserByIdQuery,useUpdateUserProfileMutation}from'../../queries/slackuiQueries.js';import {now}from'lodash-es';import {Ionicons,MaterialCommunityIcons}from'@expo/vector-icons';import {useNavigation,useRoute}from'@react-navigation/native';import colors from'tailwindcss/colors';const ProfileScreen = () => {
|
|
2
2
|
var _a;
|
|
3
|
-
useNavigation();
|
|
3
|
+
const navigation = useNavigation();
|
|
4
4
|
const route = useRoute();
|
|
5
5
|
useDispatch();
|
|
6
6
|
const userState = useSelector(userSelector);
|
|
7
7
|
const [user, setUser] = useState(null);
|
|
8
8
|
const timestamp = now();
|
|
9
9
|
const date = new Date(timestamp);
|
|
10
|
+
const toast = useToast();
|
|
10
11
|
const {
|
|
11
12
|
data: userData,
|
|
12
13
|
loading,
|
|
13
14
|
error
|
|
14
|
-
} =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
});
|
|
15
|
+
} = useUserByIdQuery(((_a = route == null ? void 0 : route.params) == null ? void 0 : _a.userId) || (userState == null ? void 0 : userState.id));
|
|
16
|
+
const [updateUserProfile, {
|
|
17
|
+
loading: updateLoading
|
|
18
|
+
}] = useUpdateUserProfileMutation();
|
|
19
19
|
useEffect(() => {
|
|
20
20
|
if (userData == null ? void 0 : userData.getUserAccount)
|
|
21
21
|
setUser(userData == null ? void 0 : userData.getUserAccount);
|
|
22
22
|
}, [userData]);
|
|
23
|
+
const handleEditProfile = () => {
|
|
24
|
+
if (user == null ? void 0 : user.id) {
|
|
25
|
+
navigation.navigate("EditProfile", {
|
|
26
|
+
user
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
23
30
|
return /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(VStack, { className: "flex-1 px-4 py-4", space: "md" }, /* @__PURE__ */ React__default.createElement(Box, { className: "w-full h-[96px]" }, /* @__PURE__ */ React__default.createElement(
|
|
24
31
|
Image,
|
|
25
32
|
{
|
|
@@ -38,10 +45,18 @@ import React__default,{useState,useEffect}from'react';import {useDispatch,useSel
|
|
|
38
45
|
)), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Heading, null, user == null ? void 0 : user.givenName, " ", user == null ? void 0 : user.familyName)), /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Box, { className: "w-[3px] h-[3px] bg-green-800 rounded-full mr-2" }), /* @__PURE__ */ React__default.createElement(Text, { color: colors.black }, "Active")), /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Ionicons, { color: "black", name: "time-outline", size: 20 }), /* @__PURE__ */ React__default.createElement(Text, { color: colors.black }, date == null ? void 0 : date.toLocaleTimeString([], {
|
|
39
46
|
hour: "2-digit",
|
|
40
47
|
minute: "2-digit"
|
|
41
|
-
}), " local time")), /* @__PURE__ */ React__default.createElement(Button, { variant: "outline", className: "mt-2 rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200"
|
|
48
|
+
}), " local time")), /* @__PURE__ */ React__default.createElement(Button, { variant: "outline", className: "mt-2 rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200", onPress: () => {
|
|
49
|
+
toast.show({
|
|
50
|
+
placement: "top",
|
|
51
|
+
duration: 2e3,
|
|
52
|
+
render: ({
|
|
53
|
+
id
|
|
54
|
+
}) => /* @__PURE__ */ React__default.createElement(ToastAlert, { id, title: "Status update feature coming soon", status: "info", isClosable: false })
|
|
55
|
+
});
|
|
56
|
+
} }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: "pl-1", style: {
|
|
42
57
|
color: "black",
|
|
43
58
|
fontWeight: "bold"
|
|
44
|
-
} }, "Edit Status")), /* @__PURE__ */ React__default.createElement(Button, { variant: "outline", className: "rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: "pl-1", style: {
|
|
59
|
+
} }, "Edit Status")), /* @__PURE__ */ React__default.createElement(Button, { variant: "outline", className: "rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200", onPress: handleEditProfile, isDisabled: updateLoading }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: "pl-1", style: {
|
|
45
60
|
color: "black",
|
|
46
61
|
fontWeight: "bold"
|
|
47
62
|
} }, "Edit Profile")), /* @__PURE__ */ React__default.createElement(Divider, { className: "bg-gray-300" }), /* @__PURE__ */ React__default.createElement(Heading, { size: "sm" }, "Contact Information"), /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "items-center" }, /* @__PURE__ */ React__default.createElement(MaterialCommunityIcons, { color: "black", name: "email-outline", size: 20 }), /* @__PURE__ */ React__default.createElement(Text, { color: "black" }, user == null ? void 0 : user.email))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileScreen.js","sources":["../../../src/screens/Profile/ProfileScreen.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { SafeAreaView, TouchableOpacity } from 'react-native';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IUserState } from '@adminide-stack/core';\nimport { Store, userSelector, logoutAndRedirect } from '@adminide-stack/user-auth0-client';\nimport {\n Avatar,\n Badge,\n Box,\n Button,\n ButtonText,\n HStack,\n Heading,\n Icon,\n Image,\n Text,\n Toast,\n VStack,\n Divider,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useGetUserByIdQuery } from 'common/graphql';\nimport { now } from 'lodash-es';\nimport { Feather, Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\nimport colors from 'tailwindcss/colors';\n\nconst ProfileScreen = () => {\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const dispatch = useDispatch();\n const userState = useSelector<Store.Auth, IUserState>(userSelector);\n const [user, setUser] = useState<any>(null);\n const timestamp = now();\n const date = new Date(timestamp);\n const {\n data: userData,\n loading,\n error,\n } = useGetUserByIdQuery({\n variables: {\n userId: route?.params?.userId || userState?.id,\n },\n });\n\n useEffect(() => {\n if (userData?.getUserAccount) setUser(userData?.getUserAccount);\n }, [userData]);\n\n return (\n <Box className=\"flex-1\">\n <VStack className=\"flex-1 px-4 py-4\" space={'md'}>\n <Box className=\"w-full h-[96px]\">\n <Image\n resizeMode={'cover'}\n borderRadius={10}\n source={{\n uri: user?.picture,\n }}\n alt=\"Profile image\"\n style={{\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n }}\n // style={{\n // height: 70,\n // width: 70,\n // resizeMode: 'contain',\n // borderRadius: 35,\n // }}\n />\n </Box>\n <Box>\n <Heading>\n {user?.givenName} {user?.familyName}\n </Heading>\n </Box>\n <HStack space={'sm'} className=\"items-center\">\n <Box className=\"w-[3px] h-[3px] bg-green-800 rounded-full mr-2\" />\n <Text color={colors.black}>Active</Text>\n </HStack>\n <HStack space={'sm'} className=\"items-center\">\n <Ionicons color=\"black\" name=\"time-outline\" size={20} />\n <Text color={colors.black}>\n {date?.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })} local time\n </Text>\n </HStack>\n <Button\n variant={'outline'}\n className=\"mt-2 rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200\"\n >\n <ButtonText className=\"pl-1\" style={{ color: 'black', fontWeight: 'bold' }}>\n Edit Status\n </ButtonText>\n </Button>\n <Button variant={'outline'} className=\"rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200\">\n <ButtonText className=\"pl-1\" style={{ color: 'black', fontWeight: 'bold' }}>\n Edit Profile\n </ButtonText>\n </Button>\n {/* <Button\n variant={'outline'}\n rounded={'$lg'}\n $pressed-bg=\"$trueGray200\"\n $active-bg={'$trueGray200'}\n borderColor={'$trueGray400'}\n >\n <Feather color=\"black\" name=\"message-circle\" size={20} />\n <ButtonText pl={'$1'} style={{ color: 'black', fontWeight: 'bold' }}>\n Message\n </ButtonText>\n </Button>\n <Button\n variant={'outline'}\n rounded={'$lg'}\n $pressed-bg=\"$trueGray200\"\n $active-bg={'$trueGray200'}\n borderColor={'$trueGray400'}\n >\n <Feather color=\"black\" name=\"headphones\" size={20} />\n <ButtonText pl={'$1'} style={{ color: 'black', fontWeight: 'bold' }}>\n Huddle\n </ButtonText>\n </Button> */}\n <Divider className=\"bg-gray-300\" />\n <Heading size={'sm'}>Contact Information</Heading>\n <HStack space={'sm'} className=\"items-center\">\n <MaterialCommunityIcons color=\"black\" name=\"email-outline\" size={20} />\n <Text color={'black'}>{user?.email}</Text>\n </HStack>\n </VStack>\n </Box>\n );\n};\n\nexport default ProfileScreen;\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProfileScreen.js","sources":["../../../src/screens/Profile/ProfileScreen.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { SafeAreaView, TouchableOpacity } from 'react-native';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IUserState } from '@adminide-stack/core';\nimport { Store, userSelector, logoutAndRedirect } from '@adminide-stack/user-auth0-client';\nimport {\n Avatar,\n Badge,\n Box,\n Button,\n ButtonText,\n HStack,\n Heading,\n Icon,\n Image,\n Text,\n Toast,\n ToastAlert,\n VStack,\n Divider,\n useToast,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useUserByIdQuery, useUpdateUserProfileMutation } from '../../queries/slackuiQueries';\nimport { now } from 'lodash-es';\nimport { Feather, Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\nimport colors from 'tailwindcss/colors';\n\nconst ProfileScreen = () => {\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const dispatch = useDispatch();\n const userState = useSelector<Store.Auth, IUserState>(userSelector);\n const [user, setUser] = useState<any>(null);\n const timestamp = now();\n const date = new Date(timestamp);\n const toast = useToast();\n const { data: userData, loading, error } = useUserByIdQuery(route?.params?.userId || userState?.id);\n\n const [updateUserProfile, { loading: updateLoading }] = useUpdateUserProfileMutation();\n\n useEffect(() => {\n if (userData?.getUserAccount) setUser(userData?.getUserAccount);\n }, [userData]);\n\n const handleEditProfile = () => {\n if (user?.id) {\n navigation.navigate('EditProfile', { user });\n }\n };\n\n return (\n <Box className=\"flex-1\">\n <VStack className=\"flex-1 px-4 py-4\" space={'md'}>\n <Box className=\"w-full h-[96px]\">\n <Image\n resizeMode={'cover'}\n borderRadius={10}\n source={{\n uri: user?.picture,\n }}\n alt=\"Profile image\"\n style={{\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n }}\n // style={{\n // height: 70,\n // width: 70,\n // resizeMode: 'contain',\n // borderRadius: 35,\n // }}\n />\n </Box>\n <Box>\n <Heading>\n {user?.givenName} {user?.familyName}\n </Heading>\n </Box>\n <HStack space={'sm'} className=\"items-center\">\n <Box className=\"w-[3px] h-[3px] bg-green-800 rounded-full mr-2\" />\n <Text color={colors.black}>Active</Text>\n </HStack>\n <HStack space={'sm'} className=\"items-center\">\n <Ionicons color=\"black\" name=\"time-outline\" size={20} />\n <Text color={colors.black}>\n {date?.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })} local time\n </Text>\n </HStack>\n <Button\n variant={'outline'}\n className=\"mt-2 rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200\"\n onPress={() => {\n // TODO: Add status update functionality\n toast.show({\n placement: 'top',\n duration: 2000,\n render: ({ id }) => (\n <ToastAlert\n id={id}\n title={'Status update feature coming soon'}\n status={'info'}\n isClosable={false}\n />\n ),\n });\n }}\n >\n <ButtonText className=\"pl-1\" style={{ color: 'black', fontWeight: 'bold' }}>\n Edit Status\n </ButtonText>\n </Button>\n <Button\n variant={'outline'}\n className=\"rounded-lg border-gray-400 active:bg-gray-200 hover:bg-gray-200\"\n onPress={handleEditProfile}\n isDisabled={updateLoading}\n >\n <ButtonText className=\"pl-1\" style={{ color: 'black', fontWeight: 'bold' }}>\n Edit Profile\n </ButtonText>\n </Button>\n {/* <Button\n variant={'outline'}\n rounded={'$lg'}\n $pressed-bg=\"$trueGray200\"\n $active-bg={'$trueGray200'}\n borderColor={'$trueGray400'}\n >\n <Feather color=\"black\" name=\"message-circle\" size={20} />\n <ButtonText pl={'$1'} style={{ color: 'black', fontWeight: 'bold' }}>\n Message\n </ButtonText>\n </Button>\n <Button\n variant={'outline'}\n rounded={'$lg'}\n $pressed-bg=\"$trueGray200\"\n $active-bg={'$trueGray200'}\n borderColor={'$trueGray400'}\n >\n <Feather color=\"black\" name=\"headphones\" size={20} />\n <ButtonText pl={'$1'} style={{ color: 'black', fontWeight: 'bold' }}>\n Huddle\n </ButtonText>\n </Button> */}\n <Divider className=\"bg-gray-300\" />\n <Heading size={'sm'}>Contact Information</Heading>\n <HStack space={'sm'} className=\"items-center\">\n <MaterialCommunityIcons color=\"black\" name=\"email-outline\" size={20} />\n <Text color={'black'}>{user?.email}</Text>\n </HStack>\n </VStack>\n </Box>\n );\n};\n\nexport default ProfileScreen;\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React__default,{useLayoutEffect}from'react';import {TouchableOpacity,Dimensions}from'react-native';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useNavigation,useRoute
|
|
1
|
+
import React__default,{useLayoutEffect}from'react';import {TouchableOpacity,Dimensions}from'react-native';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useNavigation,useRoute}from'@react-navigation/native';import {startCase}from'lodash-es';import {VStack,FlatList,Box,Text,Spinner,HStack,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge}from'@admin-layout/gluestack-ui-mobile';import {RoomType}from'common';import {Octicons}from'@expo/vector-icons';import'../../constants/device.js';import'../../constants/globalStyles.js';import'../../constants/Layout.js';import {NavigationRoutes}from'../../constants/routes.js';import {useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';import colors from'tailwindcss/colors';Dimensions.get("window").width;
|
|
2
2
|
Dimensions.get("window").height;
|
|
3
|
-
const
|
|
3
|
+
const Channels = ({
|
|
4
4
|
channels,
|
|
5
5
|
loading
|
|
6
6
|
}) => {
|
|
@@ -9,10 +9,6 @@ const ChannelsSearchScreen = ({
|
|
|
9
9
|
const user = useSelector(userSelector);
|
|
10
10
|
useLayoutEffect(() => {
|
|
11
11
|
}, []);
|
|
12
|
-
useFocusEffect(React__default.useCallback(() => {
|
|
13
|
-
return () => {
|
|
14
|
-
};
|
|
15
|
-
}, []));
|
|
16
12
|
const openInbox = React__default.useCallback((item) => {
|
|
17
13
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
18
14
|
const channelMembers = (_c = (_b = (_a = item == null ? void 0 : item.members) == null ? void 0 : _a.filter((ch) => {
|
|
@@ -69,4 +65,4 @@ const ChannelsSearchScreen = ({
|
|
|
69
65
|
return /* @__PURE__ */ React__default.createElement(Box, { className: "bg-white py-2" }, (channels == null ? void 0 : channels.length) == 0 && loading ? /* @__PURE__ */ React__default.createElement(VStack, { space: "sm" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-5" }, /* @__PURE__ */ React__default.createElement(Text, null, "No channels found"))) : /* @__PURE__ */ React__default.createElement(Spinner, { color: colors.blue[500] }));
|
|
70
66
|
}, key: "search-channel-people-list", keyboardShouldPersistTaps: "always" })));
|
|
71
67
|
};
|
|
72
|
-
var Channels = React__default.memo(
|
|
68
|
+
var Channels$1 = React__default.memo(Channels);export{Channels$1 as default};//# sourceMappingURL=Channels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channels.js","sources":["../../../src/screens/Search/Channels.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { TouchableOpacity, Dimensions, Keyboard, KeyboardEvent } from 'react-native';\nimport styles from './styles';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\nimport {\n Text,\n VStack,\n Box,\n FlatList,\n HStack,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useGetChannelsByUserQuery } from 'common/graphql';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../constants';\nimport { useSelector } from 'react-redux';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport colors from 'tailwindcss/colors';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst ChannelsSearchScreen = ({ channels, loading }) => {\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const user = useSelector(userSelector);\n\n useLayoutEffect(() => {\n // setLoading(true);\n }, []);\n\n useFocusEffect(\n React.useCallback(() => {\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const openInbox = React.useCallback((item: any) => {\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n const memberImage =\n item.type === RoomType.Direct\n ? channelMembers?.length == 1\n ? channelMembers[0]?.picture ?? null\n : null\n : null;\n\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n memberImage: memberImage,\n channelType: item?.type,\n hideTabBar: true,\n });\n }, []);\n\n const renderChannels = ({ item }: any) => {\n const matches: any = item?.title?.match(/\\b(\\w)/g);\n // const acronym: any = matches.join('').substring(0, 2); // JSON\n\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n return (\n <TouchableOpacity key={item?.id} style={{ marginVertical: 10 }} onPress={() => openInbox(item)}>\n <HStack className=\"flex-1 items-center justify-center\">\n <HStack className=\"flex-1 items-center\" space={'sm'}>\n <Box className=\"m-0 p-0\">\n {item.type == RoomType.Direct ? (\n <Avatar key={'direct-channel-profile-msg-key'} size={'sm'} className=\"bg-transparent\">\n <AvatarFallbackText>\n {startCase(channelMembers[0]?.username?.charAt(0))}\n </AvatarFallbackText>\n <AvatarImage\n alt=\"image\"\n style={{\n // width: 25,\n // height: 25,\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: channelMembers[0]?.picture,\n }}\n />\n {channelMembers?.length > 1 ? (\n <AvatarBadge\n style={{ width: 20, height: 20 }}\n className=\"right-[-1px] bottom-[-1px] items-center bg-[#211627] rounded-md\"\n >\n <Text style={{ fontSize: 12, fontWeight: 'bold', color: '#fff' }}>\n {channelMembers?.length}\n </Text>\n </AvatarBadge>\n ) : (\n <AvatarBadge style={{ width: 10, height: 10 }} className=\"bg-green-800\" />\n )}\n </Avatar>\n ) : item.type == RoomType.Private ? (\n <>\n <Octicons color=\"black\" name=\"lock\" size={20} />\n </>\n ) : (\n <Octicons color=\"black\" name=\"hash\" size={20} />\n )}\n </Box>\n <Text className=\"text-gray-800 font-bold\">{item.title}</Text>\n </HStack>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n return (\n <VirtualizedScrollView>\n <VStack space=\"md\" className=\"flex-1 pt-2\">\n <FlatList\n style={{ flex: 1, paddingHorizontal: 4, paddingBottom: 10 }}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n marginBottom: 100,\n }}\n data={channels && channels.length > 0 ? channels : []}\n renderItem={renderChannels}\n ListEmptyComponent={() => {\n return (\n <Box className=\"bg-white py-2\">\n {channels?.length == 0 && loading ? (\n <VStack space=\"sm\">\n <Box className=\"px-4 py-5\">\n <Text>No channels found</Text>\n </Box>\n </VStack>\n ) : (\n <Spinner color={colors.blue[500]} />\n )}\n </Box>\n );\n }}\n key={'search-channel-people-list'}\n keyboardShouldPersistTaps=\"always\"\n />\n </VStack>\n </VirtualizedScrollView>\n );\n};\n\nexport default React.memo(ChannelsSearchScreen);\n"],"names":["React","_a","_b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Channels.js","sources":["../../../src/screens/Search/Channels.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { TouchableOpacity, Dimensions, Keyboard, KeyboardEvent } from 'react-native';\nimport styles from './styles';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\nimport {\n Text,\n VStack,\n Box,\n FlatList,\n HStack,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n Spinner,\n Button,\n ButtonText,\n ButtonIcon,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../constants';\nimport { useSelector } from 'react-redux';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport colors from 'tailwindcss/colors';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\n// Define props interface for the component\ninterface ChannelsProps {\n channels?: any[];\n loading?: boolean;\n}\n\nconst Channels: React.FC<ChannelsProps> = ({ channels, loading }) => {\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const user = useSelector(userSelector);\n\n useLayoutEffect(() => {\n // Optional: Add any layout effects here\n }, []);\n\n const openInbox = React.useCallback((item: any) => {\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n const memberImage =\n item.type === RoomType.Direct\n ? channelMembers?.length == 1\n ? channelMembers[0]?.picture ?? null\n : null\n : null;\n\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n memberImage: memberImage,\n channelType: item?.type,\n hideTabBar: true,\n });\n }, []);\n\n const renderChannels = ({ item }: any) => {\n const matches: any = item?.title?.match(/\\b(\\w)/g);\n // const acronym: any = matches.join('').substring(0, 2); // JSON\n\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n return (\n <TouchableOpacity key={item?.id} style={{ marginVertical: 10 }} onPress={() => openInbox(item)}>\n <HStack className=\"flex-1 items-center justify-center\">\n <HStack className=\"flex-1 items-center\" space={'sm'}>\n <Box className=\"m-0 p-0\">\n {item.type == RoomType.Direct ? (\n <Avatar key={'direct-channel-profile-msg-key'} size={'sm'} className=\"bg-transparent\">\n <AvatarFallbackText>\n {startCase(channelMembers[0]?.username?.charAt(0))}\n </AvatarFallbackText>\n <AvatarImage\n alt=\"image\"\n style={{\n // width: 25,\n // height: 25,\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: channelMembers[0]?.picture,\n }}\n />\n {channelMembers?.length > 1 ? (\n <AvatarBadge\n style={{ width: 20, height: 20 }}\n className=\"right-[-1px] bottom-[-1px] items-center bg-[#211627] rounded-md\"\n >\n <Text style={{ fontSize: 12, fontWeight: 'bold', color: '#fff' }}>\n {channelMembers?.length}\n </Text>\n </AvatarBadge>\n ) : (\n <AvatarBadge style={{ width: 10, height: 10 }} className=\"bg-green-800\" />\n )}\n </Avatar>\n ) : item.type == RoomType.Private ? (\n <>\n <Octicons color=\"black\" name=\"lock\" size={20} />\n </>\n ) : (\n <Octicons color=\"black\" name=\"hash\" size={20} />\n )}\n </Box>\n <Text className=\"text-gray-800 font-bold\">{item.title}</Text>\n </HStack>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n return (\n <VirtualizedScrollView>\n <VStack space=\"md\" className=\"flex-1 pt-2\">\n <FlatList\n style={{ flex: 1, paddingHorizontal: 4, paddingBottom: 10 }}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n marginBottom: 100,\n }}\n data={channels && channels.length > 0 ? channels : []}\n renderItem={renderChannels}\n ListEmptyComponent={() => {\n return (\n <Box className=\"bg-white py-2\">\n {channels?.length == 0 && loading ? (\n <VStack space=\"sm\">\n <Box className=\"px-4 py-5\">\n <Text>No channels found</Text>\n </Box>\n </VStack>\n ) : (\n <Spinner color={colors.blue[500]} />\n )}\n </Box>\n );\n }}\n key={'search-channel-people-list'}\n keyboardShouldPersistTaps=\"always\"\n />\n </VStack>\n </VirtualizedScrollView>\n );\n};\n\nexport default React.memo(Channels);\n"],"names":["React","_a","_b"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React__default,{useLayoutEffect}from'react';import {TouchableOpacity,Dimensions}from'react-native';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useNavigation,useRoute,useFocusEffect}from'@react-navigation/native';import {startCase}from'lodash-es';import {VStack,FlatList,Box,Text,Spinner,HStack,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge}from'@admin-layout/gluestack-ui-mobile';import {RoomType}from'common';import {Octicons}from'@expo/vector-icons';import'../../constants/device.js';import'../../constants/globalStyles.js';import'../../constants/Layout.js';import {NavigationRoutes}from'../../constants/routes.js';import {useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';Dimensions.get("window").width;
|
|
2
2
|
Dimensions.get("window").height;
|
|
3
|
-
const
|
|
3
|
+
const People = ({
|
|
4
4
|
channels,
|
|
5
5
|
loading
|
|
6
6
|
}) => {
|
|
@@ -69,4 +69,4 @@ const PeopleSearchScreen = ({
|
|
|
69
69
|
return /* @__PURE__ */ React__default.createElement(Box, { className: "bg-white py-2" }, (channels == null ? void 0 : channels.length) == 0 && loading ? /* @__PURE__ */ React__default.createElement(VStack, { space: "sm" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-5" }, /* @__PURE__ */ React__default.createElement(Text, null, "No channels found"))) : /* @__PURE__ */ React__default.createElement(Spinner, { color: "$blue500" }));
|
|
70
70
|
}, key: "search-channel-people-list", keyboardShouldPersistTaps: "always" })));
|
|
71
71
|
};
|
|
72
|
-
var People = React__default.memo(
|
|
72
|
+
var People$1 = React__default.memo(People);export{People$1 as default};//# sourceMappingURL=People.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"People.js","sources":["../../../src/screens/Search/People.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { TouchableOpacity, Dimensions, Keyboard, KeyboardEvent } from 'react-native';\nimport styles from './styles';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\nimport {\n Text,\n VStack,\n Box,\n Icon,\n FlatList,\n HStack,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n AvatarGroup,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useGetChannelsByUserQuery } from 'common/graphql';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../constants';\nimport { useSelector } from 'react-redux';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport colors from 'tailwindcss/colors';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst PeopleSearchScreen = ({ channels, loading }) => {\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const user = useSelector(userSelector);\n\n useLayoutEffect(() => {\n // setLoading(true);\n }, []);\n\n useFocusEffect(\n React.useCallback(() => {\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const openInbox = React.useCallback((item: any) => {\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n const memberImage =\n item.type === RoomType.Direct\n ? channelMembers?.length == 1\n ? channelMembers[0]?.picture ?? null\n : null\n : null;\n\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n memberImage: memberImage,\n channelType: item?.type,\n hideTabBar: true,\n });\n }, []);\n\n const renderChannels = ({ item }: any) => {\n const matches: any = item?.title?.match(/\\b(\\w)/g);\n //const acronym: any = matches.join('').substring(0, 2); // JSON\n\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n return (\n <TouchableOpacity key={item?.id} style={{ marginVertical: 10 }} onPress={() => openInbox(item)}>\n <HStack className=\"flex-1 items-center justify-between\">\n <HStack className=\"flex-1 items-center\" space={'sm'}>\n <Box className=\"m-0 p-0\">\n {item.type == RoomType.Direct ? (\n <Avatar key={'direct-channel-profile-msg-key'} size={'sm'} className=\"bg-transparent\">\n <AvatarFallbackText>\n {startCase(channelMembers[0]?.username?.charAt(0))}\n </AvatarFallbackText>\n <AvatarImage\n alt=\"image\"\n style={{\n // width: 25,\n // height: 25,\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: channelMembers[0]?.picture,\n }}\n />\n {channelMembers?.length > 1 ? (\n <AvatarBadge\n style={{ width: 20, height: 20 }}\n className=\"right-[-1px] bottom-[1px] items-center bg-[#211627] rounded-md\"\n >\n <Text style={{ fontSize: 12, fontWeight: 'bold', color: '#fff' }}>\n {channelMembers?.length}\n </Text>\n </AvatarBadge>\n ) : (\n <AvatarBadge style={{ width: 10, height: 10 }} className=\"bg-green-800\" />\n )}\n </Avatar>\n ) : item.type == RoomType.Private ? (\n <>\n <Octicons color=\"black\" name=\"lock\" size={20} />\n </>\n ) : (\n <Octicons color=\"black\" name=\"hash\" size={20} />\n )}\n </Box>\n <Text className=\"text-gray-800 font-bold\">{item.title}</Text>\n </HStack>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n return (\n <VirtualizedScrollView>\n <VStack space=\"md\" className=\"flex-1 pt-2\">\n <FlatList\n style={{ paddingHorizontal: 4, flex: 1, paddingBottom: 10 }}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n marginBottom: 100,\n }}\n data={channels && channels.length > 0 ? channels : []}\n renderItem={renderChannels}\n ListEmptyComponent={() => {\n return (\n <Box className=\"bg-white py-2\">\n {channels?.length == 0 && loading ? (\n <VStack space=\"sm\">\n <Box className=\"px-4 py-5\">\n <Text>No channels found</Text>\n </Box>\n </VStack>\n ) : (\n <Spinner color={'$blue500'} />\n )}\n </Box>\n );\n }}\n key={'search-channel-people-list'}\n keyboardShouldPersistTaps=\"always\"\n />\n </VStack>\n </VirtualizedScrollView>\n );\n};\n\nexport default React.memo(PeopleSearchScreen);\n"],"names":["React","_a","_b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"People.js","sources":["../../../src/screens/Search/People.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { TouchableOpacity, Dimensions, Keyboard, KeyboardEvent } from 'react-native';\nimport styles from './styles';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useNavigation, useRoute, useFocusEffect } from '@react-navigation/native';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\nimport {\n Text,\n VStack,\n Box,\n Icon,\n FlatList,\n HStack,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n AvatarGroup,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../constants';\nimport { useSelector } from 'react-redux';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport colors from 'tailwindcss/colors';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\n// Define props interface for the component\ninterface PeopleProps {\n channels: any[];\n loading: boolean;\n}\n\nconst People: React.FC<PeopleProps> = ({ channels, loading }) => {\n const navigation = useNavigation<any>();\n const route = useRoute<any>();\n const user = useSelector(userSelector);\n\n useLayoutEffect(() => {\n // setLoading(true);\n }, []);\n\n useFocusEffect(\n React.useCallback(() => {\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const openInbox = React.useCallback((item: any) => {\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n const memberImage =\n item.type === RoomType.Direct\n ? channelMembers?.length == 1\n ? channelMembers[0]?.picture ?? null\n : null\n : null;\n\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n memberImage: memberImage,\n channelType: item?.type,\n hideTabBar: true,\n });\n }, []);\n\n const renderChannels = ({ item }: any) => {\n const matches: any = item?.title?.match(/\\b(\\w)/g);\n //const acronym: any = matches.join('').substring(0, 2); // JSON\n\n const channelMembers =\n item?.members\n ?.filter((ch: any) => ch?.user?.id != user?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null;\n\n return (\n <TouchableOpacity key={item?.id} style={{ marginVertical: 10 }} onPress={() => openInbox(item)}>\n <HStack className=\"flex-1 items-center justify-between\">\n <HStack className=\"flex-1 items-center\" space={'sm'}>\n <Box className=\"m-0 p-0\">\n {item.type == RoomType.Direct ? (\n <Avatar key={'direct-channel-profile-msg-key'} size={'sm'} className=\"bg-transparent\">\n <AvatarFallbackText>\n {startCase(channelMembers[0]?.username?.charAt(0))}\n </AvatarFallbackText>\n <AvatarImage\n alt=\"image\"\n style={{\n // width: 25,\n // height: 25,\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: channelMembers[0]?.picture,\n }}\n />\n {channelMembers?.length > 1 ? (\n <AvatarBadge\n style={{ width: 20, height: 20 }}\n className=\"right-[-1px] bottom-[1px] items-center bg-[#211627] rounded-md\"\n >\n <Text style={{ fontSize: 12, fontWeight: 'bold', color: '#fff' }}>\n {channelMembers?.length}\n </Text>\n </AvatarBadge>\n ) : (\n <AvatarBadge style={{ width: 10, height: 10 }} className=\"bg-green-800\" />\n )}\n </Avatar>\n ) : item.type == RoomType.Private ? (\n <>\n <Octicons color=\"black\" name=\"lock\" size={20} />\n </>\n ) : (\n <Octicons color=\"black\" name=\"hash\" size={20} />\n )}\n </Box>\n <Text className=\"text-gray-800 font-bold\">{item.title}</Text>\n </HStack>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n return (\n <VirtualizedScrollView>\n <VStack space=\"md\" className=\"flex-1 pt-2\">\n <FlatList\n style={{ paddingHorizontal: 4, flex: 1, paddingBottom: 10 }}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n marginBottom: 100,\n }}\n data={channels && channels.length > 0 ? channels : []}\n renderItem={renderChannels}\n ListEmptyComponent={() => {\n return (\n <Box className=\"bg-white py-2\">\n {channels?.length == 0 && loading ? (\n <VStack space=\"sm\">\n <Box className=\"px-4 py-5\">\n <Text>No channels found</Text>\n </Box>\n </VStack>\n ) : (\n <Spinner color={'$blue500'} />\n )}\n </Box>\n );\n }}\n key={'search-channel-people-list'}\n keyboardShouldPersistTaps=\"always\"\n />\n </VStack>\n </VirtualizedScrollView>\n );\n};\n\nexport default React.memo(People);\n"],"names":["React","_a","_b"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React__default,{useLayoutEffect}from'react';import {TouchableOpacity,Dimensions}from'react-native';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useNavigation,useRoute,useFocusEffect}from'@react-navigation/native';import {startCase}from'lodash-es';import {VStack,FlatList,Box,Text,Spinner,HStack,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge}from'@admin-layout/gluestack-ui-mobile';import {RoomType}from'common';import {Octicons}from'@expo/vector-icons';import'../../constants/device.js';import'../../constants/globalStyles.js';import'../../constants/Layout.js';import {NavigationRoutes}from'../../constants/routes.js';import {useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';import colors from'tailwindcss/colors';Dimensions.get("window").width;
|
|
2
2
|
Dimensions.get("window").height;
|
|
3
|
-
const
|
|
3
|
+
const Recents = ({
|
|
4
4
|
channels,
|
|
5
5
|
loading
|
|
6
6
|
}) => {
|
|
@@ -72,4 +72,4 @@ const RecentsSearchScreen = ({
|
|
|
72
72
|
return /* @__PURE__ */ React__default.createElement(Box, { className: "bg-white py-2" }, (channels == null ? void 0 : channels.length) == 0 && loading ? /* @__PURE__ */ React__default.createElement(VStack, { space: "sm" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-5" }, /* @__PURE__ */ React__default.createElement(Text, null, "No channels found"))) : /* @__PURE__ */ React__default.createElement(Spinner, { color: colors.blue[500] }));
|
|
73
73
|
}, key: "search-channel-recent-list", keyboardShouldPersistTaps: "always" })));
|
|
74
74
|
};
|
|
75
|
-
var Recents = React__default.memo(
|
|
75
|
+
var Recents$1 = React__default.memo(Recents);export{Recents$1 as default};//# sourceMappingURL=Recents.js.map
|