@messenger-box/slack-ui-mobile 10.0.3-alpha.36 → 10.0.3-alpha.37
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/screens/Home/Components/Channels/Channels.js +91 -103
- package/lib/screens/Home/Components/Channels/Channels.js.map +1 -1
- package/lib/screens/Home/Components/DirectChannels/DirectChannels.js +163 -231
- package/lib/screens/Home/Components/DirectChannels/DirectChannels.js.map +1 -1
- package/lib/screens/Home/Components/Teams/Teams.js +76 -91
- package/lib/screens/Home/Components/Teams/Teams.js.map +1 -1
- package/lib/screens/Home/HomeScreen.js +3 -5
- package/lib/screens/Home/HomeScreen.js.map +1 -1
- package/package.json +3 -3
- package/lib/screens/Home/Components/Channels/channels-xstate.js +0 -247
- package/lib/screens/Home/Components/Channels/channels-xstate.js.map +0 -1
- package/lib/screens/Home/Components/Channels/useSafeChannelsMachine.js +0 -128
- package/lib/screens/Home/Components/Channels/useSafeChannelsMachine.js.map +0 -1
- package/lib/screens/Home/Components/DirectChannels/directChannels-xstate.js +0 -202
- package/lib/screens/Home/Components/DirectChannels/directChannels-xstate.js.map +0 -1
- package/lib/screens/Home/Components/DirectChannels/useSafeDirectChannelsMachine.js +0 -108
- package/lib/screens/Home/Components/DirectChannels/useSafeDirectChannelsMachine.js.map +0 -1
- package/lib/screens/Home/Components/Teams/hooks/useSafeMachine.js +0 -96
- package/lib/screens/Home/Components/Teams/hooks/useSafeMachine.js.map +0 -1
- package/lib/screens/Home/Components/Teams/workflow/teams-xstate.js +0 -198
- package/lib/screens/Home/Components/Teams/workflow/teams-xstate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomeScreen.js","sources":["../../../src/screens/Home/HomeScreen.tsx"],"sourcesContent":["import { Ionicons, AntDesign, FontAwesome5, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport React, { useCallback, useState, useMemo, createContext } from 'react';\nimport { TouchableHighlight, Share, Dimensions } from 'react-native';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport styles from './styles';\nimport {\n Box,\n Avatar,\n Icon,\n AddIcon,\n Text,\n Spinner,\n Center,\n Fab,\n HStack,\n Divider,\n VStack,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useSetDeviceTokenMutation, useGetOrganizationSharableLinkQuery } from 'common/graphql';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useDrawerLayout } from '../../hooks/useDrawerLayout';\nimport { useDisclose } from '../../hooks/useDisclose';\nimport { useExpoNotification } from '../../hooks/useExpoNotificationProvider';\nimport { Teams } from './Components/Teams';\nimport { Channels } from './Components/Channels/index';\nimport { DirectChannels } from './Components/DirectChannels';\nimport { TopCommonSlider } from './Components/TopCommonSlider';\nimport { InviteMembers } from './Components/InviteMembers';\nimport { NavigationRoutes, colors } from '../../constants';\nimport { LoadingSpinnerDefault, Actionsheet } from '../../components';\nimport { config } from '../../config';\nimport Colors from 'tailwindcss/colors';\n\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\n// Create a context to control refetching across child components\nexport const RefetchContext = createContext({\n shouldRefetch: false,\n setRefetchStatus: (status: boolean) => {},\n});\n\nconst HomeScreen = ({ navigation, route }) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { isOpen, onOpen, onClose } = useDisclose();\n const { setSwipeEnabled, orgName, organizationDetail } = useDrawerLayout();\n const { expoToken } = useExpoNotification();\n const [setDeviceTokenMutation] = useSetDeviceTokenMutation();\n const [isLoading, setIsLoading] = useState(true);\n const [shouldRefetch, setShouldRefetch] = useState(false);\n\n // Memoize the refetch context value\n const refetchContextValue = useMemo(\n () => ({\n shouldRefetch,\n setRefetchStatus: setShouldRefetch,\n }),\n [shouldRefetch],\n );\n\n // Only fetch sharable link when needed (when action sheet is open)\n const { data: organizationSharableLink } = useGetOrganizationSharableLinkQuery({\n fetchPolicy: 'cache-and-network',\n skip: !isOpen,\n });\n\n // Define shareLink before it's used in the memo\n const shareLink = useCallback(async () => {\n try {\n const result = await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n }, [organizationSharableLink?.getOrganizationSharableLink]);\n\n // Memoize action items to prevent unnecessary re-renders\n const actionItems = useMemo(\n () => [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.primaryBgColor,\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n }}\n >\n <Ionicons color={'white'} name=\"share-outline\" size={22} />\n <Text className=\"text-white\" style={{ color: 'white', fontWeight: '600', fontSize: 16 }}>\n Share a Link\n </Text>\n </HStack>\n ),\n onPress: async () => await shareLink(),\n },\n {\n id: 2,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <AntDesign color={Colors.gray[900]} name=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n Add from Contacts\n </Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {\n orgName,\n }),\n },\n {\n id: 3,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <MaterialCommunityIcons color={Colors.gray[900]} name=\"email-outline\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add by Email</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleByEmail, {\n orgName,\n }),\n },\n ],\n [isOpen, navigation, orgName, shareLink],\n );\n\n // Optimize token handling\n const handlerExpoToken = useCallback(() => {\n if (expoToken) {\n setDeviceTokenMutation({\n variables: {\n deviceToken: expoToken,\n },\n });\n }\n }, [expoToken, setDeviceTokenMutation]);\n\n useFocusEffect(\n useCallback(() => {\n setSwipeEnabled(true);\n handlerExpoToken();\n setShouldRefetch(true);\n\n // Simplified loading logic\n const timer = setTimeout(() => {\n setIsLoading(false);\n setShouldRefetch(false);\n }, 500);\n\n return () => {\n clearTimeout(timer);\n setSwipeEnabled(false);\n };\n }, [orgName, setSwipeEnabled, handlerExpoToken]),\n );\n\n // Memoize the AddTeammates component\n const AddTeammates = useCallback(\n () => (\n <Box style={[styles.bottomContainer, { marginBottom: 8, paddingHorizontal: 16 }]}>\n <TouchableHighlight underlayColor={Colors.gray[50]} onPress={onOpen}>\n <Box className=\"py-3 px-2\">\n <HStack className=\"w-full flex-1 items-center space-x-3\">\n <Box\n style={{\n backgroundColor: Colors.gray[100],\n borderRadius: 20,\n padding: 6,\n }}\n >\n <Icon as={AddIcon} style={{ width: 20, height: 20 }} color={Colors.gray[700]} />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableHighlight>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n header={\n <Text\n className=\"text-center font-bold text-lg\"\n style={{\n paddingVertical: 16,\n color: Colors.gray[900],\n }}\n >\n Invite people to join your team\n </Text>\n }\n />\n </Box>\n ),\n [isOpen, onOpen, onClose, actionItems],\n );\n\n if (!orgName) {\n return (\n <Center className=\"flex-1 bg-white\">\n <Spinner size=\"large\" color={colors.primaryBgColor} />\n </Center>\n );\n }\n\n return (\n <RefetchContext.Provider value={refetchContextValue}>\n <VirtualizedScrollView className=\"bg-white flex-1\">\n <Box className=\"flex-1 bg-white pb-10\">\n {isLoading ? (\n <VStack space=\"md\" className=\"p-4\">\n <Box className=\"h-12 bg-gray-100 rounded-md animate-pulse\" />\n <Box className=\"h-32 bg-gray-100 rounded-md animate-pulse\" />\n <Box className=\"h-24 bg-gray-100 rounded-md animate-pulse\" />\n <Box className=\"h-40 bg-gray-100 rounded-md animate-pulse\" />\n </VStack>\n ) : (\n <>\n <TopCommonSlider />\n <Divider style={{ marginVertical: 12 }} />\n <Teams />\n <Divider style={{ marginVertical: 12 }} />\n <Channels />\n <Divider style={{ marginVertical: 12 }} />\n <DirectChannels />\n <Divider style={{ marginVertical: 12 }} />\n {/* <AddTeammates />\n <Divider style={{ marginVertical: 12 }} /> */}\n <InviteMembers />\n </>\n )}\n </Box>\n </VirtualizedScrollView>\n <Fab\n onPress={() => navigation.navigate(NavigationRoutes.SearchAddChannel, { orgName })}\n size=\"sm\"\n className=\"items-center shadow-lg\"\n style={{ backgroundColor: colors.primaryBgColor, marginBottom: 20, marginRight: 20 }}\n >\n <FontAwesome5 color=\"white\" name=\"edit\" size={18} />\n </Fab>\n </RefetchContext.Provider>\n );\n};\n\n// Memoize the entire Home component\nconst Home = React.memo((props: any) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n\n useFocusEffect(\n React.useCallback(() => {\n if (!user?.profile) navigation?.navigate(NavigationRoutes.Login);\n return () => {};\n }, []),\n );\n\n if (!orgName) return <LoadingSpinnerDefault />;\n\n return <HomeScreen {...props} />;\n});\n\nexport default Home;\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":";;;;;;;;;;;;;;;;AAsBqB,UAAA,CAAW,GAAI,CAAA,QAAQ,CAAE,CAAA;AACnB,CAAC,QAAA,CAAS,SAAS,QAAS,CAAA,OAAA,EAAS,SAAS,MAAM;AAGxE,MAAM,iBAAiB,aAAc,CAAA;AAAA,EAC1C,aAAe,EAAA,KAAA;AAAA,EACf,gBAAA,EAAkB,CAAC,MAAoB,KAAA;AAAA;AACzC,CAAC;AACD,MAAM,aAAa,CAAC;AAAA,EAClB,UAAA;AAAA,EACA;AACF,CAAM,KAAA;AACJ,EAAa,WAAY,CAAA,CAAC,KAAe,KAAA,KAAA,CAAM,MAAM,YAAY;AACjE,EAAM,MAAA;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,MACE,WAAY,EAAA;AAChB,EAAM,MAAA;AAAA,IACJ,eAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,MACE,eAAgB,EAAA;AACpB,EAAM,MAAA;AAAA,IACJ;AAAA,MACE,mBAAoB,EAAA;AACxB,EAAM,MAAA,CAAC,sBAAsB,CAAA,GAAI,yBAA0B,EAAA;AAC3D,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,IAAI,CAAA;AAC/C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA;AAGxD,EAAM,MAAA,mBAAA,GAAsB,QAAQ,OAAO;AAAA,IACzC,aAAA;AAAA,IACA,gBAAkB,EAAA;AAAA,GACpB,CAAA,EAAI,CAAC,aAAa,CAAC,CAAA;AAGnB,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA;AAAA,MACJ,mCAAoC,CAAA;AAAA,IACtC,WAAa,EAAA,mBAAA;AAAA,IACb,MAAM,CAAC;AAAA,GACR,CAAA;AAGD,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY;AAnE5C,IAAA,IAAA,EAAA;AAoEI,IAAI,IAAA;AACF,MAAM,MAAA,MAAA,GAAS,MAAM,KAAA,CAAM,KAAM,CAAA;AAAA,QAC/B,SAAS,CAAG,EAAA,MAAA,CAAO,QAAc,CAAA,GAAA,EAAA,CAAA,EAAA,GAAA,wBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,wBAAA,CAA0B,gCAA1B,IAAyD,GAAA,EAAA,GAAA,EAAA,CAAA;AAAA,OAC3F,CAAA;AAAA,aACM,KAAP,EAAA;AACA,MAAA,KAAA,CAAM,MAAM,OAAO,CAAA;AAAA;AACrB,GACC,EAAA,CAAC,wBAA0B,IAAA,IAAA,GAAA,MAAA,GAAA,wBAAA,CAAA,2BAA2B,CAAC,CAAA;AAG1D,EAAM,MAAA,WAAA,GAAc,OAAQ,CAAA,MAAM,CAAC;AAAA,IACjC,EAAI,EAAA,CAAA;AAAA,IACJ,uBAAQA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAO,IAAM,EAAA,SAAA,EAAU,sCAAqC,KAAO,EAAA;AAAA,MAChF,iBAAiBC,MAAO,CAAA,cAAA;AAAA,MACxB,eAAiB,EAAA,EAAA;AAAA,MACjB,YAAc,EAAA,CAAA;AAAA,MACd,gBAAkB,EAAA,EAAA;AAAA,MAClB,cAAgB,EAAA;AAAA,KAEE,EAAA,kBAAAD,cAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAO,SAAS,IAAK,EAAA,eAAA,EAAgB,IAAM,EAAA,EAAA,EAAI,CACzD,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,SAAA,EAAU,cAAa,KAAO,EAAA;AAAA,MACpD,KAAO,EAAA,OAAA;AAAA,MACP,UAAY,EAAA,KAAA;AAAA,MACZ,QAAU,EAAA;AAAA,KACZ,EAAA,EAAG,cAEe,CACJ,CAAA;AAAA,IAChB,OAAA,EAAS,YAAY,MAAM,SAAU;AAAA,GACpC,EAAA;AAAA,IACD,EAAI,EAAA,CAAA;AAAA,IACJ,uBAAQA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAO,IAAM,EAAA,SAAA,EAAU,sCAAqC,KAAO,EAAA;AAAA,MAChF,eAAiB,EAAA,EAAA;AAAA,MACjB,YAAc,EAAA,CAAA;AAAA,MACd,gBAAkB,EAAA,EAAA;AAAA,MAClB,cAAgB,EAAA,CAAA;AAAA,MAChB,eAAA,EAAiBE,OAAO,IAAK,CAAA,EAAA;AAAA,KAEX,EAAA,kBAAAF,cAAA,CAAA,aAAA,CAAC,SAAU,EAAA,EAAA,KAAA,EAAOE,OAAO,IAAK,CAAA,GAAA,CAAA,EAAM,IAAK,EAAA,SAAA,EAAU,IAAM,EAAA,EAAA,EAAI,CAC7D,kBAAAF,cAAA,CAAA,aAAA,CAAC,QAAK,KAAO,EAAA;AAAA,MAC7B,KAAA,EAAOE,OAAO,IAAK,CAAA,GAAA,CAAA;AAAA,MACnB,UAAY,EAAA,KAAA;AAAA,MACZ,QAAU,EAAA;AAAA,KACZ,EAAA,EAAG,mBAEe,CACJ,CAAA;AAAA,IAChB,OAAS,EAAA,MAAM,UAAW,CAAA,QAAA,CAAS,iBAAiB,qBAAuB,EAAA;AAAA,MACzE;AAAA,KACD;AAAA,GACA,EAAA;AAAA,IACD,EAAI,EAAA,CAAA;AAAA,IACJ,uBAAQF,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAO,IAAM,EAAA,SAAA,EAAU,sCAAqC,KAAO,EAAA;AAAA,MAChF,eAAiB,EAAA,EAAA;AAAA,MACjB,YAAc,EAAA,CAAA;AAAA,MACd,gBAAkB,EAAA,EAAA;AAAA,MAClB,cAAgB,EAAA,CAAA;AAAA,MAChB,eAAA,EAAiBE,OAAO,IAAK,CAAA,EAAA;AAAA,KAEX,EAAA,kBAAAF,cAAA,CAAA,aAAA,CAAC,sBAAuB,EAAA,EAAA,KAAA,EAAOE,OAAO,IAAK,CAAA,GAAA,CAAA,EAAM,IAAK,EAAA,eAAA,EAAgB,IAAM,EAAA,EAAA,EAAI,CAChF,kBAAAF,cAAA,CAAA,aAAA,CAAC,QAAK,KAAO,EAAA;AAAA,MAC7B,KAAA,EAAOE,OAAO,IAAK,CAAA,GAAA,CAAA;AAAA,MACnB,UAAY,EAAA,KAAA;AAAA,MACZ,QAAU,EAAA;AAAA,KACZ,EAAA,EAAG,cAAY,CACD,CAAA;AAAA,IAChB,OAAS,EAAA,MAAM,UAAW,CAAA,QAAA,CAAS,iBAAiB,gBAAkB,EAAA;AAAA,MACpE;AAAA,KACD;AAAA,GACF,CAAG,EAAA,CAAC,QAAQ,UAAY,EAAA,OAAA,EAAS,SAAS,CAAC,CAAA;AAG5C,EAAM,MAAA,gBAAA,GAAmB,YAAY,MAAM;AACzC,IAAA,IAAI,SAAW,EAAA;AACb,MAAuB,sBAAA,CAAA;AAAA,QACrB,SAAW,EAAA;AAAA,UACT,WAAa,EAAA;AAAA;AACf,OACD,CAAA;AAAA;AACH,GACC,EAAA,CAAC,SAAW,EAAA,sBAAsB,CAAC,CAAA;AACtC,EAAA,cAAA,CAAe,YAAY,MAAM;AAC/B,IAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,IAAiB,gBAAA,EAAA;AACjB,IAAA,gBAAA,CAAiB,IAAI,CAAA;AAGrB,IAAM,MAAA,KAAA,GAAQ,WAAW,MAAM;AAC7B,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,OACrB,GAAG,CAAA;AACN,IAAA,OAAO,MAAM;AACX,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,KACvB;AAAA,KACC,CAAC,OAAA,EAAS,eAAiB,EAAA,gBAAgB,CAAC,CAAC,CAAA;AAGhD,EAAqB,YAAY,sBAAMF,cAAA,CAAA,aAAA,CAAC,OAAI,KAAO,EAAA,CAAC,OAAO,eAAiB,EAAA;AAAA,IAC1E,YAAc,EAAA,CAAA;AAAA,IACd,iBAAmB,EAAA;AAAA,GACpB,qBACcA,cAAA,CAAA,aAAA,CAAA,kBAAA,EAAA,EAAmB,eAAeE,MAAO,CAAA,IAAA,CAAK,KAAK,OAAS,EAAA,MAAA,EAAA,+CACxD,GAAI,EAAA,EAAA,SAAA,EAAU,+BACVF,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,WAAU,sCACd,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,KAAO,EAAA;AAAA,IAC5B,eAAA,EAAiBE,OAAO,IAAK,CAAA,GAAA,CAAA;AAAA,IAC7B,YAAc,EAAA,EAAA;AAAA,IACd,OAAS,EAAA;AAAA,GAEW,EAAA,kBAAAF,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAI,SAAS,KAAO,EAAA;AAAA,IAC5C,KAAO,EAAA,EAAA;AAAA,IACP,MAAQ,EAAA;AAAA,GACV,EAAG,OAAOE,MAAO,CAAA,IAAA,CAAK,MAAM,CACZ,CAAA,kBACCF,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA;AAAA,IAC7B,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA;AAAA,GACd,EAAG,OAAOE,MAAO,CAAA,IAAA,CAAK,QAAM,eAEV,CACJ,CACJ,CACJ,CAEA,kBAAAF,cAAA,CAAA,aAAA,CAACG,eAAY,MAAgB,EAAA,WAAA,EAA0B,QAAU,EAAA,OAAA,EAAS,eAAiB,EAAA,IAAA,EAAM,wBAASH,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,SAAU,EAAA,+BAAA,EAAgC,KAAO,EAAA;AAAA,IAC1K,eAAiB,EAAA,EAAA;AAAA,IACjB,KAAA,EAAOE,OAAO,IAAK,CAAA,GAAA;AAAA,GACrB,EAAA,EAAG,iCAEiB,CAAA,EAAS,CACrB,CAAA,EAAQ,CAAC,MAAQ,EAAA,MAAA,EAAQ,OAAS,EAAA,WAAW,CAAC;AACxD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAO,uBAAAF,cAAA,CAAA,aAAA,CAAC,MAAO,EAAA,EAAA,SAAA,EAAU,iBACb,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,IAAA,EAAK,OAAQ,EAAA,KAAA,EAAOC,MAAO,CAAA,cAAA,EAAgB,CACxD,CAAA;AAAA;AAEV,EAAO,uBAAAD,cAAA,CAAA,aAAA,CAAC,eAAe,QAAf,EAAA,EAAwB,OAAO,mBAC7B,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,qBAAsB,EAAA,EAAA,SAAA,EAAU,iBAC7B,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAU,EAAA,uBAAA,EAAA,EACV,4BAAaA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAM,IAAK,EAAA,SAAA,EAAU,KAClC,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,SAAA,EAAU,6CAA4C,CAC3D,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAU,EAAA,2CAAA,EAA4C,mBAC1DA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,SAAU,EAAA,2CAAA,EAA4C,CAC3D,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAU,EAAA,2CAAA,EAA4C,CAC/D,CAAY,mBAAAA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,+CACP,eAAgB,EAAA,IAAA,CAAA,kBAChBA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA;AAAA,IAChC,cAAgB,EAAA;AAAA,KACf,CACe,kBAAAA,cAAA,CAAA,aAAA,CAAC,WAAM,CACP,kBAAAA,cAAA,CAAA,aAAA,CAAC,WAAQ,KAAO,EAAA;AAAA,IAChC,cAAgB,EAAA;AAAA,KACf,CACe,kBAAAA,cAAA,CAAA,aAAA,CAAC,cAAS,CACV,kBAAAA,cAAA,CAAA,aAAA,CAAC,WAAQ,KAAO,EAAA;AAAA,IAChC,cAAgB,EAAA;AAAA,KACf,CACe,kBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAe,CAChB,kBAAAA,cAAA,CAAA,aAAA,CAAC,WAAQ,KAAO,EAAA;AAAA,IAChC,cAAgB,EAAA;AAAA,GACf,EAAA,CAAA,kBAGgBA,cAAA,CAAA,aAAA,CAAA,aAAA,EAAA,IAAc,CACnB,CACR,CACJ,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,OAAS,EAAA,MAAM,UAAW,CAAA,QAAA,CAAS,iBAAiB,gBAAkB,EAAA;AAAA,IACjF;AAAA,GACD,CAAG,EAAA,IAAA,EAAK,IAAK,EAAA,SAAA,EAAU,0BAAyB,KAAO,EAAA;AAAA,IACtD,iBAAiBC,MAAO,CAAA,cAAA;AAAA,IACxB,YAAc,EAAA,EAAA;AAAA,IACd,WAAa,EAAA;AAAA,GACf,EAAA,kBACaD,cAAA,CAAA,aAAA,CAAA,YAAA,EAAA,EAAa,KAAM,EAAA,OAAA,EAAQ,MAAK,MAAO,EAAA,IAAA,EAAM,EAAI,EAAA,CACtD,CACJ,CAAA;AACR,CAAA;AAGA,MAAM,IAAO,GAAAA,cAAA,CAAM,IAAK,CAAA,CAAC,KAAe,KAAA;AACtC,EAAA,MAAM,OAAO,WAAY,CAAA,CAAC,KAAe,KAAA,KAAA,CAAM,MAAM,YAAY,CAAA;AACjE,EAAM,MAAA;AAAA,IACJ;AAAA,MACE,eAAgB,EAAA;AACpB,EAAA,MAAM,aAAa,aAAmB,EAAA;AACtC,EAAe,cAAA,CAAAA,cAAA,CAAM,YAAY,MAAM;AACrC,IAAA,IAAI,EAAC,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,OAAA,CAAA;AAAS,MAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAY,SAAS,gBAAiB,CAAA,KAAA,CAAA;AAC1D,IAAA,OAAO,MAAM;AAAA,KAAC;AAAA,GAChB,EAAG,EAAE,CAAC,CAAA;AACN,EAAA,IAAI,CAAC,OAAA;AAAS,IAAA,oDAAQ,qBAAsB,EAAA,IAAA,CAAA;AAC5C,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,+BAAe,KAAO,CAAA,CAAA;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"HomeScreen.js","sources":["../../../src/screens/Home/HomeScreen.tsx"],"sourcesContent":["import { Ionicons, AntDesign, FontAwesome5, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport React, { useCallback, useState, useMemo, createContext } from 'react';\nimport { TouchableHighlight, Share, Dimensions } from 'react-native';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport styles from './styles';\nimport {\n Box,\n Avatar,\n Icon,\n AddIcon,\n Text,\n Spinner,\n Center,\n Fab,\n HStack,\n Divider,\n VStack,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { RoomType } from 'common';\nimport { useSetDeviceTokenMutation, useGetOrganizationSharableLinkQuery } from 'common/graphql';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useDrawerLayout } from '../../hooks/useDrawerLayout';\nimport { useDisclose } from '../../hooks/useDisclose';\nimport { useExpoNotification } from '../../hooks/useExpoNotificationProvider';\nimport { Teams } from './Components/Teams';\nimport { Channels } from './Components/Channels/index';\nimport { DirectChannels } from './Components/DirectChannels';\nimport { TopCommonSlider } from './Components/TopCommonSlider';\nimport { InviteMembers } from './Components/InviteMembers';\nimport { NavigationRoutes, colors } from '../../constants';\nimport { LoadingSpinnerDefault, Actionsheet } from '../../components';\nimport { config } from '../../config';\nimport Colors from 'tailwindcss/colors';\n\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\n// Create a context to control refetching across child components\nexport const RefetchContext = createContext({\n shouldRefetch: false,\n setRefetchStatus: (status: boolean) => {},\n});\n\nconst HomeScreen = ({ navigation, route }) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { isOpen, onOpen, onClose } = useDisclose();\n const { setSwipeEnabled, orgName, organizationDetail } = useDrawerLayout();\n const { expoToken } = useExpoNotification();\n const [setDeviceTokenMutation] = useSetDeviceTokenMutation();\n const [shouldRefetch, setShouldRefetch] = useState(false);\n\n // Memoize the refetch context value\n const refetchContextValue = useMemo(\n () => ({\n shouldRefetch,\n setRefetchStatus: setShouldRefetch,\n }),\n [shouldRefetch],\n );\n\n // Only fetch sharable link when needed (when action sheet is open)\n const { data: organizationSharableLink } = useGetOrganizationSharableLinkQuery({\n fetchPolicy: 'cache-and-network',\n skip: !isOpen,\n });\n\n // Define shareLink before it's used in the memo\n const shareLink = useCallback(async () => {\n try {\n const result = await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n }, [organizationSharableLink?.getOrganizationSharableLink]);\n\n // Memoize action items to prevent unnecessary re-renders\n const actionItems = useMemo(\n () => [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.primaryBgColor,\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n }}\n >\n <Ionicons color={'white'} name=\"share-outline\" size={22} />\n <Text className=\"text-white\" style={{ color: 'white', fontWeight: '600', fontSize: 16 }}>\n Share a Link\n </Text>\n </HStack>\n ),\n onPress: async () => await shareLink(),\n },\n {\n id: 2,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <AntDesign color={Colors.gray[900]} name=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n Add from Contacts\n </Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {\n orgName,\n }),\n },\n {\n id: 3,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <MaterialCommunityIcons color={Colors.gray[900]} name=\"email-outline\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add by Email</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleByEmail, {\n orgName,\n }),\n },\n ],\n [isOpen, navigation, orgName, shareLink],\n );\n\n // Optimize token handling\n const handlerExpoToken = useCallback(() => {\n if (expoToken) {\n setDeviceTokenMutation({\n variables: {\n deviceToken: expoToken,\n },\n });\n }\n }, [expoToken, setDeviceTokenMutation]);\n\n useFocusEffect(\n useCallback(() => {\n setSwipeEnabled(true);\n handlerExpoToken();\n setShouldRefetch(true);\n\n // Set refetch status to false after a short delay\n const timer = setTimeout(() => {\n setShouldRefetch(false);\n }, 500);\n\n return () => {\n clearTimeout(timer);\n setSwipeEnabled(false);\n };\n }, [orgName, setSwipeEnabled, handlerExpoToken]),\n );\n\n // Memoize the AddTeammates component\n const AddTeammates = useCallback(\n () => (\n <Box style={[styles.bottomContainer, { marginBottom: 8, paddingHorizontal: 16 }]}>\n <TouchableHighlight underlayColor={Colors.gray[50]} onPress={onOpen}>\n <Box className=\"py-3 px-2\">\n <HStack className=\"w-full flex-1 items-center space-x-3\">\n <Box\n style={{\n backgroundColor: Colors.gray[100],\n borderRadius: 20,\n padding: 6,\n }}\n >\n <Icon as={AddIcon} style={{ width: 20, height: 20 }} color={Colors.gray[700]} />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableHighlight>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n header={\n <Text\n className=\"text-center font-bold text-lg\"\n style={{\n paddingVertical: 16,\n color: Colors.gray[900],\n }}\n >\n Invite people to join your team\n </Text>\n }\n />\n </Box>\n ),\n [isOpen, onOpen, onClose, actionItems],\n );\n\n if (!orgName) {\n return (\n <Center className=\"flex-1 bg-white\">\n <Spinner size=\"large\" color={colors.primaryBgColor} />\n </Center>\n );\n }\n\n return (\n <RefetchContext.Provider value={refetchContextValue}>\n <VirtualizedScrollView className=\"bg-white flex-1\">\n <Box className=\"flex-1 bg-white pb-10\">\n <TopCommonSlider />\n <Divider style={{ marginVertical: 12 }} />\n <Teams />\n <Divider style={{ marginVertical: 12 }} />\n <Channels />\n <Divider style={{ marginVertical: 12 }} />\n <DirectChannels />\n <Divider style={{ marginVertical: 12 }} />\n {/* <AddTeammates />\n <Divider style={{ marginVertical: 12 }} /> */}\n <InviteMembers />\n </Box>\n </VirtualizedScrollView>\n <Fab\n onPress={() => navigation.navigate(NavigationRoutes.SearchAddChannel, { orgName })}\n size=\"sm\"\n className=\"items-center shadow-lg\"\n style={{ backgroundColor: colors.primaryBgColor, marginBottom: 20, marginRight: 20 }}\n >\n <FontAwesome5 color=\"white\" name=\"edit\" size={18} />\n </Fab>\n </RefetchContext.Provider>\n );\n};\n\n// Memoize the entire Home component\nconst Home = React.memo((props: any) => {\n const user = useSelector((state: any) => state.user, shallowEqual);\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n\n useFocusEffect(\n React.useCallback(() => {\n if (!user?.profile) navigation?.navigate(NavigationRoutes.Login);\n return () => {};\n }, []),\n );\n\n if (!orgName) return <LoadingSpinnerDefault />;\n\n return <HomeScreen {...props} />;\n});\n\nexport default Home;\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@messenger-box/slack-ui-mobile",
|
|
3
|
-
"version": "10.0.3-alpha.
|
|
3
|
+
"version": "10.0.3-alpha.37",
|
|
4
4
|
"description": "Slack ui ref mobile package",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"watch-ts": "tsc --watch"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@messenger-box/platform-mobile": "10.0.3-alpha.
|
|
26
|
+
"@messenger-box/platform-mobile": "10.0.3-alpha.37"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"cp-cli": "^2.0.0"
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"typescript": {
|
|
49
49
|
"definition": "lib/index.d.ts"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "4a360a1be756050ed8c3c1cd61a037c6109f8866"
|
|
52
52
|
}
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import {setup,assign}from'xstate';import {merge}from'lodash-es';var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var BaseState = /* @__PURE__ */ ((BaseState2) => {
|
|
21
|
-
BaseState2["Idle"] = "idle";
|
|
22
|
-
BaseState2["Error"] = "error";
|
|
23
|
-
BaseState2["Loading"] = "loading";
|
|
24
|
-
BaseState2["Done"] = "done";
|
|
25
|
-
BaseState2["FetchData"] = "fetchData";
|
|
26
|
-
return BaseState2;
|
|
27
|
-
})(BaseState || {});
|
|
28
|
-
setup({
|
|
29
|
-
types: {
|
|
30
|
-
context: {},
|
|
31
|
-
events: {}
|
|
32
|
-
},
|
|
33
|
-
actions: {
|
|
34
|
-
errorState: assign(({
|
|
35
|
-
context,
|
|
36
|
-
event
|
|
37
|
-
}) => {
|
|
38
|
-
var _a;
|
|
39
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
40
|
-
error: ((_a = event.data) == null ? void 0 : _a.message) || "An error occurred",
|
|
41
|
-
loading: false,
|
|
42
|
-
channelsLoading: false,
|
|
43
|
-
moreChannelsLoading: false
|
|
44
|
-
});
|
|
45
|
-
}),
|
|
46
|
-
handleEmptyData: assign(({
|
|
47
|
-
context
|
|
48
|
-
}) => {
|
|
49
|
-
console.log("No data available, setting loading to false");
|
|
50
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
51
|
-
loading: false,
|
|
52
|
-
channelsLoading: false,
|
|
53
|
-
moreChannelsLoading: false
|
|
54
|
-
});
|
|
55
|
-
}),
|
|
56
|
-
setInitialContext: assign(({
|
|
57
|
-
context,
|
|
58
|
-
event
|
|
59
|
-
}) => {
|
|
60
|
-
var _a;
|
|
61
|
-
return merge(__spreadProps(__spreadValues({}, context), {
|
|
62
|
-
orgName: ((_a = event.data) == null ? void 0 : _a.orgName) || null,
|
|
63
|
-
loading: true,
|
|
64
|
-
channelsLoading: true
|
|
65
|
-
}));
|
|
66
|
-
}),
|
|
67
|
-
setChannels: assign(({
|
|
68
|
-
context,
|
|
69
|
-
event
|
|
70
|
-
}) => {
|
|
71
|
-
var _a;
|
|
72
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
73
|
-
channels: ((_a = event.data) == null ? void 0 : _a.channels) || [],
|
|
74
|
-
channelsLoading: false,
|
|
75
|
-
loading: false
|
|
76
|
-
});
|
|
77
|
-
}),
|
|
78
|
-
addMoreChannels: assign(({
|
|
79
|
-
context,
|
|
80
|
-
event
|
|
81
|
-
}) => {
|
|
82
|
-
var _a;
|
|
83
|
-
const newChannels = ((_a = event.data) == null ? void 0 : _a.channels) || [];
|
|
84
|
-
const showMore = newChannels.length > 0;
|
|
85
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
86
|
-
channels: [...context.channels, ...newChannels],
|
|
87
|
-
moreChannelsLoading: false,
|
|
88
|
-
showMoreChannels: showMore
|
|
89
|
-
});
|
|
90
|
-
}),
|
|
91
|
-
updateChannelsSkip: assign(({
|
|
92
|
-
context
|
|
93
|
-
}) => {
|
|
94
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
95
|
-
channelsSkip: context.channels.length,
|
|
96
|
-
moreChannelsLoading: true
|
|
97
|
-
});
|
|
98
|
-
}),
|
|
99
|
-
clearData: assign(({
|
|
100
|
-
context
|
|
101
|
-
}) => {
|
|
102
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
103
|
-
channels: [],
|
|
104
|
-
channelsSkip: 0,
|
|
105
|
-
showMoreChannels: true
|
|
106
|
-
});
|
|
107
|
-
}),
|
|
108
|
-
startLoading: assign(({
|
|
109
|
-
context
|
|
110
|
-
}) => {
|
|
111
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
112
|
-
loading: true
|
|
113
|
-
});
|
|
114
|
-
}),
|
|
115
|
-
stopLoading: assign(({
|
|
116
|
-
context
|
|
117
|
-
}) => {
|
|
118
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
119
|
-
loading: false,
|
|
120
|
-
channelsLoading: false,
|
|
121
|
-
moreChannelsLoading: false
|
|
122
|
-
});
|
|
123
|
-
}),
|
|
124
|
-
startChannelsLoading: assign(({
|
|
125
|
-
context
|
|
126
|
-
}) => {
|
|
127
|
-
return __spreadProps(__spreadValues({}, context), {
|
|
128
|
-
channelsLoading: true
|
|
129
|
-
});
|
|
130
|
-
})
|
|
131
|
-
},
|
|
132
|
-
guards: {
|
|
133
|
-
hasMoreChannels: ({
|
|
134
|
-
context
|
|
135
|
-
}) => {
|
|
136
|
-
return context.showMoreChannels;
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
schemas: {
|
|
140
|
-
events: {
|
|
141
|
-
type: "object",
|
|
142
|
-
properties: {
|
|
143
|
-
type: {
|
|
144
|
-
type: "string"
|
|
145
|
-
},
|
|
146
|
-
data: {
|
|
147
|
-
type: "object"
|
|
148
|
-
}
|
|
149
|
-
},
|
|
150
|
-
required: ["type"]
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}).createMachine({
|
|
154
|
-
id: "channels",
|
|
155
|
-
initial: "idle" /* Idle */,
|
|
156
|
-
context: {
|
|
157
|
-
orgName: null,
|
|
158
|
-
channels: [],
|
|
159
|
-
loading: false,
|
|
160
|
-
channelsLoading: false,
|
|
161
|
-
moreChannelsLoading: false,
|
|
162
|
-
error: null,
|
|
163
|
-
channelsSkip: 0,
|
|
164
|
-
showMoreChannels: true
|
|
165
|
-
},
|
|
166
|
-
states: {
|
|
167
|
-
["idle" /* Idle */]: {
|
|
168
|
-
on: {
|
|
169
|
-
["INITIAL_CONTEXT" /* INITIAL_CONTEXT */]: {
|
|
170
|
-
target: "fetchData" /* FetchData */,
|
|
171
|
-
actions: ["setInitialContext"]
|
|
172
|
-
},
|
|
173
|
-
["FETCH_MORE_CHANNELS" /* FETCH_MORE_CHANNELS */]: {
|
|
174
|
-
target: "fetchMoreChannels" /* FetchMoreChannels */,
|
|
175
|
-
actions: ["updateChannelsSkip"],
|
|
176
|
-
guard: "hasMoreChannels"
|
|
177
|
-
},
|
|
178
|
-
["REFETCH_CHANNELS" /* REFETCH_CHANNELS */]: {
|
|
179
|
-
target: "refetchChannels" /* RefetchChannels */,
|
|
180
|
-
actions: ["startChannelsLoading"]
|
|
181
|
-
},
|
|
182
|
-
["CLEAR_DATA" /* CLEAR_DATA */]: {
|
|
183
|
-
target: "idle" /* Idle */,
|
|
184
|
-
actions: ["clearData"]
|
|
185
|
-
},
|
|
186
|
-
["START_LOADING" /* START_LOADING */]: {
|
|
187
|
-
target: "idle" /* Idle */,
|
|
188
|
-
actions: ["startLoading"]
|
|
189
|
-
},
|
|
190
|
-
["STOP_LOADING" /* STOP_LOADING */]: {
|
|
191
|
-
target: "idle" /* Idle */,
|
|
192
|
-
actions: ["stopLoading"]
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
["error" /* Error */]: {
|
|
197
|
-
entry: ["errorState"],
|
|
198
|
-
on: {
|
|
199
|
-
["ERROR_HANDLED" /* ERROR_HANDLED */]: {
|
|
200
|
-
target: "idle" /* Idle */
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
["fetchData" /* FetchData */]: {
|
|
205
|
-
on: {
|
|
206
|
-
["SET_CHANNELS" /* SET_CHANNELS */]: {
|
|
207
|
-
target: "idle" /* Idle */,
|
|
208
|
-
actions: ["setChannels"]
|
|
209
|
-
},
|
|
210
|
-
TIMEOUT: {
|
|
211
|
-
target: "idle" /* Idle */,
|
|
212
|
-
actions: ["handleEmptyData"]
|
|
213
|
-
}
|
|
214
|
-
},
|
|
215
|
-
after: {
|
|
216
|
-
5e3: {
|
|
217
|
-
target: "idle" /* Idle */,
|
|
218
|
-
actions: ["handleEmptyData"]
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
},
|
|
222
|
-
["fetchMoreChannels" /* FetchMoreChannels */]: {
|
|
223
|
-
on: {
|
|
224
|
-
["FETCH_MORE_CHANNELS_SUCCESS" /* FETCH_MORE_CHANNELS_SUCCESS */]: {
|
|
225
|
-
target: "idle" /* Idle */,
|
|
226
|
-
actions: ["addMoreChannels"]
|
|
227
|
-
},
|
|
228
|
-
["ERROR" /* ERROR */]: {
|
|
229
|
-
target: "error" /* Error */,
|
|
230
|
-
actions: []
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
["refetchChannels" /* RefetchChannels */]: {
|
|
235
|
-
on: {
|
|
236
|
-
["SET_CHANNELS" /* SET_CHANNELS */]: {
|
|
237
|
-
target: "idle" /* Idle */,
|
|
238
|
-
actions: ["setChannels"]
|
|
239
|
-
},
|
|
240
|
-
["ERROR" /* ERROR */]: {
|
|
241
|
-
target: "error" /* Error */,
|
|
242
|
-
actions: []
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
});export{BaseState};//# sourceMappingURL=channels-xstate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channels-xstate.js","sources":["../../../../../src/screens/Home/Components/Channels/channels-xstate.ts"],"sourcesContent":["import { assign, setup } from 'xstate';\nimport { merge } from 'lodash-es';\nimport { RoomType } from 'common';\n\nexport const enum Actions {\n INITIAL_CONTEXT = 'INITIAL_CONTEXT',\n ERROR_HANDLED = 'ERROR_HANDLED',\n SET_CHANNELS = 'SET_CHANNELS',\n CLEAR_DATA = 'CLEAR_DATA',\n START_LOADING = 'START_LOADING',\n STOP_LOADING = 'STOP_LOADING',\n FETCH_MORE_CHANNELS = 'FETCH_MORE_CHANNELS',\n REFETCH_CHANNELS = 'REFETCH_CHANNELS',\n FETCH_MORE_CHANNELS_SUCCESS = 'FETCH_MORE_CHANNELS_SUCCESS',\n ERROR = 'ERROR',\n}\n\nexport const enum BaseState {\n Idle = 'idle',\n Error = 'error',\n Loading = 'loading',\n Done = 'done',\n FetchData = 'fetchData',\n}\n\nexport const enum MainState {\n FetchMoreChannels = 'fetchMoreChannels',\n RefetchChannels = 'refetchChannels',\n}\n\n// Define event types for better type safety\ntype ChannelEvent =\n | { type: 'INITIAL_CONTEXT'; data?: { orgName?: string } }\n | { type: 'ERROR_HANDLED' }\n | { type: 'SET_CHANNELS'; data?: { channels?: any[] } }\n | { type: 'CLEAR_DATA' }\n | { type: 'START_LOADING' }\n | { type: 'STOP_LOADING' }\n | { type: 'FETCH_MORE_CHANNELS' }\n | { type: 'REFETCH_CHANNELS' }\n | { type: 'FETCH_MORE_CHANNELS_SUCCESS'; data?: { channels?: any[] } }\n | { type: 'ERROR'; data?: { message?: string } };\n\nexport const channelsXstate = setup({\n types: {\n context: {} as {\n orgName: string | null;\n channels: any[];\n loading: boolean;\n channelsLoading: boolean;\n moreChannelsLoading: boolean;\n error: string | null;\n channelsSkip: number;\n showMoreChannels: boolean;\n },\n events: {} as ChannelEvent,\n },\n actions: {\n errorState: assign(({ context, event }: { context: any; event: any }) => {\n return {\n ...context,\n error: event.data?.message || 'An error occurred',\n loading: false,\n channelsLoading: false,\n moreChannelsLoading: false,\n };\n }),\n handleEmptyData: assign(({ context }: { context: any }) => {\n console.log('No data available, setting loading to false');\n return {\n ...context,\n loading: false,\n channelsLoading: false,\n moreChannelsLoading: false,\n };\n }),\n setInitialContext: assign(({ context, event }: { context: any; event: any }) => {\n return merge({\n ...context,\n orgName: event.data?.orgName || null,\n loading: true,\n channelsLoading: true,\n });\n }),\n setChannels: assign(({ context, event }: { context: any; event: any }) => {\n return {\n ...context,\n channels: event.data?.channels || [],\n channelsLoading: false,\n loading: false,\n };\n }),\n addMoreChannels: assign(({ context, event }: { context: any; event: any }) => {\n const newChannels = event.data?.channels || [];\n const showMore = newChannels.length > 0;\n\n return {\n ...context,\n channels: [...context.channels, ...newChannels],\n moreChannelsLoading: false,\n showMoreChannels: showMore,\n };\n }),\n updateChannelsSkip: assign(({ context }) => {\n return {\n ...context,\n channelsSkip: context.channels.length,\n moreChannelsLoading: true,\n };\n }),\n clearData: assign(({ context }) => {\n return {\n ...context,\n channels: [],\n channelsSkip: 0,\n showMoreChannels: true,\n };\n }),\n startLoading: assign(({ context }) => {\n return {\n ...context,\n loading: true,\n };\n }),\n stopLoading: assign(({ context }) => {\n return {\n ...context,\n loading: false,\n channelsLoading: false,\n moreChannelsLoading: false,\n };\n }),\n startChannelsLoading: assign(({ context }) => {\n return {\n ...context,\n channelsLoading: true,\n };\n }),\n },\n guards: {\n hasMoreChannels: ({ context }) => {\n return context.showMoreChannels;\n },\n },\n schemas: {\n events: {\n type: 'object',\n properties: {\n type: { type: 'string' },\n data: { type: 'object' },\n },\n required: ['type'],\n },\n },\n}).createMachine({\n id: 'channels',\n initial: BaseState.Idle,\n context: {\n orgName: null,\n channels: [],\n loading: false,\n channelsLoading: false,\n moreChannelsLoading: false,\n error: null,\n channelsSkip: 0,\n showMoreChannels: true,\n },\n states: {\n [BaseState.Idle]: {\n on: {\n [Actions.INITIAL_CONTEXT]: {\n target: BaseState.FetchData,\n actions: ['setInitialContext'],\n },\n [Actions.FETCH_MORE_CHANNELS]: {\n target: MainState.FetchMoreChannels,\n actions: ['updateChannelsSkip'],\n guard: 'hasMoreChannels',\n },\n [Actions.REFETCH_CHANNELS]: {\n target: MainState.RefetchChannels,\n actions: ['startChannelsLoading'],\n },\n [Actions.CLEAR_DATA]: {\n target: BaseState.Idle,\n actions: ['clearData'],\n },\n [Actions.START_LOADING]: {\n target: BaseState.Idle,\n actions: ['startLoading'],\n },\n [Actions.STOP_LOADING]: {\n target: BaseState.Idle,\n actions: ['stopLoading'],\n },\n },\n },\n [BaseState.Error]: {\n entry: ['errorState'],\n on: {\n [Actions.ERROR_HANDLED]: {\n target: BaseState.Idle,\n },\n },\n },\n [BaseState.FetchData]: {\n on: {\n [Actions.SET_CHANNELS]: {\n target: BaseState.Idle,\n actions: ['setChannels'],\n },\n TIMEOUT: {\n target: BaseState.Idle,\n actions: ['handleEmptyData'],\n },\n },\n after: {\n 5000: {\n target: BaseState.Idle,\n actions: ['handleEmptyData'],\n },\n },\n },\n [MainState.FetchMoreChannels]: {\n on: {\n [Actions.FETCH_MORE_CHANNELS_SUCCESS]: {\n target: BaseState.Idle,\n actions: ['addMoreChannels'],\n },\n [Actions.ERROR]: {\n target: BaseState.Error,\n actions: [],\n },\n },\n },\n [MainState.RefetchChannels]: {\n on: {\n [Actions.SET_CHANNELS]: {\n target: BaseState.Idle,\n actions: ['setChannels'],\n },\n [Actions.ERROR]: {\n target: BaseState.Error,\n actions: [],\n },\n },\n },\n },\n});\n"],"names":["BaseState"],"mappings":"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"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import {useState,useCallback}from'react';import {BaseState}from'./channels-xstate.js';var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
function useSafeChannelsMachine(machine) {
|
|
21
|
-
const [state, setState] = useState({
|
|
22
|
-
context: {
|
|
23
|
-
orgName: null,
|
|
24
|
-
channels: [],
|
|
25
|
-
loading: false,
|
|
26
|
-
channelsLoading: false,
|
|
27
|
-
moreChannelsLoading: false,
|
|
28
|
-
error: null,
|
|
29
|
-
channelsSkip: 0,
|
|
30
|
-
showMoreChannels: true
|
|
31
|
-
},
|
|
32
|
-
value: "idle"
|
|
33
|
-
});
|
|
34
|
-
const send = useCallback((event) => {
|
|
35
|
-
var _a;
|
|
36
|
-
try {
|
|
37
|
-
console.log("Channels Event received:", event.type);
|
|
38
|
-
if (event.type === "INITIAL_CONTEXT") {
|
|
39
|
-
setState((prev) => {
|
|
40
|
-
var _a2;
|
|
41
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
42
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
43
|
-
orgName: ((_a2 = event.data) == null ? void 0 : _a2.orgName) || null,
|
|
44
|
-
loading: true,
|
|
45
|
-
channelsLoading: true
|
|
46
|
-
}),
|
|
47
|
-
value: BaseState.FetchData
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
} else if (event.type === "SET_CHANNELS") {
|
|
51
|
-
setState((prev) => {
|
|
52
|
-
var _a2;
|
|
53
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
54
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
55
|
-
channels: ((_a2 = event.data) == null ? void 0 : _a2.channels) || [],
|
|
56
|
-
channelsLoading: false
|
|
57
|
-
}),
|
|
58
|
-
value: "idle"
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
} else if (event.type === "CLEAR_DATA") {
|
|
62
|
-
setState((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
63
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
64
|
-
channels: [],
|
|
65
|
-
channelsSkip: 0,
|
|
66
|
-
showMoreChannels: true
|
|
67
|
-
})
|
|
68
|
-
}));
|
|
69
|
-
} else if (event.type === "FETCH_MORE_CHANNELS") {
|
|
70
|
-
setState((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
71
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
72
|
-
channelsSkip: prev.context.channels.length,
|
|
73
|
-
moreChannelsLoading: true
|
|
74
|
-
}),
|
|
75
|
-
value: "fetchMoreChannels"
|
|
76
|
-
}));
|
|
77
|
-
} else if (event.type === "REFETCH_CHANNELS") {
|
|
78
|
-
setState((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
79
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
80
|
-
channelsLoading: true
|
|
81
|
-
}),
|
|
82
|
-
value: "refetchChannels"
|
|
83
|
-
}));
|
|
84
|
-
} else if (event.type === "FETCH_MORE_CHANNELS_SUCCESS") {
|
|
85
|
-
const newChannels = ((_a = event.data) == null ? void 0 : _a.channels) || [];
|
|
86
|
-
const showMore = newChannels.length > 0;
|
|
87
|
-
setState((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
88
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
89
|
-
channels: [...prev.context.channels, ...newChannels],
|
|
90
|
-
showMoreChannels: showMore,
|
|
91
|
-
moreChannelsLoading: false
|
|
92
|
-
}),
|
|
93
|
-
value: "idle"
|
|
94
|
-
}));
|
|
95
|
-
} else if (event.type === "START_LOADING") {
|
|
96
|
-
setState((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
97
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
98
|
-
loading: true
|
|
99
|
-
})
|
|
100
|
-
}));
|
|
101
|
-
} else if (event.type === "STOP_LOADING") {
|
|
102
|
-
setState((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
103
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
104
|
-
loading: false,
|
|
105
|
-
channelsLoading: false,
|
|
106
|
-
moreChannelsLoading: false
|
|
107
|
-
})
|
|
108
|
-
}));
|
|
109
|
-
} else if (event.type === "ERROR") {
|
|
110
|
-
setState((prev) => {
|
|
111
|
-
var _a2;
|
|
112
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
113
|
-
context: __spreadProps(__spreadValues({}, prev.context), {
|
|
114
|
-
error: ((_a2 = event.data) == null ? void 0 : _a2.message) || "An error occurred",
|
|
115
|
-
loading: false,
|
|
116
|
-
channelsLoading: false,
|
|
117
|
-
moreChannelsLoading: false
|
|
118
|
-
}),
|
|
119
|
-
value: "error"
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
} catch (error) {
|
|
124
|
-
console.error("Error in useSafeChannelsMachine send function:", error);
|
|
125
|
-
}
|
|
126
|
-
}, []);
|
|
127
|
-
return [state, send];
|
|
128
|
-
}export{useSafeChannelsMachine};//# sourceMappingURL=useSafeChannelsMachine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSafeChannelsMachine.js","sources":["../../../../../src/screens/Home/Components/Channels/useSafeChannelsMachine.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { BaseState } from './channels-xstate';\n\n// Define the state type\ninterface SafeStateType {\n context: {\n orgName: string | null;\n channels: any[];\n loading: boolean;\n channelsLoading: boolean;\n moreChannelsLoading: boolean;\n error: string | null;\n channelsSkip: number;\n showMoreChannels: boolean;\n };\n value: string;\n matches?: (stateValue: string) => boolean;\n}\n\ntype SendFunction = (event: any) => void;\n\n// Create a safer version of useMachine to handle potential errors\nexport function useSafeChannelsMachine(machine: any) {\n // Initialize with default state\n const [state, setState] = useState<SafeStateType>({\n context: {\n orgName: null,\n channels: [],\n loading: false,\n channelsLoading: false,\n moreChannelsLoading: false,\n error: null,\n channelsSkip: 0,\n showMoreChannels: true,\n },\n value: 'idle',\n });\n\n // Create a safe send function\n const send = useCallback<SendFunction>((event) => {\n try {\n // Log event for debugging\n console.log('Channels Event received:', event.type);\n\n // Handle specific events manually based on the channels-xstate.ts events\n if (event.type === 'INITIAL_CONTEXT') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n orgName: event.data?.orgName || null,\n loading: true,\n channelsLoading: true,\n },\n value: BaseState.FetchData,\n }));\n } else if (event.type === 'SET_CHANNELS') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channels: event.data?.channels || [],\n channelsLoading: false,\n },\n value: 'idle',\n }));\n } else if (event.type === 'CLEAR_DATA') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channels: [],\n channelsSkip: 0,\n showMoreChannels: true,\n },\n }));\n } else if (event.type === 'FETCH_MORE_CHANNELS') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channelsSkip: prev.context.channels.length,\n moreChannelsLoading: true,\n },\n value: 'fetchMoreChannels',\n }));\n } else if (event.type === 'REFETCH_CHANNELS') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channelsLoading: true,\n },\n value: 'refetchChannels',\n }));\n } else if (event.type === 'FETCH_MORE_CHANNELS_SUCCESS') {\n const newChannels = event.data?.channels || [];\n const showMore = newChannels.length > 0;\n\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n channels: [...prev.context.channels, ...newChannels],\n showMoreChannels: showMore,\n moreChannelsLoading: false,\n },\n value: 'idle',\n }));\n } else if (event.type === 'START_LOADING') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n loading: true,\n },\n }));\n } else if (event.type === 'STOP_LOADING') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n loading: false,\n channelsLoading: false,\n moreChannelsLoading: false,\n },\n }));\n } else if (event.type === 'ERROR') {\n setState((prev) => ({\n ...prev,\n context: {\n ...prev.context,\n error: event.data?.message || 'An error occurred',\n loading: false,\n channelsLoading: false,\n moreChannelsLoading: false,\n },\n value: 'error',\n }));\n }\n } catch (error) {\n console.error('Error in useSafeChannelsMachine send function:', error);\n }\n }, []);\n\n return [state, send] as const;\n}\n"],"names":["_a"],"mappings":"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"}
|