@messenger-box/slack-ui-mobile 10.0.3-alpha.7 → 10.0.3-alpha.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/lib/components/Actionsheet.js +96 -0
  2. package/lib/components/Actionsheet.js.map +1 -0
  3. package/lib/components/AppRootContextProviderComponent.js +16 -2
  4. package/lib/components/AppRootContextProviderComponent.js.map +1 -1
  5. package/lib/components/Channels/ChannelsByAlphabeticalAccordion.js +13 -7
  6. package/lib/components/Channels/ChannelsByAlphabeticalAccordion.js.map +1 -1
  7. package/lib/components/CustomBottomTabs/CustomBottomTabs.js +11 -24
  8. package/lib/components/CustomBottomTabs/CustomBottomTabs.js.map +1 -1
  9. package/lib/components/CustomDrawer/CustomDrawer.js +31 -31
  10. package/lib/components/CustomDrawer/CustomDrawer.js.map +1 -1
  11. package/lib/components/Header/styles.js +2 -2
  12. package/lib/components/Header/styles.js.map +1 -1
  13. package/lib/components/LoadingSpinner/index.js +3 -3
  14. package/lib/components/LoadingSpinner/index.js.map +1 -1
  15. package/lib/components/NavigationHeader/InboxNavigationHeader.js +20 -25
  16. package/lib/components/NavigationHeader/InboxNavigationHeader.js.map +1 -1
  17. package/lib/components/NavigationHeader/NavigationHeader.js +58 -40
  18. package/lib/components/NavigationHeader/NavigationHeader.js.map +1 -1
  19. package/lib/components/NavigationHeader/NavigationHeaderChat.js +9 -9
  20. package/lib/components/NavigationHeader/NavigationHeaderChat.js.map +1 -1
  21. package/lib/components/NavigationHeader/index.js +1 -1
  22. package/lib/components/SlackSearchInput/Suggestion.js +1 -1
  23. package/lib/components/SlackSearchInput/Tag.js +1 -1
  24. package/lib/components/SlackSearchInput/index.js +3 -3
  25. package/lib/components/SlackSearchInput/index.js.map +1 -1
  26. package/lib/components/VirtualizedScrollView/VirtualizedScrollView.js +19 -4
  27. package/lib/components/VirtualizedScrollView/VirtualizedScrollView.js.map +1 -1
  28. package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js +41 -31
  29. package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js.map +1 -1
  30. package/lib/compute.js +32 -23
  31. package/lib/compute.js.map +1 -1
  32. package/lib/constants/Colors.js +2 -2
  33. package/lib/constants/globalStyles.js +3 -3
  34. package/lib/constants/globalStyles.js.map +1 -1
  35. package/lib/hooks/useOptimizedChannelsQueries.js +106 -0
  36. package/lib/hooks/useOptimizedChannelsQueries.js.map +1 -0
  37. package/lib/index.js +1 -1
  38. package/lib/index.js.map +1 -1
  39. package/lib/navigation/SearchTabNavigation.js +47 -39
  40. package/lib/navigation/SearchTabNavigation.js.map +1 -1
  41. package/lib/navigation/TeamTabNavigation.js +51 -38
  42. package/lib/navigation/TeamTabNavigation.js.map +1 -1
  43. package/lib/queries/slackuiQueries.js +129 -0
  44. package/lib/queries/slackuiQueries.js.map +1 -0
  45. package/lib/routes.json +32 -23
  46. package/lib/screens/Account/AccountScreen.js +23 -26
  47. package/lib/screens/Account/AccountScreen.js.map +1 -1
  48. package/lib/screens/Activity/ActivityScreen.js +6 -2
  49. package/lib/screens/Activity/ActivityScreen.js.map +1 -1
  50. package/lib/screens/Channels/Add/AddName.js +33 -8
  51. package/lib/screens/Channels/Add/AddName.js.map +1 -1
  52. package/lib/screens/Channels/Add/AddVisibility.js +6 -6
  53. package/lib/screens/Channels/Add/AddVisibility.js.map +1 -1
  54. package/lib/screens/Channels/AddChannel.js +5 -3
  55. package/lib/screens/Channels/AddChannel.js.map +1 -1
  56. package/lib/screens/Channels/Channels.js +101 -95
  57. package/lib/screens/Channels/Channels.js.map +1 -1
  58. package/lib/screens/Files/FilesScreen.js +2 -2
  59. package/lib/screens/Files/FilesScreen.js.map +1 -1
  60. package/lib/screens/Home/Components/Channels/Channels.js +91 -77
  61. package/lib/screens/Home/Components/Channels/Channels.js.map +1 -1
  62. package/lib/screens/Home/Components/DirectChannels/DirectChannels.js +249 -115
  63. package/lib/screens/Home/Components/DirectChannels/DirectChannels.js.map +1 -1
  64. package/lib/screens/Home/Components/InviteMembers/index.js +88 -0
  65. package/lib/screens/Home/Components/InviteMembers/index.js.map +1 -0
  66. package/lib/screens/Home/Components/Teams/Teams.js +110 -47
  67. package/lib/screens/Home/Components/Teams/Teams.js.map +1 -1
  68. package/lib/screens/Home/Components/TopCommonSlider/TopCommonSlider.js +44 -75
  69. package/lib/screens/Home/Components/TopCommonSlider/TopCommonSlider.js.map +1 -1
  70. package/lib/screens/Home/HomeScreen.js +161 -194
  71. package/lib/screens/Home/HomeScreen.js.map +1 -1
  72. package/lib/screens/Home/styles.js +4 -4
  73. package/lib/screens/Home/styles.js.map +1 -1
  74. package/lib/screens/Inbox/InboxChannelDetail.js +67 -34
  75. package/lib/screens/Inbox/InboxChannelDetail.js.map +1 -1
  76. package/lib/screens/Inbox/InboxDialogMessages.js +2 -2
  77. package/lib/screens/Inbox/InboxDialogMessages.js.map +1 -1
  78. package/lib/screens/Inbox/InboxScreen.js +3 -3
  79. package/lib/screens/Inbox/InboxScreen.js.map +1 -1
  80. package/lib/screens/Login.js +4 -2
  81. package/lib/screens/Login.js.map +1 -1
  82. package/lib/screens/Organization/AddWorkspace.js +42 -38
  83. package/lib/screens/Organization/AddWorkspace.js.map +1 -1
  84. package/lib/screens/Organization/CreateOrganization.js +11 -2
  85. package/lib/screens/Organization/CreateOrganization.js.map +1 -1
  86. package/lib/screens/Organization/InitialChannelOnboarding.js +22 -4
  87. package/lib/screens/Organization/InitialChannelOnboarding.js.map +1 -1
  88. package/lib/screens/Organization/InitializeOrganizationChannel.js +9 -4
  89. package/lib/screens/Organization/InitializeOrganizationChannel.js.map +1 -1
  90. package/lib/screens/Organization/InviteOrganizationMembers.js +52 -10
  91. package/lib/screens/Organization/InviteOrganizationMembers.js.map +1 -1
  92. package/lib/screens/Peoples/AddByEmail.js +24 -6
  93. package/lib/screens/Peoples/AddByEmail.js.map +1 -1
  94. package/lib/screens/Peoples/AddFromContacts.js +172 -87
  95. package/lib/screens/Peoples/AddFromContacts.js.map +1 -1
  96. package/lib/screens/Peoples/AddPeople.js +21 -42
  97. package/lib/screens/Peoples/AddPeople.js.map +1 -1
  98. package/lib/screens/Peoples/People.js +42 -4
  99. package/lib/screens/Peoples/People.js.map +1 -1
  100. package/lib/screens/Profile/ProfileScreen.js +27 -12
  101. package/lib/screens/Profile/ProfileScreen.js.map +1 -1
  102. package/lib/screens/Saved/SavedScreen.js +2 -2
  103. package/lib/screens/Saved/SavedScreen.js.map +1 -1
  104. package/lib/screens/Search/Channels.js +20 -32
  105. package/lib/screens/Search/Channels.js.map +1 -1
  106. package/lib/screens/Search/Files.js +2 -2
  107. package/lib/screens/Search/Files.js.map +1 -1
  108. package/lib/screens/Search/JumpTo.js +2 -2
  109. package/lib/screens/Search/JumpTo.js.map +1 -1
  110. package/lib/screens/Search/People.js +19 -27
  111. package/lib/screens/Search/People.js.map +1 -1
  112. package/lib/screens/Search/Recents.js +26 -31
  113. package/lib/screens/Search/Recents.js.map +1 -1
  114. package/lib/screens/Search/SearchAddChannel.js +366 -227
  115. package/lib/screens/Search/SearchAddChannel.js.map +1 -1
  116. package/lib/screens/Search/SearchChannelPeople.js +70 -37
  117. package/lib/screens/Search/SearchChannelPeople.js.map +1 -1
  118. package/lib/screens/Search/SearchScreen.js +5 -3
  119. package/lib/screens/Search/SearchScreen.js.map +1 -1
  120. package/lib/screens/Search/styles.js +2 -2
  121. package/lib/screens/Search/styles.js.map +1 -1
  122. package/lib/screens/Teams/AddTeam.js +3 -3
  123. package/lib/screens/Teams/AddTeam.js.map +1 -1
  124. package/lib/screens/Teams/Components/Channels/Channels.js +6 -6
  125. package/lib/screens/Teams/Components/Channels/Channels.js.map +1 -1
  126. package/lib/screens/Teams/Components/Members/Members.js +7 -3
  127. package/lib/screens/Teams/Components/Members/Members.js.map +1 -1
  128. package/lib/screens/Teams/Team.js +6 -8
  129. package/lib/screens/Teams/Team.js.map +1 -1
  130. package/lib/screens/Teams/Teams.js +137 -106
  131. package/lib/screens/Teams/Teams.js.map +1 -1
  132. package/lib/screens/Teams/useTeams.js +41 -0
  133. package/lib/screens/Teams/useTeams.js.map +1 -0
  134. package/lib/screens/Wiki/WikiScreen.js +2 -2
  135. package/lib/screens/Wiki/WikiScreen.js.map +1 -1
  136. package/lib/theme/index.js +2 -2
  137. package/lib/theme/index.js.map +1 -1
  138. package/package.json +6 -4
  139. package/lib/navigation/ActivityNavigator.js +0 -61
  140. package/lib/navigation/ActivityNavigator.js.map +0 -1
  141. package/lib/navigation/ExploreNavigator.js +0 -583
  142. package/lib/navigation/ExploreNavigator.js.map +0 -1
  143. package/lib/navigation/InboxNavigator.js +0 -183
  144. package/lib/navigation/InboxNavigator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AddChannel.js","sources":["../../../src/screens/Channels/AddChannel.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n SafeAreaView,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { useAddChannelMutation } from 'common/lib/generated/generated.js';\nimport { AntDesign } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { NavigationRoutes } from '../../constants/routes';\n\nconst AddChannel = ({ navigation, route }: any) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [nameIsInvalid, setNameIsInvalid] = useState(false);\n\n const [createChannel, createdChannel] = useAddChannelMutation({\n onCompleted: (data: any) => {\n //console.log('create data',data)\n if (data?.createChannel)\n navigation.navigate(NavigationRoutes.AddPeople, {\n channelId: data?.createChannel?.id,\n orgName: route?.params?.orgName,\n });\n else navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n },\n });\n\n // useEffect(() => {\n\n // if(name && name.length > 0){\n // let patt = /^[A-Za-z0-9_+\\-]*$/;\n // if (patt.test(name))\n // {\n // setNameIsInvalid(false)\n // setShowCreateButton(true)\n // }\n // else\n // {\n // setNameIsInvalid(true)\n // setShowCreateButton(false)\n // }\n // }\n // else\n // {\n // setShowCreateButton(false)\n // }\n\n // // if(name && name.length > 0)\n // // setShowCreateButton(true)\n // // else\n // // setShowCreateButton(false)\n\n // }, [name])\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n useEffect(() => {\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerRight: (props: any) => (\n <Button onPress={() => createNewChannel()} variant={'link'} disabled={showCreateButton ? false : true}>\n <ButtonText style={{ color: showCreateButton ? 'black' : '#71717a' }}>Create</ButtonText>\n </Button>\n ),\n });\n }, [name, description, showCreateButton]);\n\n const createNewChannel = () => {\n if (name && name.length > 0) {\n createChannel({\n variables: {\n name: name,\n description: description,\n },\n });\n }\n };\n\n // const setChannelName = (v:any) => {\n // let nameStr = v.replace(/\\s+/g, '-').toLowerCase();\n // setName(nameStr)\n // }\n\n return (\n <SafeAreaView flex={1}>\n <Box flex={1} bg={'#fff'} softShadow={'1'} py={'$2'} h={'100%'}>\n <VStack space=\"md\">\n <Box px=\"$4\" pt=\"$4\">\n {/* <FormControl isInvalid={nameIsInvalid} mt=\"3\"> */}\n <FormControl mt=\"$3\">\n <FormControlLabel mb=\"$1\">\n <FormControlLabelText>Name</FormControlLabelText>\n </FormControlLabel>\n\n <Input variant=\"underlined\">\n <InputSlot pl=\"$0\">\n <Text color={'$trueGray500'}>#</Text>\n </InputSlot>\n <InputField\n type=\"text\"\n placeholder=\" e.g. Plan budget\"\n maxLength={80}\n value={name}\n onChangeText={(v) => setName(v)}\n />\n <InputSlot pr=\"$3\">\n <Text color={'$trueGray500'}>{80 - name.length}</Text>\n </InputSlot>\n </Input>\n <FormControlError>\n <FormControlErrorText color=\"$red\">\n Channel names must be lowercase, and can't contain spaces,periods,or most\n punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n <FormControl mt=\"$3\">\n <FormControlLabel mb=\"$1\">\n <FormControlLabelText>Description</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputField\n type=\"text\"\n placeholder=\"channel description\"\n value={description}\n onChangeText={(v) => setDescription(v)}\n />\n </Input>\n </FormControl>\n </Box>\n </VStack>\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n //justifyContent: 'center',\n padding: 20,\n },\n itemView: {\n paddingVertical: 8,\n marginTop: 5,\n },\n headingText: {\n color: Colors.light.text,\n fontSize: 16,\n fontWeight: '400',\n },\n});\n\nexport default AddChannel;\n"],"names":["React","Colors"],"mappings":"2dAQA,MAAM,aAAa,CAAC;AAAA,EAClB,UAAA;AAAA,EACA;AACF,CAAW,KAAA;AACT,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,EAAE,CAAA;AACnC,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,EAAE,CAAA;AACjD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,aAAA,EAAe,cAAc,CAAA,GAAI,qBAAsB,CAAA;AAAA,IAC5D,WAAA,EAAa,CAAC,IAAc,KAAA;AAjBhC,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmBM,MAAA,IAAI,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,aAAA;AAAe,QAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,SAAW,EAAA;AAAA,UACvE,SAAA,EAAA,CAAW,EAAM,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,aAAA,KAAN,IAAqB,GAAA,MAAA,GAAA,EAAA,CAAA,EAAA;AAAA,UAChC,OAAA,EAAA,CAAS,EAAO,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,MAAA,KAAP,IAAe,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,SACzB,CAAA;AAAA;AAAO,QAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,IAAM,EAAA;AAAA,UACjD,OAAA,EAAA,CAAS,EAAO,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,MAAA,KAAP,IAAe,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,SACzB,CAAA;AAAA;AACH,GACD,CAAA;AA6BD,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,IAAA,IAAQ,KAAK,MAAS,GAAA,CAAA;AAAG,MAAA,mBAAA,CAAoB,IAAI,CAAA;AAAA;AAAO,MAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,GACvF,EAAG,CAAC,IAAI,CAAC,CAAA;AACT,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,UAAA,CAAW,UAAW,CAAA;AAAA,MACpB,WAAa,EAAA,IAAA;AAAA,MACb,gBAAkB,EAAA,MAAA;AAAA,MAClB,kBAAkB,EAAC;AAAA,MACnB,aAAa,CAAC,KAAA,qBAAgBA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,SAAS,MAAM,gBAAA,EAAoB,EAAA,OAAA,EAAS,QAAQ,QAAU,EAAA,gBAAA,GAAmB,QAAQ,IAChH,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,cAAW,KAAO,EAAA;AAAA,QAC7B,KAAA,EAAO,mBAAmB,OAAU,GAAA;AAAA,OACtC,EAAA,EAAG,QAAM,CACD;AAAA,KACX,CAAA;AAAA,GACA,EAAA,CAAC,IAAM,EAAA,WAAA,EAAa,gBAAgB,CAAC,CAAA;AACxC,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAI,IAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,GAAS,CAAG,EAAA;AAC3B,MAAc,aAAA,CAAA;AAAA,QACZ,SAAW,EAAA;AAAA,UACT,IAAA;AAAA,UACA;AAAA;AACF,OACD,CAAA;AAAA;AACH,GACF;AAOA,EAAA,uBAAQA,cAAA,CAAA,aAAA,CAAA,YAAA,EAAA,EAAa,IAAM,EAAA,CAAA,EAAA,kBAChBA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,IAAM,EAAA,CAAA,EAAG,EAAI,EAAA,MAAA,EAAQ,UAAY,EAAA,GAAA,EAAK,EAAI,EAAA,IAAA,EAAM,CAAG,EAAA,MAAA,EAAA,kBACnDA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,KAAM,EAAA,IAAA,EAAA,kBACTA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,EAAG,EAAA,IAAA,EAAK,EAAG,EAAA,IAAA,EAAA,kBAEXA,cAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,IAAG,IACZ,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,gBAAiB,EAAA,EAAA,EAAA,EAAG,IACjB,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAqB,EAAA,IAAA,EAAA,MAAI,CAC9B,CAAA,kBAECA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAM,OAAQ,EAAA,YAAA,EAAA,kBACVA,cAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAU,EAAG,EAAA,IAAA,EAAA,kBACTA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,cAAA,EAAA,EAAgB,GAAC,CAClC,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,IAAA,EAAK,MAAO,EAAA,WAAA,EAAY,mBAAoB,EAAA,SAAA,EAAW,IAAI,KAAO,EAAA,IAAA,EAAM,YAAc,EAAA,CAAA,CAAA,KAAK,OAAQ,CAAA,CAAC,CAAG,EAAA,CAAA,kBAClHA,cAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAU,EAAG,EAAA,IAAA,EAAA,kBACTA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,cAAA,EAAA,EAAiB,EAAK,GAAA,IAAA,CAAK,MAAO,CACnD,CACJ,CAAA,kBACCA,cAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,IAAA,kBACIA,cAAA,CAAA,aAAA,CAAA,oBAAA,EAAA,EAAqB,KAAM,EAAA,MAAA,EAAA,EAAO,wFAGnC,CACJ,CACJ,CAAA,+CACC,WAAY,EAAA,EAAA,EAAA,EAAG,IACZ,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,gBAAiB,EAAA,EAAA,EAAA,EAAG,IACjB,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAqB,EAAA,IAAA,EAAA,aAAW,CACrC,CAAA,kBACCA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAM,OAAQ,EAAA,YAAA,EAAA,+CACV,UAAW,EAAA,EAAA,IAAA,EAAK,MAAO,EAAA,WAAA,EAAY,qBAAsB,EAAA,KAAA,EAAO,WAAa,EAAA,YAAA,EAAc,CAAK,CAAA,KAAA,cAAA,CAAe,CAAC,CAAA,EAAG,CACxH,CACJ,CACJ,CACJ,CACJ,CACJ,CAAA;AACR;AACe,WAAW,MAAO,CAAA;AAAA,EAC/B,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,CAAA;AAAA,IAEN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,eAAiB,EAAA,CAAA;AAAA,IACjB,SAAW,EAAA;AAAA,GACb;AAAA,EACA,WAAa,EAAA;AAAA,IACX,KAAA,EAAOC,OAAO,KAAM,CAAA,IAAA;AAAA,IACpB,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA;AAAA;AAEhB,CAAC"}
1
+ {"version":3,"file":"AddChannel.js","sources":["../../../src/screens/Channels/AddChannel.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { StyleSheet, SafeAreaView } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { useAddChannelMutation } from '../../queries/slackuiQueries';\nimport { AntDesign } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { NavigationRoutes } from '../../constants/routes';\nimport colors from 'tailwindcss/colors';\n\nconst AddChannel = ({ navigation, route }: any) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [nameIsInvalid, setNameIsInvalid] = useState(false);\n\n const [createChannel, createdChannel] = useAddChannelMutation({\n onCompleted: (data: any) => {\n //console.log('create data',data)\n if (data?.createChannel)\n navigation.navigate(NavigationRoutes.AddPeople, {\n channelId: data?.createChannel?.id,\n orgName: route?.params?.orgName,\n });\n else navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n },\n });\n\n // useEffect(() => {\n\n // if(name && name.length > 0){\n // let patt = /^[A-Za-z0-9_+\\-]*$/;\n // if (patt.test(name))\n // {\n // setNameIsInvalid(false)\n // setShowCreateButton(true)\n // }\n // else\n // {\n // setNameIsInvalid(true)\n // setShowCreateButton(false)\n // }\n // }\n // else\n // {\n // setShowCreateButton(false)\n // }\n\n // // if(name && name.length > 0)\n // // setShowCreateButton(true)\n // // else\n // // setShowCreateButton(false)\n\n // }, [name])\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n useEffect(() => {\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerRight: (props: any) => (\n <Button onPress={() => createNewChannel()} variant={'link'} disabled={showCreateButton ? false : true}>\n <ButtonText style={{ color: showCreateButton ? 'black' : '#71717a' }}>Create</ButtonText>\n </Button>\n ),\n });\n }, [name, description, showCreateButton]);\n\n const createNewChannel = () => {\n if (name && name.length > 0) {\n createChannel({\n variables: {\n name: name,\n description: description,\n },\n });\n }\n };\n\n // const setChannelName = (v:any) => {\n // let nameStr = v.replace(/\\s+/g, '-').toLowerCase();\n // setName(nameStr)\n // }\n\n return (\n <SafeAreaView style={{ flex: 1 }}>\n <Box className=\"bg-white flex-1 py-2 h-full shadow-sm\">\n <VStack space=\"md\">\n <Box className=\"px-4 pt-4\">\n {/* <FormControl isInvalid={nameIsInvalid} mt=\"3\"> */}\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Name</FormControlLabelText>\n </FormControlLabel>\n\n <Input variant=\"underlined\">\n <InputSlot className=\"pl-0\">\n <Text color={colors.gray[500]}>#</Text>\n </InputSlot>\n <InputField\n type=\"text\"\n placeholder=\" e.g. Plan budget\"\n maxLength={80}\n value={name}\n onChange={(event) => setName(event.nativeEvent.text)}\n />\n <InputSlot className=\"pr-3\">\n <Text color={colors.gray[500]}>{80 - name.length}</Text>\n </InputSlot>\n </Input>\n <FormControlError>\n <FormControlErrorText className=\"color-red-500\">\n Channel names must be lowercase, and can't contain spaces,periods,or most\n punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Description</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputField\n type=\"text\"\n placeholder=\"channel description\"\n value={description}\n onChange={(event) => setDescription(event.nativeEvent.text)}\n />\n </Input>\n </FormControl>\n </Box>\n </VStack>\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n //justifyContent: 'center',\n padding: 20,\n },\n itemView: {\n paddingVertical: 8,\n marginTop: 5,\n },\n headingText: {\n color: Colors.light.text,\n fontSize: 16,\n fontWeight: '400',\n },\n});\n\nexport default AddChannel;\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React__default,{useState,useEffect}from'react';import {TouchableHighlight,StyleSheet,Dimensions}from'react-native';import {Box,Text,Button,ButtonText,SafeAreaView,View,Input,InputSlot,InputIcon,SearchIcon,InputField,Divider,VStack,FlatList,Spinner,HStack}from'@admin-layout/gluestack-ui-mobile';import colors from'../../constants/Colors.js';import {NavigationRoutes}from'../../constants/routes.js';import {RoomType}from'common';import {useGetChannelsByUserQuery}from'common/lib/generated/generated.js';import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import {FontAwesome,Octicons}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import {uniqBy}from'lodash-es';Dimensions.get("window").width;
1
+ import React__default,{useState,useCallback,useEffect}from'react';import {Platform,SafeAreaView,StyleSheet,Dimensions}from'react-native';import {Box,Text,Button,ButtonText,Pressable,HStack,VStack,Center,Spinner,Heading,Input,InputSlot,InputIcon,SearchIcon,InputField,FlatList}from'@admin-layout/gluestack-ui-mobile';import {NavigationRoutes}from'../../constants/routes.js';import {RoomType}from'common';import {useChannelsQuery}from'../../queries/slackuiQueries.js';import {useIsFocused,useFocusEffect}from'@react-navigation/native';import {MaterialIcons,FontAwesome,Octicons}from'@expo/vector-icons';import colors from'tailwindcss/colors';import {StatusBar}from'expo-status-bar';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import'../../hooks/useOptimizedChannelsQueries.js';import {uniqBy}from'lodash-es';Dimensions.get("window").width;
2
2
  Dimensions.get("window").height;
3
3
  const defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];
4
4
  const Channels = ({
@@ -6,29 +6,19 @@ const Channels = ({
6
6
  route
7
7
  }) => {
8
8
  const {
9
- orgName,
10
- organizationDetail
9
+ orgName
11
10
  } = useDrawerLayout();
12
- useNavigation();
13
11
  useIsFocused();
14
12
  const [channels, setChannels] = useState([]);
15
13
  const [intialChannels, setInitialChannels] = useState([]);
14
+ const [searchQuery, setSearchQuery] = useState("");
16
15
  const {
17
- data: channelsData,
16
+ data,
18
17
  loading,
19
18
  error,
20
19
  refetch
21
- } = useGetChannelsByUserQuery({
22
- variables: {
23
- criteria: {
24
- orgName,
25
- type: defaultChannelType,
26
- team: null
27
- },
28
- limit: 50
29
- }
30
- });
31
- useFocusEffect(React__default.useCallback(() => {
20
+ } = useChannelsQuery();
21
+ useFocusEffect(useCallback(() => {
32
22
  if (orgName) {
33
23
  refetch({
34
24
  criteria: {
@@ -41,39 +31,64 @@ const Channels = ({
41
31
  }
42
32
  return () => {
43
33
  };
44
- }, [orgName]));
34
+ }, [orgName, refetch]));
45
35
  useEffect(() => {
46
- var _a, _b, _c;
47
- if (channelsData) {
48
- let channels2 = (_a = channelsData == null ? void 0 : channelsData.channelsByUser) == null ? void 0 : _a.filter((i) => i.type !== RoomType.Direct);
49
- channels2 = (_c = (_b = channels2 == null ? void 0 : channels2.slice()) == null ? void 0 : _b.sort((a, b) => a.title.localeCompare(b.title))) != null ? _c : [];
50
- setChannels((oldChannels) => uniqBy([...channels2, ...oldChannels], ({
36
+ var _a, _b;
37
+ if (data) {
38
+ const newChannels = ((_b = (_a = data == null ? void 0 : data.channelsByUser) == null ? void 0 : _a.filter((i) => i.type !== RoomType.Direct)) == null ? void 0 : _b.sort((a, b) => a.title.localeCompare(b.title))) || [];
39
+ setChannels((oldChannels) => uniqBy([...newChannels, ...oldChannels], ({
51
40
  id
52
41
  }) => id));
53
- setInitialChannels((oldChannels) => uniqBy([...channels2, ...oldChannels], ({
42
+ setInitialChannels((oldChannels) => uniqBy([...newChannels, ...oldChannels], ({
54
43
  id
55
44
  }) => id));
56
45
  }
57
- }, [channelsData]);
46
+ }, [data]);
58
47
  useEffect(() => {
59
- if (navigation)
48
+ if (navigation) {
60
49
  navigation.setOptions({
61
50
  headerTitleAlign: "left",
62
51
  headerTitleStyle: {
63
52
  borderBottomWidth: 1
64
53
  },
65
- headerLeft: (props) => /* @__PURE__ */ React__default.createElement(Button, { onPress: () => navigation.goBack(), variant: "link" }, /* @__PURE__ */ React__default.createElement(ButtonText, null, "Cancel")),
66
- headerRight: (props) => /* @__PURE__ */ React__default.createElement(Button, { onPress: () => navigation.navigate(NavigationRoutes.AddChannel, {
54
+ headerLeft: () => /* @__PURE__ */ React__default.createElement(
55
+ Button,
56
+ {
57
+ onPress: () => {
58
+ if (Platform.OS === "macos") {
59
+ navigation.navigate("MainStack", {
60
+ screen: NavigationRoutes.Home,
61
+ params: {
62
+ orgName
63
+ }
64
+ });
65
+ } else if (navigation.canGoBack()) {
66
+ navigation.goBack();
67
+ } else {
68
+ navigation.navigate("MainStack", {
69
+ screen: NavigationRoutes.Home,
70
+ params: {
71
+ orgName
72
+ }
73
+ });
74
+ }
75
+ },
76
+ variant: "link"
77
+ },
78
+ /* @__PURE__ */ React__default.createElement(ButtonText, null, /* @__PURE__ */ React__default.createElement(MaterialIcons, { name: "close", size: 24, color: "black" }))
79
+ ),
80
+ headerRight: () => /* @__PURE__ */ React__default.createElement(Button, { onPress: () => navigation.navigate(NavigationRoutes.AddChannel, {
67
81
  orgName
68
82
  }), variant: "link" }, /* @__PURE__ */ React__default.createElement(ButtonText, null, "Create")),
69
- headerTitle: (props) => /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: "$black", fontSize: 15, fontWeight: "600" }, "Channels")),
83
+ headerTitle: () => /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: colors.black, className: "text-[15] font-bold" }, "Channels")),
70
84
  headerStyle: {
71
85
  borderBottomWidth: 1,
72
86
  borderColor: "#d1d2d3"
73
87
  }
74
88
  });
75
- }, [channels, navigation]);
76
- const openInbox = (item) => {
89
+ }
90
+ }, [navigation, orgName]);
91
+ const openInbox = useCallback((item) => {
77
92
  var _a, _b, _c;
78
93
  navigation.navigate(NavigationRoutes.DialogMessages, {
79
94
  channelId: (_a = item == null ? void 0 : item.id) == null ? void 0 : _a.toString(),
@@ -81,85 +96,76 @@ const Channels = ({
81
96
  totalMembers: (_c = item == null ? void 0 : item.members) == null ? void 0 : _c.length,
82
97
  hideTabBar: true
83
98
  });
84
- };
85
- React__default.useMemo(() => {
86
- const obj = channels.reduce((r, {
87
- id,
88
- title,
89
- type,
90
- members
91
- }) => {
92
- const l = title[0];
93
- if (!r[l])
94
- r[l] = [{
95
- id,
96
- title,
97
- type,
98
- members
99
- }];
100
- else
101
- r[l].push({
102
- id,
103
- title,
104
- type,
105
- members
106
- });
107
- return r;
108
- }, {});
109
- const sorted = Object.entries(obj).sort(([a], [b]) => a.localeCompare(b));
110
- const sortedFilteredData = sorted.map(([key, value]) => {
111
- return {
112
- title: key,
113
- data: value
114
- };
115
- });
116
- return sortedFilteredData;
117
- }, [channels]);
118
- const searchChannels = React__default.useCallback((v) => {
119
- if (v) {
120
- const searchedChannel = channels.filter((o) => {
99
+ }, [navigation]);
100
+ const searchChannels = useCallback((text) => {
101
+ setSearchQuery(text);
102
+ if (text) {
103
+ const searchedChannel = intialChannels.filter((o) => {
121
104
  var _a;
122
- return (_a = o == null ? void 0 : o.title) == null ? void 0 : _a.toLowerCase().includes(v == null ? void 0 : v.toLowerCase());
105
+ return (_a = o == null ? void 0 : o.title) == null ? void 0 : _a.toLowerCase().includes(text == null ? void 0 : text.toLowerCase());
123
106
  });
124
107
  setChannels(searchedChannel);
125
108
  } else {
126
109
  setChannels(intialChannels);
127
110
  }
128
- }, [intialChannels, channels]);
129
- return /* @__PURE__ */ React__default.createElement(SafeAreaView, { flex: 1, bg: "$white" }, /* @__PURE__ */ React__default.createElement(View, { flex: 1, bg: "$white" }, /* @__PURE__ */ React__default.createElement(Input, { bg: "$coolGray100", mx: "$4", my: "$2", borderRadius: "$lg", borderWidth: "$0", style: {
130
- boxShadow: "none"
131
- }, variant: "outline" }, /* @__PURE__ */ React__default.createElement(InputSlot, { pl: "$3" }, /* @__PURE__ */ React__default.createElement(InputIcon, { color: "$black", as: SearchIcon })), /* @__PURE__ */ React__default.createElement(InputField, { px: "$3", alignItems: "center", type: "text", size: "xl", placeholder: "Search", placeholderTextColor: "#404040", color: "$black", fontSize: 15, onChange: ({
132
- nativeEvent: {
133
- eventCount,
134
- target,
135
- text
111
+ }, [intialChannels]);
112
+ const renderChannelIcon = useCallback((type) => {
113
+ if (type === RoomType.Private) {
114
+ return /* @__PURE__ */ React__default.createElement(FontAwesome, { color: "#525252", name: "lock", size: 18 });
115
+ } else {
116
+ return /* @__PURE__ */ React__default.createElement(Octicons, { color: "#525252", name: "hash", size: 18 });
136
117
  }
137
- }) => {
138
- searchChannels(text);
139
- }, autoCapitalize: "none", autoCorrect: false })), /* @__PURE__ */ React__default.createElement(Divider, null), /* @__PURE__ */ React__default.createElement(View, { flex: 1 }, /* @__PURE__ */ React__default.createElement(VStack, { flex: 1 }, /* @__PURE__ */ React__default.createElement(FlatList, { contentContainerStyle: {
140
- flexGrow: 1,
141
- paddingBottom: 50
142
- }, w: "100%", h: "100%", maxWidth: "100%", pb: "$20", mb: "$10", data: channels ? channels : [], keyExtractor: (item, index) => item + index, renderItem: ({
118
+ }, []);
119
+ const renderChannelItem = useCallback(({
143
120
  item
144
- }) => /* @__PURE__ */ React__default.createElement(TouchableHighlight, { underlayColor: "transparent", activeOpacity: 0.5, key: item.id, style: {
145
- marginTop: 1
146
- }, onPress: () => openInbox(item) }, /* @__PURE__ */ React__default.createElement(Box, { bg: "#fff", py: "$2" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "md" }, /* @__PURE__ */ React__default.createElement(HStack, { px: "$4", py: "$1", space: "sm", alignItems: "center" }, /* @__PURE__ */ React__default.createElement(Text, { style: styles.headingText }, item.type == RoomType.Private ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(FontAwesome, { color: "#525252", name: "lock", size: 20 })) : /* @__PURE__ */ React__default.createElement(Octicons, { color: "#525252", name: "hash", size: 20 })), /* @__PURE__ */ React__default.createElement(Box, { px: "$2" }, /* @__PURE__ */ React__default.createElement(Text, { style: styles.headingText }, item.title)))))), ListEmptyComponent: () => {
147
- return /* @__PURE__ */ React__default.createElement(View, { py: "$1" }, loading ? /* @__PURE__ */ React__default.createElement(Spinner, { color: "$blue500" }) : /* @__PURE__ */ React__default.createElement(Text, { color: "$coolGray600" }, "No Channels found"));
148
- }, key: "search-channels-list" })))));
121
+ }) => /* @__PURE__ */ React__default.createElement(Pressable, { onPress: () => openInbox(item) }, ({
122
+ pressed
123
+ }) => /* @__PURE__ */ React__default.createElement(Box, { className: `py-4 ${pressed ? "bg-gray-100" : "bg-white"} border-b border-gray-200`, style: {
124
+ borderBottomColor: colors.gray[300]
125
+ } }, /* @__PURE__ */ React__default.createElement(HStack, { className: "px-4 items-center" }, /* @__PURE__ */ React__default.createElement(Box, { className: "mr-2" }, renderChannelIcon(item.type)), /* @__PURE__ */ React__default.createElement(VStack, null, /* @__PURE__ */ React__default.createElement(Text, { className: "font-medium text-lg text-gray-900", numberOfLines: 1, ellipsizeMode: "tail" }, item.title))))), [openInbox, renderChannelIcon]);
126
+ const renderEmptyList = useCallback(() => /* @__PURE__ */ React__default.createElement(Center, { className: "flex-1 py-10" }, loading ? /* @__PURE__ */ React__default.createElement(VStack, { className: "space-y-3 items-center" }, /* @__PURE__ */ React__default.createElement(Spinner, { size: "large", color: colors.blue[500] }), /* @__PURE__ */ React__default.createElement(Text, { color: colors.gray[600] }, "Loading channels...")) : /* @__PURE__ */ React__default.createElement(VStack, { className: "space-y-3 items-center px-4" }, /* @__PURE__ */ React__default.createElement(Box, { className: "rounded-full bg-gray-100 p-4" }, /* @__PURE__ */ React__default.createElement(Octicons, { name: "hash", size: 32, color: colors.gray[400] })), /* @__PURE__ */ React__default.createElement(Heading, { size: "sm", style: {
127
+ color: colors.gray[800]
128
+ } }, "No Channels Found"), searchQuery ? /* @__PURE__ */ React__default.createElement(Text, { className: "text-center", style: {
129
+ color: colors.gray[600]
130
+ } }, 'No channels match your search "', searchQuery, '"') : /* @__PURE__ */ React__default.createElement(Text, { className: "text-center", style: {
131
+ color: colors.gray[600]
132
+ } }, "Create a new channel to get started"), /* @__PURE__ */ React__default.createElement(Button, { onPress: () => navigation.navigate(NavigationRoutes.AddChannel, {
133
+ orgName
134
+ }), className: "mt-2" }, /* @__PURE__ */ React__default.createElement(ButtonText, null, "Create Channel")))), [loading, searchQuery, navigation, orgName]);
135
+ const keyExtractor = useCallback((item) => item.id.toString(), []);
136
+ useCallback(() => {
137
+ navigation.navigate(NavigationRoutes.AddChannel, {
138
+ orgName
139
+ });
140
+ }, [navigation, orgName]);
141
+ return /* @__PURE__ */ React__default.createElement(SafeAreaView, { style: styles.safeArea }, /* @__PURE__ */ React__default.createElement(StatusBar, { style: "dark" }), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-2", style: styles.searchContainer }, /* @__PURE__ */ React__default.createElement(Input, { variant: "outline", className: "bg-white rounded-3xl border border-gray-300", style: styles.searchInput, size: "lg" }, /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pl-3" }, /* @__PURE__ */ React__default.createElement(InputIcon, { color: colors.gray[500], as: SearchIcon })), /* @__PURE__ */ React__default.createElement(InputField, { type: "text", size: "md", placeholder: "Search channels", placeholderTextColor: colors.gray[400], className: "px-3 py-2 text-base", value: searchQuery, onChange: (event) => searchChannels(event.nativeEvent.text), autoCapitalize: "none", autoCorrect: false, clearButtonMode: "while-editing" }))), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(FlatList, { contentContainerStyle: styles.flatListContent, data: channels, keyExtractor, renderItem: renderChannelItem, ListEmptyComponent: renderEmptyList, showsVerticalScrollIndicator: false, initialNumToRender: 10, maxToRenderPerBatch: 10, windowSize: 10 }))));
149
142
  };
150
143
  const styles = StyleSheet.create({
151
- container: {
144
+ safeArea: {
152
145
  flex: 1,
153
- padding: 20
146
+ backgroundColor: "white"
147
+ },
148
+ searchContainer: {
149
+ paddingVertical: 10
154
150
  },
155
- itemView: {
156
- paddingVertical: 8,
157
- marginTop: 5
151
+ searchInput: {
152
+ borderRadius: 10,
153
+ borderColor: colors.gray[300],
154
+ paddingHorizontal: 10
158
155
  },
159
- headingText: {
160
- color: colors.light.text,
156
+ flatListContent: {
157
+ flexGrow: 1,
158
+ paddingBottom: 80
159
+ },
160
+ channelTitle: {
161
+ color: colors.gray[900],
161
162
  fontSize: 16,
162
- fontWeight: "400"
163
+ fontWeight: "500"
164
+ },
165
+ channelDescription: {
166
+ color: colors.gray[600],
167
+ fontSize: 14,
168
+ marginTop: 2
163
169
  }
164
170
  });
165
171
  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/Channels/Channels.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { StyleSheet, TouchableHighlight, Dimensions } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n InputIcon,\n SearchIcon,\n Button,\n ButtonText,\n View,\n Text,\n VStack,\n Box,\n Fab,\n SafeAreaView,\n FlatList,\n Divider,\n HStack,\n SectionList,\n Center,\n Heading,\n Spinner,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign } from '@expo/vector-icons';\n// import VirtualizedScrollView from '../VirtualizedScrollView';\nimport { RoomType } from 'common';\nimport { useGetChannelsByUserQuery, useGetChannelsByUserLazyQuery } from 'common/lib/generated/generated.js';\nimport { useIsFocused, useFocusEffect, useNavigation } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport { StatusBar } from 'expo-status-bar';\nimport { NavigationHeader, ChannelsByAlphabeticalAccordion } from '../../components';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\nconst Channels = ({ navigation, route }: any) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const navigationRef = useNavigation<any>();\n const isFocused = useIsFocused();\n const [channels, setChannels] = useState<any[]>([]);\n const [intialChannels, setInitialChannels] = useState<any[]>([]);\n\n const {\n data: channelsData,\n loading,\n error,\n refetch,\n } = useGetChannelsByUserQuery({\n variables: {\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n if (orgName) {\n refetch({\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n });\n }\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [orgName]),\n );\n\n useEffect(() => {\n if (channelsData) {\n let channels: any = channelsData?.channelsByUser?.filter((i: any) => i.type !== RoomType.Direct);\n channels = channels?.slice()?.sort((a: any, b: any) => a.title.localeCompare(b.title)) ?? [];\n setChannels((oldChannels: any) => uniqBy([...channels, ...oldChannels], ({ id }) => id));\n setInitialChannels((oldChannels: any) => uniqBy([...channels, ...oldChannels], ({ id }) => id));\n }\n }, [channelsData]);\n\n useEffect(() => {\n if (navigation)\n navigation.setOptions({\n // headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {\n borderBottomWidth: 1,\n },\n headerLeft: (props: any) => (\n <Button onPress={() => navigation.goBack()} variant={'link'}>\n <ButtonText>Cancel</ButtonText>\n </Button>\n ),\n headerRight: (props: any) => (\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n variant={'link'}\n >\n <ButtonText>Create</ButtonText>\n </Button>\n ),\n headerTitle: (props: any) => (\n <Box>\n <Text color={'$black'} fontSize={15} fontWeight={'600'}>\n Channels\n </Text>\n </Box>\n ),\n headerStyle: {\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }, [channels, navigation]);\n\n const openInbox = (item: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n hideTabBar: true,\n });\n };\n\n // const renderUserChannelItem = ({ item }: any) => {\n // return (\n // <TouchableHighlight\n // underlayColor={'transparent'}\n // activeOpacity={0.5}\n // key={item.id}\n // style={{ marginTop: 1 }}\n // onPress={() => openInbox(item?.id, item?.title, item?.members?.length)}\n // >\n // <Box bg={'#fff'} shadow={1} py={2}>\n // <VStack space=\"5\">\n // {/* <Box px=\"4\" pt=\"4\"> */}\n // <HStack px=\"4\" py={1} space={2}>\n // <Text style={styles.headingText}>#</Text>\n // {/* <Box px=\"4\" py={1}> */}\n // <Box px=\"2\">\n // <Text style={styles.headingText}>{item.title}</Text>\n // <Text>You are a memeber</Text>\n // </Box>\n // </HStack>\n // {/* <Box px=\"4\" py={1}>\n // <Text style={styles.headingText}># {item.title}</Text>\n // <Text > You are a memeber</Text>\n // </Box> */}\n // {/* <Box px=\"4\" pb={2}>\n // You are a memeber\n // </Box> */}\n // </VStack>\n // </Box>\n // </TouchableHighlight>\n // );\n // };\n\n const sortedChannels: any = React.useMemo(() => {\n const obj = channels.reduce((r, { id, title, type, members }) => {\n const l = title[0];\n if (!r[l]) r[l] = [{ id, title, type, members }];\n else r[l].push({ id, title, type, members });\n return r;\n }, {});\n\n const sorted = Object.entries(obj).sort(([a], [b]) => a.localeCompare(b));\n\n const sortedFilteredData = sorted.map(([key, value]) => {\n return {\n title: key,\n data: value,\n };\n });\n\n return sortedFilteredData;\n }, [channels]);\n\n const searchChannels = React.useCallback(\n (v: any) => {\n if (v) {\n const searchedChannel = channels.filter((o: any) => o?.title?.toLowerCase().includes(v?.toLowerCase()));\n setChannels(searchedChannel);\n } else {\n setChannels(intialChannels);\n }\n },\n [intialChannels, channels],\n );\n\n return (\n <SafeAreaView flex={1} bg={'$white'}>\n <View flex={1} bg={'$white'}>\n <Input\n bg={'$coolGray100'}\n mx=\"$4\"\n my={'$2'}\n borderRadius={'$lg'}\n borderWidth={'$0'}\n style={{ boxShadow: 'none' }}\n variant=\"outline\"\n >\n <InputSlot pl=\"$3\">\n <InputIcon color={'$black'} as={SearchIcon} />\n </InputSlot>\n <InputField\n px={'$3'}\n alignItems=\"center\"\n type=\"text\"\n size=\"xl\"\n placeholder=\"Search\"\n placeholderTextColor={'#404040'}\n color=\"$black\"\n fontSize={15}\n onChange={({ nativeEvent: { eventCount, target, text } }) => {\n searchChannels(text);\n }}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n </Input>\n <Divider />\n {/* <ChannelsByAlphabeticalAccordion channels={sortedChannels} loading={loading} onPress={openInbox} /> */}\n <View flex={1}>\n <VStack flex={1}>\n <FlatList\n contentContainerStyle={{\n flexGrow: 1,\n paddingBottom: 50,\n }}\n w={'100%'}\n h={'100%'}\n maxWidth={'100%'}\n pb={'$20'}\n mb={'$10'}\n data={channels ? channels : []}\n keyExtractor={(item: any, index: any) => item + index}\n renderItem={({ item }: any) => (\n <TouchableHighlight\n underlayColor={'transparent'}\n activeOpacity={0.5}\n key={item.id}\n style={{ marginTop: 1 }}\n onPress={() => openInbox(item)}\n >\n <Box bg={'#fff'} py={'$2'}>\n <VStack space=\"md\">\n <HStack px=\"$4\" py={'$1'} space={'sm'} alignItems=\"center\">\n <Text style={styles.headingText}>\n {item.type == RoomType.Private ? (\n <>\n <FontAwesome color={'#525252'} name=\"lock\" size={20} />\n </>\n ) : (\n <Octicons color=\"#525252\" name=\"hash\" size={20} />\n )}\n </Text>\n\n <Box px=\"$2\">\n <Text style={styles.headingText}>{item.title}</Text>\n {/* <Text>You are a memeber</Text> */}\n </Box>\n </HStack>\n </VStack>\n </Box>\n </TouchableHighlight>\n )}\n ListEmptyComponent={() => {\n return (\n <View py={'$1'}>\n {loading ? (\n <Spinner color={'$blue500'} />\n ) : (\n <Text color={'$coolGray600'}>No Channels found</Text>\n )}\n </View>\n );\n }}\n key={'search-channels-list'}\n />\n </VStack>\n </View>\n\n {/* <Fab\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel)}\n bg={'$white'}\n $pressed-bg={'$trueGray200'}\n $active-bg={'$trueGray200'}\n bottom={'$10'}\n // renderInPortal={false}\n // shadow={3}\n size=\"sm\"\n borderRadius={'$lg'}\n >\n <AntDesign color=\"black\" name=\"plus\" size={20} />\n </Fab> */}\n </View>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n //justifyContent: 'center',\n padding: 20,\n },\n itemView: {\n paddingVertical: 8,\n marginTop: 5,\n },\n headingText: {\n color: Colors.light.text,\n fontSize: 16,\n fontWeight: '400',\n },\n});\n\nexport default React.memo(Channels);\n"],"names":["React","channels","Colors"],"mappings":"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"}
1
+ {"version":3,"file":"Channels.js","sources":["../../../src/screens/Channels/Channels.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { StyleSheet, TouchableHighlight, Dimensions, SafeAreaView, Platform } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n InputIcon,\n SearchIcon,\n Button,\n ButtonText,\n View,\n Text,\n VStack,\n Box,\n Fab,\n FlatList,\n Divider,\n HStack,\n SectionList,\n Center,\n Heading,\n Spinner,\n Avatar,\n Badge,\n BadgeText,\n Pressable,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign } from '@expo/vector-icons';\n// import VirtualizedScrollView from '../VirtualizedScrollView';\nimport { RoomType } from 'common';\nimport { useChannelsQuery } from '../../queries/slackuiQueries';\nimport { useIsFocused, useFocusEffect, useNavigation } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { StatusBar } from 'expo-status-bar';\nimport { NavigationHeader, ChannelsByAlphabeticalAccordion } from '../../components';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\nconst Channels = ({ navigation, route }: any) => {\n const { orgName } = useDrawerLayout();\n const isFocused = useIsFocused();\n const [channels, setChannels] = useState<any[]>([]);\n const [intialChannels, setInitialChannels] = useState<any[]>([]);\n const [searchQuery, setSearchQuery] = useState<string>('');\n\n const { data, loading, error, refetch } = useChannelsQuery();\n\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n refetch({\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n });\n }\n return () => {\n // Cleanup\n };\n }, [orgName, refetch]),\n );\n\n useEffect(() => {\n if (data) {\n const newChannels =\n data?.channelsByUser\n ?.filter((i: any) => i.type !== RoomType.Direct)\n ?.sort((a: any, b: any) => a.title.localeCompare(b.title)) || [];\n\n setChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n setInitialChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n }\n }, [data]);\n\n useEffect(() => {\n if (navigation) {\n navigation.setOptions({\n headerTitleAlign: 'left',\n headerTitleStyle: {\n borderBottomWidth: 1,\n },\n headerLeft: () => (\n <Button\n //onPress={() => navigation.goBack()}\n onPress={() => {\n if (Platform.OS === 'macos') {\n navigation.navigate('MainStack', {\n screen: NavigationRoutes.Home,\n params: { orgName },\n });\n } else if (navigation.canGoBack()) {\n navigation.goBack();\n } else {\n navigation.navigate('MainStack', {\n screen: NavigationRoutes.Home,\n params: { orgName },\n });\n }\n }}\n variant={'link'}\n >\n <ButtonText>\n <MaterialIcons name=\"close\" size={24} color=\"black\" />\n </ButtonText>\n </Button>\n ),\n headerRight: () => (\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n variant={'link'}\n >\n <ButtonText>Create</ButtonText>\n </Button>\n ),\n // headerLeft:()=><></>,\n // headerRight: () => (\n // <Button onPress={() => navigation.goBack()} variant={'link'}>\n // <ButtonText><MaterialIcons name=\"close\" size={24} color=\"black\" /></ButtonText>\n // </Button>\n // ),\n headerTitle: () => (\n <Box>\n <Text color={colors.black} className=\"text-[15] font-bold\">\n Channels\n </Text>\n </Box>\n ),\n headerStyle: {\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }\n }, [navigation, orgName]);\n\n const openInbox = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n hideTabBar: true,\n });\n },\n [navigation],\n );\n\n const searchChannels = useCallback(\n (text: string) => {\n setSearchQuery(text);\n if (text) {\n const searchedChannel = intialChannels.filter((o: any) =>\n o?.title?.toLowerCase().includes(text?.toLowerCase()),\n );\n setChannels(searchedChannel);\n } else {\n setChannels(intialChannels);\n }\n },\n [intialChannels],\n );\n\n const renderChannelIcon = useCallback((type: RoomType) => {\n if (type === RoomType.Private) {\n return <FontAwesome color={'#525252'} name=\"lock\" size={18} />;\n } else {\n return <Octicons color=\"#525252\" name=\"hash\" size={18} />;\n }\n }, []);\n\n const renderChannelItem = useCallback(\n ({ item }: any) => (\n <Pressable onPress={() => openInbox(item)}>\n {({ pressed }) => (\n <Box\n className={`py-4 ${pressed ? 'bg-gray-100' : 'bg-white'} border-b border-gray-200`}\n style={{ borderBottomColor: colors.gray[300] }}\n >\n <HStack className=\"px-4 items-center\">\n <Box className=\"mr-2\">{renderChannelIcon(item.type)}</Box>\n <VStack>\n <Text\n className=\"font-medium text-lg text-gray-900\"\n numberOfLines={1}\n ellipsizeMode=\"tail\"\n >\n {item.title}\n </Text>\n </VStack>\n </HStack>\n </Box>\n )}\n </Pressable>\n ),\n [openInbox, renderChannelIcon],\n );\n\n const renderEmptyList = useCallback(\n () => (\n <Center className=\"flex-1 py-10\">\n {loading ? (\n <VStack className=\"space-y-3 items-center\">\n <Spinner size=\"large\" color={colors.blue[500]} />\n <Text color={colors.gray[600]}>Loading channels...</Text>\n </VStack>\n ) : (\n <VStack className=\"space-y-3 items-center px-4\">\n <Box className=\"rounded-full bg-gray-100 p-4\">\n <Octicons name=\"hash\" size={32} color={colors.gray[400]} />\n </Box>\n <Heading size=\"sm\" style={{ color: colors.gray[800] }}>\n No Channels Found\n </Heading>\n {searchQuery ? (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n No channels match your search \"{searchQuery}\"\n </Text>\n ) : (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n Create a new channel to get started\n </Text>\n )}\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n className=\"mt-2\"\n >\n <ButtonText>Create Channel</ButtonText>\n </Button>\n </VStack>\n )}\n </Center>\n ),\n [loading, searchQuery, navigation, orgName],\n );\n\n const keyExtractor = useCallback((item: any) => item.id.toString(), []);\n\n const navigateToAddChannel = useCallback(() => {\n navigation.navigate(NavigationRoutes.AddChannel, { orgName });\n }, [navigation, orgName]);\n\n return (\n <SafeAreaView style={styles.safeArea}>\n <StatusBar style=\"dark\" />\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2\" style={styles.searchContainer}>\n <Input\n variant=\"outline\"\n className=\"bg-white rounded-3xl border border-gray-300\"\n style={styles.searchInput}\n size=\"lg\"\n >\n <InputSlot className=\"pl-3\">\n <InputIcon color={colors.gray[500]} as={SearchIcon} />\n </InputSlot>\n <InputField\n type=\"text\"\n size=\"md\"\n placeholder=\"Search channels\"\n placeholderTextColor={colors.gray[400]}\n className=\"px-3 py-2 text-base\"\n value={searchQuery}\n onChange={(event) => searchChannels(event.nativeEvent.text)}\n autoCapitalize=\"none\"\n autoCorrect={false}\n clearButtonMode=\"while-editing\"\n />\n </Input>\n </Box>\n\n <Box className=\"flex-1\">\n <FlatList\n contentContainerStyle={styles.flatListContent}\n data={channels}\n keyExtractor={keyExtractor}\n renderItem={renderChannelItem}\n ListEmptyComponent={renderEmptyList}\n showsVerticalScrollIndicator={false}\n initialNumToRender={10}\n maxToRenderPerBatch={10}\n windowSize={10}\n />\n </Box>\n\n {/* <Fab\n onPress={navigateToAddChannel}\n className=\"bg-blue-500 mb-16 mr-4\"\n $pressed-className=\"bg-blue-600\"\n size=\"lg\"\n placement=\"bottom right\"\n >\n <AntDesign color=\"white\" name=\"plus\" size={24} />\n </Fab> */}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n safeArea: {\n flex: 1,\n backgroundColor: 'white',\n },\n searchContainer: {\n paddingVertical: 10,\n },\n searchInput: {\n borderRadius: 10,\n borderColor: colors.gray[300],\n paddingHorizontal: 10,\n },\n flatListContent: {\n flexGrow: 1,\n paddingBottom: 80,\n },\n channelTitle: {\n color: colors.gray[900],\n fontSize: 16,\n fontWeight: '500',\n },\n channelDescription: {\n color: colors.gray[600],\n fontSize: 14,\n marginTop: 2,\n },\n});\n\nexport default React.memo(Channels);\n"],"names":["React"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import React__default from'react';import {View,Text}from'@admin-layout/gluestack-ui-mobile';const FilesScreen = ({
1
+ import React__default from'react';import {Box,Text}from'@admin-layout/gluestack-ui-mobile';const FilesScreen = ({
2
2
  navigation
3
3
  }) => {
4
- return /* @__PURE__ */ React__default.createElement(View, { py: "$2", bg: "#fff", flex: 1, justifyContent: "center", alignItems: "center" }, /* @__PURE__ */ React__default.createElement(Text, { pb: "$12", textAlign: "center", fontSize: "$md", fontWeight: "$bold" }, "Files"));
4
+ return /* @__PURE__ */ React__default.createElement(Box, { className: "py-2 bg-white flex-1 justify-center items-center" }, /* @__PURE__ */ React__default.createElement(Text, { className: "pb-12 text-center text-base font-bold" }, "Files"));
5
5
  };export{FilesScreen as default};//# sourceMappingURL=FilesScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilesScreen.js","sources":["../../../src/screens/Files/FilesScreen.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport { StackNavigationProp } from '@react-navigation/stack';\nimport React, { useState } from 'react';\nimport { Pressable, TouchableOpacity } from 'react-native';\nimport { Actionsheet, Box, Text, Button, Image, View, FlatList } from '@admin-layout/gluestack-ui-mobile';\nimport { StatusBar } from 'expo-status-bar';\nimport { Header, Tiles } from '../../components';\nimport { NavigationRoutes } from '../../constants/routes';\ntype FilesScreenProps = {\n navigation: any;\n};\n\nconst FilesScreen = ({ navigation }: FilesScreenProps) => {\n return (\n <View py={'$2'} bg={'#fff'} flex={1} justifyContent={'center'} alignItems={'center'}>\n <Text pb={'$12'} textAlign={'center'} fontSize={'$md'} fontWeight={'$bold'}>\n Files\n </Text>\n </View>\n );\n};\n\nexport default FilesScreen;\n"],"names":["React"],"mappings":"4FAWA,MAAM,cAAc,CAAC;AAAA,EACnB;AACF,CAAwB,KAAA;AACtB,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,EAAI,EAAA,IAAA,EAAM,IAAI,MAAQ,EAAA,IAAA,EAAM,CAAG,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,4BACvEA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAI,EAAA,KAAA,EAAO,SAAW,EAAA,QAAA,EAAU,UAAU,KAAO,EAAA,UAAA,EAAY,OAAS,EAAA,EAAA,OAE5E,CACJ,CAAA;AACR"}
1
+ {"version":3,"file":"FilesScreen.js","sources":["../../../src/screens/Files/FilesScreen.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport { StackNavigationProp } from '@react-navigation/stack';\nimport React, { useState } from 'react';\nimport { Pressable, TouchableOpacity } from 'react-native';\nimport { Actionsheet, Box, Text, Button, Image, View, FlatList } from '@admin-layout/gluestack-ui-mobile';\nimport { StatusBar } from 'expo-status-bar';\nimport { Header, Tiles } from '../../components';\nimport { NavigationRoutes } from '../../constants/routes';\ntype FilesScreenProps = {\n navigation: any;\n};\n\nconst FilesScreen = ({ navigation }: FilesScreenProps) => {\n return (\n <Box className=\"py-2 bg-white flex-1 justify-center items-center\">\n <Text className=\"pb-12 text-center text-base font-bold\">Files</Text>\n </Box>\n );\n};\n\nexport default FilesScreen;\n"],"names":["React"],"mappings":"2FAWA,MAAM,cAAc,CAAC;AAAA,EACnB;AACF,CAAwB,KAAA;AACtB,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAU,EAAA,kDAAA,EAAA,+CACX,IAAK,EAAA,EAAA,SAAA,EAAU,uCAAwC,EAAA,EAAA,OAAK,CACjE,CAAA;AACR"}