@messenger-box/slack-ui-mobile 10.0.3-alpha.7 → 10.0.3-alpha.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Actionsheet.js +96 -0
- package/lib/components/Actionsheet.js.map +1 -0
- package/lib/components/AppRootContextProviderComponent.js +16 -2
- package/lib/components/AppRootContextProviderComponent.js.map +1 -1
- package/lib/components/Channels/ChannelsByAlphabeticalAccordion.js +13 -7
- package/lib/components/Channels/ChannelsByAlphabeticalAccordion.js.map +1 -1
- package/lib/components/CustomBottomTabs/CustomBottomTabs.js +11 -24
- package/lib/components/CustomBottomTabs/CustomBottomTabs.js.map +1 -1
- package/lib/components/CustomDrawer/CustomDrawer.js +31 -31
- package/lib/components/CustomDrawer/CustomDrawer.js.map +1 -1
- package/lib/components/Header/styles.js +2 -2
- package/lib/components/Header/styles.js.map +1 -1
- package/lib/components/LoadingSpinner/index.js +3 -3
- package/lib/components/LoadingSpinner/index.js.map +1 -1
- package/lib/components/NavigationHeader/InboxNavigationHeader.js +20 -25
- package/lib/components/NavigationHeader/InboxNavigationHeader.js.map +1 -1
- package/lib/components/NavigationHeader/NavigationHeader.js +58 -40
- package/lib/components/NavigationHeader/NavigationHeader.js.map +1 -1
- package/lib/components/NavigationHeader/NavigationHeaderChat.js +9 -9
- package/lib/components/NavigationHeader/NavigationHeaderChat.js.map +1 -1
- package/lib/components/NavigationHeader/index.js +1 -1
- package/lib/components/SlackSearchInput/Suggestion.js +1 -1
- package/lib/components/SlackSearchInput/Tag.js +1 -1
- package/lib/components/SlackSearchInput/index.js +3 -3
- package/lib/components/SlackSearchInput/index.js.map +1 -1
- package/lib/components/VirtualizedScrollView/VirtualizedScrollView.js +19 -4
- package/lib/components/VirtualizedScrollView/VirtualizedScrollView.js.map +1 -1
- package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js +41 -31
- package/lib/components/WorkSpaceDrawer/WorkSpaceDrawer.js.map +1 -1
- package/lib/compute.js +32 -23
- package/lib/compute.js.map +1 -1
- package/lib/constants/Colors.js +2 -2
- package/lib/constants/globalStyles.js +3 -3
- package/lib/constants/globalStyles.js.map +1 -1
- package/lib/hooks/useOptimizedChannelsQueries.js +106 -0
- package/lib/hooks/useOptimizedChannelsQueries.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/navigation/SearchTabNavigation.js +47 -39
- package/lib/navigation/SearchTabNavigation.js.map +1 -1
- package/lib/navigation/TeamTabNavigation.js +51 -38
- package/lib/navigation/TeamTabNavigation.js.map +1 -1
- package/lib/queries/slackuiQueries.js +129 -0
- package/lib/queries/slackuiQueries.js.map +1 -0
- package/lib/routes.json +32 -23
- package/lib/screens/Account/AccountScreen.js +23 -26
- package/lib/screens/Account/AccountScreen.js.map +1 -1
- package/lib/screens/Activity/ActivityScreen.js +6 -2
- package/lib/screens/Activity/ActivityScreen.js.map +1 -1
- package/lib/screens/Channels/Add/AddName.js +33 -8
- package/lib/screens/Channels/Add/AddName.js.map +1 -1
- package/lib/screens/Channels/Add/AddVisibility.js +6 -6
- package/lib/screens/Channels/Add/AddVisibility.js.map +1 -1
- package/lib/screens/Channels/AddChannel.js +5 -3
- package/lib/screens/Channels/AddChannel.js.map +1 -1
- package/lib/screens/Channels/Channels.js +101 -95
- package/lib/screens/Channels/Channels.js.map +1 -1
- package/lib/screens/Files/FilesScreen.js +2 -2
- package/lib/screens/Files/FilesScreen.js.map +1 -1
- package/lib/screens/Home/Components/Channels/Channels.js +91 -77
- package/lib/screens/Home/Components/Channels/Channels.js.map +1 -1
- package/lib/screens/Home/Components/DirectChannels/DirectChannels.js +249 -115
- package/lib/screens/Home/Components/DirectChannels/DirectChannels.js.map +1 -1
- package/lib/screens/Home/Components/InviteMembers/index.js +88 -0
- package/lib/screens/Home/Components/InviteMembers/index.js.map +1 -0
- package/lib/screens/Home/Components/Teams/Teams.js +110 -47
- package/lib/screens/Home/Components/Teams/Teams.js.map +1 -1
- package/lib/screens/Home/Components/TopCommonSlider/TopCommonSlider.js +44 -75
- package/lib/screens/Home/Components/TopCommonSlider/TopCommonSlider.js.map +1 -1
- package/lib/screens/Home/HomeScreen.js +161 -194
- package/lib/screens/Home/HomeScreen.js.map +1 -1
- package/lib/screens/Home/styles.js +4 -4
- package/lib/screens/Home/styles.js.map +1 -1
- package/lib/screens/Inbox/InboxChannelDetail.js +67 -34
- package/lib/screens/Inbox/InboxChannelDetail.js.map +1 -1
- package/lib/screens/Inbox/InboxDialogMessages.js +2 -2
- package/lib/screens/Inbox/InboxDialogMessages.js.map +1 -1
- package/lib/screens/Inbox/InboxScreen.js +3 -3
- package/lib/screens/Inbox/InboxScreen.js.map +1 -1
- package/lib/screens/Login.js +4 -2
- package/lib/screens/Login.js.map +1 -1
- package/lib/screens/Organization/AddWorkspace.js +42 -38
- package/lib/screens/Organization/AddWorkspace.js.map +1 -1
- package/lib/screens/Organization/CreateOrganization.js +11 -2
- package/lib/screens/Organization/CreateOrganization.js.map +1 -1
- package/lib/screens/Organization/InitialChannelOnboarding.js +22 -4
- package/lib/screens/Organization/InitialChannelOnboarding.js.map +1 -1
- package/lib/screens/Organization/InitializeOrganizationChannel.js +9 -4
- package/lib/screens/Organization/InitializeOrganizationChannel.js.map +1 -1
- package/lib/screens/Organization/InviteOrganizationMembers.js +52 -10
- package/lib/screens/Organization/InviteOrganizationMembers.js.map +1 -1
- package/lib/screens/Peoples/AddByEmail.js +24 -6
- package/lib/screens/Peoples/AddByEmail.js.map +1 -1
- package/lib/screens/Peoples/AddFromContacts.js +172 -87
- package/lib/screens/Peoples/AddFromContacts.js.map +1 -1
- package/lib/screens/Peoples/AddPeople.js +21 -42
- package/lib/screens/Peoples/AddPeople.js.map +1 -1
- package/lib/screens/Peoples/People.js +42 -4
- package/lib/screens/Peoples/People.js.map +1 -1
- package/lib/screens/Profile/ProfileScreen.js +27 -12
- package/lib/screens/Profile/ProfileScreen.js.map +1 -1
- package/lib/screens/Saved/SavedScreen.js +2 -2
- package/lib/screens/Saved/SavedScreen.js.map +1 -1
- package/lib/screens/Search/Channels.js +20 -32
- package/lib/screens/Search/Channels.js.map +1 -1
- package/lib/screens/Search/Files.js +2 -2
- package/lib/screens/Search/Files.js.map +1 -1
- package/lib/screens/Search/JumpTo.js +2 -2
- package/lib/screens/Search/JumpTo.js.map +1 -1
- package/lib/screens/Search/People.js +19 -27
- package/lib/screens/Search/People.js.map +1 -1
- package/lib/screens/Search/Recents.js +26 -31
- package/lib/screens/Search/Recents.js.map +1 -1
- package/lib/screens/Search/SearchAddChannel.js +366 -227
- package/lib/screens/Search/SearchAddChannel.js.map +1 -1
- package/lib/screens/Search/SearchChannelPeople.js +70 -37
- package/lib/screens/Search/SearchChannelPeople.js.map +1 -1
- package/lib/screens/Search/SearchScreen.js +5 -3
- package/lib/screens/Search/SearchScreen.js.map +1 -1
- package/lib/screens/Search/styles.js +2 -2
- package/lib/screens/Search/styles.js.map +1 -1
- package/lib/screens/Teams/AddTeam.js +3 -3
- package/lib/screens/Teams/AddTeam.js.map +1 -1
- package/lib/screens/Teams/Components/Channels/Channels.js +6 -6
- package/lib/screens/Teams/Components/Channels/Channels.js.map +1 -1
- package/lib/screens/Teams/Components/Members/Members.js +7 -3
- package/lib/screens/Teams/Components/Members/Members.js.map +1 -1
- package/lib/screens/Teams/Team.js +6 -8
- package/lib/screens/Teams/Team.js.map +1 -1
- package/lib/screens/Teams/Teams.js +137 -106
- package/lib/screens/Teams/Teams.js.map +1 -1
- package/lib/screens/Teams/useTeams.js +41 -0
- package/lib/screens/Teams/useTeams.js.map +1 -0
- package/lib/screens/Wiki/WikiScreen.js +2 -2
- package/lib/screens/Wiki/WikiScreen.js.map +1 -1
- package/lib/theme/index.js +2 -2
- package/lib/theme/index.js.map +1 -1
- package/package.json +6 -4
- package/lib/navigation/ActivityNavigator.js +0 -61
- package/lib/navigation/ActivityNavigator.js.map +0 -1
- package/lib/navigation/ExploreNavigator.js +0 -583
- package/lib/navigation/ExploreNavigator.js.map +0 -1
- package/lib/navigation/InboxNavigator.js +0 -183
- package/lib/navigation/InboxNavigator.js.map +0 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React__default from'react';import {TouchableOpacity,Share}from'react-native';import {Ionicons,AntDesign,MaterialCommunityIcons}from'@expo/vector-icons';import {useNavigation}from'@react-navigation/native';import {HStack,Text,Box}from'@admin-layout/gluestack-ui-mobile';import {useDisclose}from'../../../../hooks/useDisclose.js';import Colors from'../../../../constants/Colors.js';import'../../../../constants/device.js';import'../../../../constants/globalStyles.js';import'../../../../constants/Layout.js';import {NavigationRoutes}from'../../../../constants/routes.js';import'@react-navigation/core';import'../../../../components/Header/styles.js';import'../../../../components/Tiles/styles.js';import'../../../../components/CustomDrawer/CustomDrawer.js';import'../../../../components/CustomBottomTabs/CustomBottomTabs.js';import'../../../../components/NavigationHeader/NavigationHeader.js';import'@react-navigation/elements';import'@common-stack/client-react';import'../../../../components/NavigationHeader/InboxNavigationHeader.js';import colors from'tailwindcss/colors';import'../../../../components/WorkSpaceDrawer/WorkSpaceDrawer.js';import'../../../../components/Channels/ChannelsByAlphabeticalAccordion.js';import'../../../../components/SlackSearchInput/index.js';import'../../../../components/AppRootContextProviderComponent.js';import {Actionsheet as ActionSheet}from'../../../../components/Actionsheet.js';import {useOrganizationSharableLinkQuery}from'../../../../queries/slackuiQueries.js';import {useDrawerLayout}from'../../../../hooks/useDrawerLayout.js';import {config}from'../../../../config/env-config.js';const InviteMembers = () => {
|
|
2
|
+
const {
|
|
3
|
+
isOpen,
|
|
4
|
+
onOpen,
|
|
5
|
+
onClose
|
|
6
|
+
} = useDisclose();
|
|
7
|
+
const navigation = useNavigation();
|
|
8
|
+
const {
|
|
9
|
+
orgName
|
|
10
|
+
} = useDrawerLayout();
|
|
11
|
+
const {
|
|
12
|
+
data: organizationSharableLink
|
|
13
|
+
} = useOrganizationSharableLinkQuery(orgName, {
|
|
14
|
+
fetchPolicy: "cache-and-network",
|
|
15
|
+
skip: !isOpen
|
|
16
|
+
});
|
|
17
|
+
const shareLink = async () => {
|
|
18
|
+
var _a;
|
|
19
|
+
try {
|
|
20
|
+
await Share.share({
|
|
21
|
+
message: `${config.APP_NAME} - ${(_a = organizationSharableLink == null ? void 0 : organizationSharableLink.getOrganizationSharableLink) != null ? _a : ""}`
|
|
22
|
+
});
|
|
23
|
+
} catch (error) {
|
|
24
|
+
alert(error.message);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const actionItems = [
|
|
28
|
+
{
|
|
29
|
+
id: 1,
|
|
30
|
+
label: /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "flex-1 justify-center items-center", style: {
|
|
31
|
+
backgroundColor: Colors.green,
|
|
32
|
+
paddingVertical: 12,
|
|
33
|
+
borderRadius: 8,
|
|
34
|
+
marginHorizontal: 10,
|
|
35
|
+
marginVertical: 5
|
|
36
|
+
} }, /* @__PURE__ */ React__default.createElement(Ionicons, { color: "white", name: "share-outline", size: 22 }), /* @__PURE__ */ React__default.createElement(Text, { className: "text-white", style: {
|
|
37
|
+
color: "white",
|
|
38
|
+
fontWeight: "600",
|
|
39
|
+
fontSize: 16
|
|
40
|
+
} }, "Share a Link")),
|
|
41
|
+
onPress: shareLink
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 2,
|
|
45
|
+
label: /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "flex-1 justify-center items-center border", style: {
|
|
46
|
+
paddingVertical: 12,
|
|
47
|
+
borderRadius: 8,
|
|
48
|
+
marginHorizontal: 10,
|
|
49
|
+
marginVertical: 5,
|
|
50
|
+
backgroundColor: colors.gray[50]
|
|
51
|
+
} }, /* @__PURE__ */ React__default.createElement(AntDesign, { color: colors.gray[900], name: "adduser", size: 22 }), /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
52
|
+
color: colors.gray[900],
|
|
53
|
+
fontWeight: "600",
|
|
54
|
+
fontSize: 16
|
|
55
|
+
} }, "Add from Contacts")),
|
|
56
|
+
onPress: () => navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {
|
|
57
|
+
orgName
|
|
58
|
+
})
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 4,
|
|
62
|
+
label: /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "flex-1 justify-center items-center border", style: {
|
|
63
|
+
paddingVertical: 12,
|
|
64
|
+
borderRadius: 8,
|
|
65
|
+
marginHorizontal: 10,
|
|
66
|
+
marginVertical: 5,
|
|
67
|
+
backgroundColor: colors.gray[50]
|
|
68
|
+
} }, /* @__PURE__ */ React__default.createElement(MaterialCommunityIcons, { color: colors.gray[900], name: "email-outline", size: 22 }), /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
69
|
+
color: colors.gray[900],
|
|
70
|
+
fontWeight: "600",
|
|
71
|
+
fontSize: 16
|
|
72
|
+
} }, "Add by Email")),
|
|
73
|
+
onPress: () => navigation.navigate(NavigationRoutes.AddPeopleByEmail, {
|
|
74
|
+
orgName
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
];
|
|
78
|
+
return /* @__PURE__ */ React__default.createElement(Box, { style: {
|
|
79
|
+
marginBottom: 8,
|
|
80
|
+
paddingHorizontal: 12
|
|
81
|
+
} }, /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: onOpen }, /* @__PURE__ */ React__default.createElement(Box, { className: "py-3 " }, /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "w-full flex-1 items-center space-x-3" }, /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Ionicons, { name: "add", size: 20, color: "black" })), /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
82
|
+
fontSize: 15,
|
|
83
|
+
fontWeight: "500"
|
|
84
|
+
}, color: colors.gray[800] }, "Add teammates")))), /* @__PURE__ */ React__default.createElement(ActionSheet, { isOpen, actionItems, onCancel: onClose, hideBottomWidth: true, isShowCancelButton: false, header: /* @__PURE__ */ React__default.createElement(Text, { className: "text-center font-bold text-lg bg-white", style: {
|
|
85
|
+
paddingVertical: 16,
|
|
86
|
+
color: colors.gray[900]
|
|
87
|
+
} }, "Invite people to join your team") }));
|
|
88
|
+
};export{InviteMembers};//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/screens/Home/Components/InviteMembers/index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableHighlight, Share, TouchableOpacity } from 'react-native';\nimport { Ionicons, AntDesign, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { useDisclose } from '../../../../hooks/useDisclose';\nimport { NavigationRoutes, colors } from '../../../../constants';\nimport { Actionsheet } from '../../../../components';\nimport { useOrganizationSharableLinkQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks/useDrawerLayout';\nimport { config } from '../../../../config';\nimport Colors from 'tailwindcss/colors';\n\nexport const InviteMembers = () => {\n const { isOpen, onOpen, onClose } = useDisclose();\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n\n // Only fetch sharable link when needed (when action sheet is open)\n const { data: organizationSharableLink } = useOrganizationSharableLinkQuery(orgName, {\n fetchPolicy: 'cache-and-network',\n skip: !isOpen,\n });\n\n const shareLink = async () => {\n try {\n await Share.share({\n message: `${config.APP_NAME} - ${organizationSharableLink?.getOrganizationSharableLink ?? ''}`,\n });\n } catch (error: any) {\n alert(error.message);\n }\n };\n\n const actionItems = [\n {\n id: 1,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center\"\n style={{\n backgroundColor: colors.green,\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n }}\n >\n <Ionicons color={'white'} name=\"share-outline\" size={22} />\n <Text className=\"text-white\" style={{ color: 'white', fontWeight: '600', fontSize: 16 }}>\n Share a Link\n </Text>\n </HStack>\n ),\n onPress: shareLink,\n },\n {\n id: 2,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <AntDesign color={Colors.gray[900]} name=\"adduser\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add from Contacts</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleFromContacts, {\n orgName,\n }),\n },\n // {\n // id: 3,\n // label: (\n // <HStack\n // space={'sm'}\n // className=\"flex-1 justify-center items-center\"\n // style={{\n // paddingVertical: 12,\n // borderRadius: 8,\n // marginHorizontal: 10,\n // marginVertical: 5,\n // backgroundColor: Colors.gray[50],\n // }}\n // >\n // <AntDesign color={Colors.gray[900]} name=\"google\" size={22} />\n // <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>\n // Add from Google Contacts\n // </Text>\n // </HStack>\n // ),\n // onPress: () => {\n // // Navigate to Google contacts integration\n // // This would be implemented based on your app's functionality\n // },\n // },\n {\n id: 4,\n label: (\n <HStack\n space={'sm'}\n className=\"flex-1 justify-center items-center border\"\n style={{\n paddingVertical: 12,\n borderRadius: 8,\n marginHorizontal: 10,\n marginVertical: 5,\n backgroundColor: Colors.gray[50],\n }}\n >\n <MaterialCommunityIcons color={Colors.gray[900]} name=\"email-outline\" size={22} />\n <Text style={{ color: Colors.gray[900], fontWeight: '600', fontSize: 16 }}>Add by Email</Text>\n </HStack>\n ),\n onPress: () =>\n navigation.navigate(NavigationRoutes.AddPeopleByEmail, {\n orgName,\n }),\n },\n ];\n\n return (\n <Box style={{ marginBottom: 8, paddingHorizontal: 12 }}>\n {/* Floating Action Button to open ActionSheet */}\n <TouchableOpacity onPress={onOpen}>\n <Box className=\"py-3 \">\n <HStack space={'sm'} className=\"w-full flex-1 items-center space-x-3\">\n <Box>\n <Ionicons name=\"add\" size={20} color=\"black\" />\n </Box>\n <Text style={{ fontSize: 15, fontWeight: '500' }} color={Colors.gray[800]}>\n Add teammates\n </Text>\n </HStack>\n </Box>\n </TouchableOpacity>\n\n <Actionsheet\n isOpen={isOpen}\n actionItems={actionItems}\n onCancel={onClose}\n hideBottomWidth={true}\n isShowCancelButton={false}\n header={\n <Text\n className=\"text-center font-bold text-lg bg-white\"\n style={{\n paddingVertical: 16,\n color: Colors.gray[900],\n }}\n >\n Invite people to join your team\n </Text>\n }\n />\n </Box>\n );\n};\n"],"names":["React","colors","Colors","Actionsheet"],"mappings":"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"}
|
|
@@ -1,28 +1,51 @@
|
|
|
1
|
-
import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import React__default,{useState}from'react';import {TouchableOpacity}from'react-native';import
|
|
2
|
-
teams,
|
|
3
|
-
refetchTeams,
|
|
4
|
-
loading
|
|
5
|
-
}) => {
|
|
1
|
+
import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native';import React__default,{useState,useContext,useCallback,useMemo}from'react';import {TouchableOpacity}from'react-native';import {HStack,Text,Box,VStack,FlatList}from'@admin-layout/gluestack-ui-mobile';import {NavigationRoutes}from'../../../../constants/routes.js';import {userSelector}from'@adminide-stack/user-auth0-client';import {useSelector,shallowEqual}from'react-redux';import {take,orderBy,uniqBy}from'lodash-es';import {useTeamsQuery}from'../../../../queries/slackuiQueries.js';import {Octicons,Feather,MaterialIcons,FontAwesome}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../../../hooks/useDrawerLayout.js';import'../../../../hooks/useExpoNotificationProvider.js';import'../../../../hooks/useOptimizedChannelsQueries.js';import colors from'tailwindcss/colors';import {RefetchContext}from'../../HomeScreen.js';const Teams = () => {
|
|
6
2
|
const {
|
|
7
|
-
orgName
|
|
8
|
-
organizationDetail
|
|
3
|
+
orgName
|
|
9
4
|
} = useDrawerLayout();
|
|
10
5
|
const navigation = useNavigation();
|
|
11
6
|
const [teamExpandable, setTeamExpendable] = useState(true);
|
|
12
|
-
useSelector(userSelector);
|
|
7
|
+
useSelector(userSelector, shallowEqual);
|
|
13
8
|
useIsFocused();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
const {
|
|
10
|
+
shouldRefetch
|
|
11
|
+
} = useContext(RefetchContext);
|
|
12
|
+
const {
|
|
13
|
+
data: orgTeamsData,
|
|
14
|
+
refetch: reFetchOrgTeams,
|
|
15
|
+
error: teamsError
|
|
16
|
+
} = useTeamsQuery({
|
|
17
|
+
variables: {
|
|
18
|
+
orgName
|
|
19
|
+
},
|
|
20
|
+
fetchPolicy: "cache-and-network",
|
|
21
|
+
nextFetchPolicy: "cache-first",
|
|
22
|
+
skip: !orgName
|
|
23
|
+
});
|
|
24
|
+
const reFetchTeams = useCallback(() => {
|
|
25
|
+
if (orgName) {
|
|
26
|
+
return reFetchOrgTeams({
|
|
27
|
+
orgName
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}, [orgName, reFetchOrgTeams]);
|
|
31
|
+
useFocusEffect(useCallback(() => {
|
|
32
|
+
if (shouldRefetch && orgName) {
|
|
33
|
+
reFetchTeams();
|
|
34
|
+
}
|
|
35
|
+
}, [shouldRefetch, orgName, reFetchTeams]));
|
|
36
|
+
useFocusEffect(useCallback(() => {
|
|
37
|
+
if (orgName) {
|
|
38
|
+
reFetchTeams();
|
|
39
|
+
}
|
|
40
|
+
}, [orgName, reFetchTeams]));
|
|
41
|
+
const organizationTeams = useMemo(() => {
|
|
20
42
|
var _a;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
43
|
+
const teams = (orgTeamsData == null ? void 0 : orgTeamsData.getOrganizationTeams) || [];
|
|
44
|
+
return teams.length ? take(orderBy(uniqBy((_a = [...teams]) == null ? void 0 : _a.filter((t) => (t == null ? void 0 : t.orgName) === orgName), ({
|
|
45
|
+
_id
|
|
46
|
+
}) => _id), [(ch) => ch == null ? void 0 : ch.title.toLowerCase()], ["asc"]), 10) : [];
|
|
47
|
+
}, [orgTeamsData, orgName]);
|
|
48
|
+
const viewTeam = useCallback((item) => {
|
|
26
49
|
var _a, _b, _c;
|
|
27
50
|
navigation.navigate(NavigationRoutes.ViewTeam, {
|
|
28
51
|
teamId: (_a = item == null ? void 0 : item.id) == null ? void 0 : _a.toString(),
|
|
@@ -32,35 +55,75 @@ import {useNavigation,useIsFocused,useFocusEffect}from'@react-navigation/native'
|
|
|
32
55
|
orgName,
|
|
33
56
|
hideTabBar: true
|
|
34
57
|
});
|
|
35
|
-
}, [orgName]);
|
|
36
|
-
const renderOrganizationTeamItem = ({
|
|
58
|
+
}, [orgName, navigation]);
|
|
59
|
+
const renderOrganizationTeamItem = useCallback(({
|
|
37
60
|
item
|
|
38
|
-
}) => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
}) => /* @__PURE__ */ React__default.createElement(TouchableOpacity, { key: item.id, onPress: () => viewTeam(item), style: {
|
|
62
|
+
paddingVertical: 2,
|
|
63
|
+
paddingHorizontal: 12
|
|
64
|
+
} }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Octicons, { color: colors.gray[700], name: "lock", size: 18 }), /* @__PURE__ */ React__default.createElement(Text, { className: "text-gray-900 flex-1 text-base" }, item.title))), [viewTeam]);
|
|
65
|
+
const ListEmptyComponent = useCallback(() => {
|
|
66
|
+
const errorMessage = teamsError ? teamsError.message.includes("Service 'TeamService") ? "Team service is temporarily unavailable. Please try again later." : teamsError.message : null;
|
|
67
|
+
return /* @__PURE__ */ React__default.createElement(Box, { style: {
|
|
68
|
+
padding: 12
|
|
69
|
+
} }, errorMessage ? /* @__PURE__ */ React__default.createElement(Box, { style: {
|
|
70
|
+
padding: 8,
|
|
71
|
+
backgroundColor: "#FFF4F4",
|
|
72
|
+
borderRadius: 4
|
|
73
|
+
} }, /* @__PURE__ */ React__default.createElement(Text, { color: "#E01E5A", style: {
|
|
74
|
+
marginBottom: 8,
|
|
75
|
+
fontWeight: "500"
|
|
76
|
+
} }, errorMessage), /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: reFetchTeams }, /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", style: {
|
|
77
|
+
alignItems: "center"
|
|
78
|
+
} }, /* @__PURE__ */ React__default.createElement(Feather, { name: "refresh-cw", color: "#1264A3", size: 16 }), /* @__PURE__ */ React__default.createElement(Text, { color: "#1264A3", style: {
|
|
79
|
+
fontWeight: "500"
|
|
80
|
+
} }, "Retry")))) : /* @__PURE__ */ React__default.createElement(Box, { style: {
|
|
81
|
+
alignItems: "center",
|
|
82
|
+
paddingVertical: 16
|
|
83
|
+
} }, /* @__PURE__ */ React__default.createElement(Box, { style: {
|
|
84
|
+
padding: 12,
|
|
85
|
+
marginBottom: 8,
|
|
86
|
+
borderRadius: 24,
|
|
87
|
+
backgroundColor: "#F8F8F8"
|
|
88
|
+
} }, /* @__PURE__ */ React__default.createElement(Octicons, { name: "organization", color: "#616061", size: 20 })), /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
89
|
+
color: "#616061",
|
|
90
|
+
textAlign: "center"
|
|
91
|
+
} }, "No teams available")));
|
|
92
|
+
}, [teamsError, reFetchTeams]);
|
|
93
|
+
const ListFooterComponent = useCallback(() => {
|
|
94
|
+
var _a;
|
|
95
|
+
const teamsCount = ((_a = orgTeamsData == null ? void 0 : orgTeamsData.getOrganizationTeams) == null ? void 0 : _a.length) || 0;
|
|
96
|
+
return /* @__PURE__ */ React__default.createElement(VStack, null, teamsCount > 10 && /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => navigation.navigate(NavigationRoutes.Teams, {
|
|
56
97
|
orgName
|
|
57
|
-
}),
|
|
98
|
+
}), style: {
|
|
99
|
+
paddingVertical: 8,
|
|
100
|
+
paddingHorizontal: 12
|
|
101
|
+
} }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(MaterialIcons, { color: "#616061", name: "search", size: 18 }), /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
102
|
+
fontSize: 16,
|
|
103
|
+
color: "#616061"
|
|
104
|
+
} }, "Browse all Teams"))), /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => navigation.navigate(NavigationRoutes.AddTeam, {
|
|
58
105
|
orgName
|
|
59
|
-
})
|
|
106
|
+
}), style: {
|
|
107
|
+
paddingBottom: 5,
|
|
108
|
+
paddingHorizontal: 12
|
|
109
|
+
} }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center" }, /* @__PURE__ */ React__default.createElement(Feather, { color: "#616061", name: "plus", size: 18 }), /* @__PURE__ */ React__default.createElement(Text, { style: {
|
|
60
110
|
fontSize: 16,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
111
|
+
color: "#616061"
|
|
112
|
+
} }, "Add Team"))));
|
|
113
|
+
}, [orgTeamsData, orgName, navigation]);
|
|
114
|
+
const SectionHeader = useCallback(() => {
|
|
115
|
+
return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => setTeamExpendable(!teamExpandable), style: {
|
|
116
|
+
paddingVertical: 6,
|
|
117
|
+
paddingHorizontal: 16
|
|
118
|
+
} }, /* @__PURE__ */ React__default.createElement(HStack, { className: "justify-between items-center" }, /* @__PURE__ */ React__default.createElement(Text, { className: "font-semibold", style: {
|
|
119
|
+
fontSize: 15,
|
|
120
|
+
color: "#1D1C1D"
|
|
121
|
+
} }, "Teams"), /* @__PURE__ */ React__default.createElement(FontAwesome, { name: teamExpandable ? "chevron-down" : "chevron-left", color: colors.gray[800], size: 12 })));
|
|
122
|
+
}, [teamExpandable]);
|
|
123
|
+
if (!teamExpandable) {
|
|
124
|
+
return /* @__PURE__ */ React__default.createElement(SectionHeader, null);
|
|
125
|
+
}
|
|
126
|
+
return /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(SectionHeader, null), (organizationTeams == null ? void 0 : organizationTeams.length) > 0 ? /* @__PURE__ */ React__default.createElement(FlatList, { keyExtractor: (item) => ((item == null ? void 0 : item.id) || "team") + "-" + (item == null ? void 0 : item.title), data: organizationTeams, renderItem: renderOrganizationTeamItem, ListFooterComponent, style: {
|
|
127
|
+
marginTop: 6
|
|
128
|
+
}, scrollEnabled: false }) : /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(ListEmptyComponent, null), /* @__PURE__ */ React__default.createElement(ListFooterComponent, null)));
|
|
129
|
+
};export{Teams as default};//# sourceMappingURL=Teams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Teams.js","sources":["../../../../../src/screens/Home/Components/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styles from '../../styles';\nimport {\n Pressable,\n View,\n Image,\n FlatList,\n Icon,\n Box,\n Text,\n Avatar,\n Spinner,\n HStack,\n Button,\n ButtonText,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport more from '../../../../assets/images/more.png';\nimport right from '../../../../assets/images/right.png';\nimport { userSelector, isUserAuthenticated } from '@adminide-stack/user-auth0-client';\nimport { useSelector } from 'react-redux';\nimport { useNavigation, useRoute } from '@react-navigation/native';\nimport { navigationRef } from '@common-stack/client-react';\nimport { startCase, orderBy, uniqBy, take } from 'lodash-es';\nimport { useGetOrganizationTeamsQuery } from 'common/lib/generated/generated.js';\nimport { useDrawerLayout } from '../../../../hooks';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\n\nconst Teams = ({ teams, refetchTeams, loading }) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const navigation = useNavigation<any>();\n // const currentRoute = navigationRef?.isReady() ? navigationRef?.getCurrentRoute() : null;\n const [teamExpandable, setTeamExpendable] = useState(true);\n const user: any = useSelector(userSelector);\n const isFocused = useIsFocused();\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchTeams();\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const organizationTeams = React.useMemo(() => {\n //Direct channel\n return (\n (teams &&\n teams?.length &&\n take(\n orderBy(\n uniqBy(\n [...teams]?.filter((t: any) => t?.orgName === orgName),\n ({ id }) => id,\n ),\n [(ch: any) => ch?.title.toLowerCase()],\n ['asc'],\n ),\n 20,\n )) ||\n []\n );\n }, [teams]);\n\n // const openInbox = React.useCallback((id: any, title: any, totalMembers: any) => {\n // navigation.navigate(NavigationRoutes.DialogMessages, {\n // channelId: id?.toString(),\n // title: title?.toString(),\n // totalMembers: totalMembers,\n // hideTabBar: true,\n // });\n // }, []);\n\n const viewTeam = React.useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.ViewTeam, {\n teamId: item?.id?.toString(),\n teamName: item?.name,\n title: item?.title?.toString(),\n totalMembers: item?.teamMembers?.length,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName],\n );\n\n const renderOrganizationTeamItem = ({ item }: any) => {\n return (\n <TouchableOpacity key={item.id} onPress={() => viewTeam(item)}>\n <HStack py={'$1'} flex={1} alignItems={'center'} space=\"sm\">\n <Octicons color=\"black\" name=\"lock\" size={18} />\n <Text style={{ fontSize: 14, fontWeight: '400' }} color={'$coolGray800'}>\n {item.title}\n </Text>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n return (\n <Box style={styles.channelContainer}>\n <TouchableOpacity style={styles.headingContainer} onPress={() => setTeamExpendable(!teamExpandable)}>\n <HStack flex={1} alignItems={'center'} justifyContent={'space-between'}>\n <Text style={{ fontSize: 15, fontWeight: '600', color: 'black' }}>Teams</Text>\n {teamExpandable ? (\n <MaterialIcons color={'black'} name={'keyboard-arrow-up'} size={20} />\n ) : (\n <MaterialIcons color={'black'} name={'keyboard-arrow-down'} size={20} />\n )}\n {/* <HStack alignItems={'center'}>\n <Button\n bg={'transparent'}\n onPress={() => {\n if (orgName) navigation.navigate(NavigationRoutes.Teams);\n }}\n >\n <MaterialIcons color={'black'} name={'add'} size={20} />\n </Button>\n {teamExpandable ? (\n <MaterialIcons color={'black'} name={'keyboard-arrow-up'} size={20} />\n ) : (\n <MaterialIcons color={'black'} name={'keyboard-arrow-down'} size={20} />\n )}\n </HStack> */}\n </HStack>\n </TouchableOpacity>\n\n {teamExpandable && (\n <>\n <FlatList\n py={'$2'}\n data={organizationTeams && organizationTeams.length > 0 ? organizationTeams : []}\n renderItem={renderOrganizationTeamItem}\n key={'teams-list'}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n }}\n ListEmptyComponent={() => {\n return (\n <View py={'$1'}>\n {loading ? (\n <Spinner color={'$blue500'} />\n ) : (\n <Text style={{ fontSize: 14 }} color={'$coolGray600'}>\n No Teams found\n </Text>\n )}\n </View>\n );\n }}\n ListFooterComponent={() => {\n return (\n <>\n {teams?.length > 20 && (\n <HStack flex={1} alignItems={'center'}>\n <Button\n bg={'transparent'}\n variant={'solid'}\n pl={'$0'}\n onPress={() => navigation.navigate(NavigationRoutes.Teams, { orgName })}\n $pressed-bg=\"transparent\"\n $active-bg={'transparent'}\n >\n <MaterialIcons color={'black'} name={'search'} size={20} />\n <ButtonText color={'$black'}>Browse all Teams</ButtonText>\n </Button>\n </HStack>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Teams, { orgName })}\n >\n <View\n style={\n {\n //paddingVertical: 5,\n // marginTop: 5,\n }\n }\n >\n <Text style={{ fontSize: 16, fontWeight: '400', color: 'black' }}>\n + Add Team\n </Text>\n </View>\n </TouchableOpacity>\n </>\n );\n }}\n />\n\n {/* {user?.accessToken && (\n <TouchableOpacity\n onPress={() => {\n if (orgName) navigation.navigate(NavigationRoutes.Teams);\n }}\n >\n <Box\n style={\n {\n //paddingVertical: 5,\n // marginTop: 5,\n }\n }\n >\n <Text fontSize={16} fontWeight={400}>\n + Add Team\n </Text>\n </Box>\n </TouchableOpacity>\n )} */}\n </>\n )}\n </Box>\n );\n};\n\nexport default React.memo(Teams);\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Teams.js","sources":["../../../../../src/screens/Home/Components/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useCallback, useMemo, useContext } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport { View, FlatList, Box, Text, HStack, VStack } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport { orderBy, uniqBy, take } from 'lodash-es';\nimport { useTeamsQuery } from '../../../../queries/slackuiQueries';\nimport { useDrawerLayout } from '../../../../hooks';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { RefetchContext } from '../../HomeScreen';\n\nconst Teams = () => {\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const [teamExpandable, setTeamExpendable] = useState(true);\n const user = useSelector(userSelector, shallowEqual);\n const isFocused = useIsFocused();\n const { shouldRefetch } = useContext(RefetchContext);\n\n const {\n data: orgTeamsData,\n refetch: reFetchOrgTeams,\n error: teamsError,\n } = useTeamsQuery({\n variables: { orgName: orgName },\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n skip: !orgName,\n });\n\n const reFetchTeams = useCallback(() => {\n if (orgName) {\n return reFetchOrgTeams({ orgName: orgName });\n }\n }, [orgName, reFetchOrgTeams]);\n\n // Refetch when context signals to do so\n useFocusEffect(\n useCallback(() => {\n if (shouldRefetch && orgName) {\n reFetchTeams();\n }\n }, [shouldRefetch, orgName, reFetchTeams]),\n );\n\n // Initial fetch on focus\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n reFetchTeams();\n }\n }, [orgName, reFetchTeams]),\n );\n\n const organizationTeams = useMemo(() => {\n const teams = orgTeamsData?.getOrganizationTeams || [];\n return teams.length\n ? take(\n orderBy(\n uniqBy(\n [...teams]?.filter((t: any) => t?.orgName === orgName),\n ({ _id }) => _id,\n ),\n [(ch: any) => ch?.title.toLowerCase()],\n ['asc'],\n ),\n 10,\n )\n : [];\n }, [orgTeamsData, orgName]);\n\n const viewTeam = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.ViewTeam, {\n teamId: item?.id?.toString(),\n teamName: item?.name,\n title: item?.title?.toString(),\n totalMembers: item?.teamMembers?.length,\n orgName: orgName,\n hideTabBar: true,\n });\n },\n [orgName, navigation],\n );\n\n const renderOrganizationTeamItem = useCallback(\n ({ item }) => (\n <TouchableOpacity\n key={item.id}\n onPress={() => viewTeam(item)}\n style={{ paddingVertical: 2, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Octicons color={colors.gray[700]} name=\"lock\" size={18} />\n <Text className=\"text-gray-900 flex-1 text-base\">{item.title}</Text>\n </HStack>\n </TouchableOpacity>\n ),\n [viewTeam],\n );\n\n const ListEmptyComponent = useCallback(() => {\n // Format the error message if present\n const errorMessage = teamsError\n ? teamsError.message.includes(\"Service 'TeamService\")\n ? 'Team service is temporarily unavailable. Please try again later.'\n : teamsError.message\n : null;\n\n return (\n <Box style={{ padding: 12 }}>\n {errorMessage ? (\n <Box style={{ padding: 8, backgroundColor: '#FFF4F4', borderRadius: 4 }}>\n <Text color=\"#E01E5A\" style={{ marginBottom: 8, fontWeight: '500' }}>\n {errorMessage}\n </Text>\n <TouchableOpacity onPress={reFetchTeams}>\n <HStack space=\"sm\" style={{ alignItems: 'center' }}>\n <Feather name=\"refresh-cw\" color=\"#1264A3\" size={16} />\n <Text color=\"#1264A3\" style={{ fontWeight: '500' }}>\n Retry\n </Text>\n </HStack>\n </TouchableOpacity>\n </Box>\n ) : (\n <Box style={{ alignItems: 'center', paddingVertical: 16 }}>\n <Box style={{ padding: 12, marginBottom: 8, borderRadius: 24, backgroundColor: '#F8F8F8' }}>\n <Octicons name=\"organization\" color=\"#616061\" size={20} />\n </Box>\n <Text style={{ color: '#616061', textAlign: 'center' }}>No teams available</Text>\n </Box>\n )}\n </Box>\n );\n }, [teamsError, reFetchTeams]);\n\n const ListFooterComponent = useCallback(() => {\n const teamsCount = orgTeamsData?.getOrganizationTeams?.length || 0;\n\n return (\n <VStack>\n {teamsCount > 10 && (\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.Teams, { orgName })}\n style={{ paddingVertical: 8, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <MaterialIcons color=\"#616061\" name=\"search\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Browse all Teams</Text>\n </HStack>\n </TouchableOpacity>\n )}\n\n <TouchableOpacity\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam, { orgName })}\n style={{ paddingBottom: 5, paddingHorizontal: 12 }}\n >\n <HStack space=\"md\" className=\"items-center\">\n <Feather color=\"#616061\" name=\"plus\" size={18} />\n <Text style={{ fontSize: 16, color: '#616061' }}>Add Team</Text>\n </HStack>\n </TouchableOpacity>\n </VStack>\n );\n }, [orgTeamsData, orgName, navigation]);\n\n const SectionHeader = useCallback(() => {\n return (\n <TouchableOpacity\n onPress={() => setTeamExpendable(!teamExpandable)}\n style={{ paddingVertical: 6, paddingHorizontal: 16 }}\n >\n <HStack className=\"justify-between items-center\">\n <Text className=\"font-semibold\" style={{ fontSize: 15, color: '#1D1C1D' }}>\n Teams\n </Text>\n <FontAwesome\n name={teamExpandable ? 'chevron-down' : 'chevron-left'}\n color={colors.gray[800]}\n size={12}\n />\n </HStack>\n </TouchableOpacity>\n );\n }, [teamExpandable]);\n\n if (!teamExpandable) {\n return <SectionHeader />;\n }\n\n return (\n <Box>\n <SectionHeader />\n {organizationTeams?.length > 0 ? (\n <FlatList\n keyExtractor={(item) => (item?.id || 'team') + '-' + item?.title}\n data={organizationTeams}\n renderItem={renderOrganizationTeamItem}\n ListFooterComponent={ListFooterComponent}\n style={{ marginTop: 6 }}\n scrollEnabled={false}\n />\n ) : (\n <Box>\n <ListEmptyComponent />\n <ListFooterComponent />\n </Box>\n )}\n </Box>\n );\n};\n\nexport default Teams;\n"],"names":["React"],"mappings":"27BAcA,MAAM,QAAQ,MAAM;AAClB,EAAM,MAAA;AAAA,IACJ;AAAA,MACE,eAAgB,EAAA;AACpB,EAAA,MAAM,aAAa,aAAmB,EAAA;AACtC,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,IAAI,CAAA;AACzD,EAAa,WAAY,CAAA,YAAA,EAAc,YAAY;AACnD,EAAkB,YAAa;AAC/B,EAAM,MAAA;AAAA,IACJ;AAAA,GACF,GAAI,WAAW,cAAc,CAAA;AAC7B,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,YAAA;AAAA,IACN,OAAS,EAAA,eAAA;AAAA,IACT,KAAO,EAAA;AAAA,MACL,aAAc,CAAA;AAAA,IAChB,SAAW,EAAA;AAAA,MACT;AAAA,KACF;AAAA,IACA,WAAa,EAAA,mBAAA;AAAA,IACb,eAAiB,EAAA,aAAA;AAAA,IACjB,MAAM,CAAC;AAAA,GACR,CAAA;AACD,EAAM,MAAA,YAAA,GAAe,YAAY,MAAM;AACrC,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,OAAO,eAAgB,CAAA;AAAA,QACrB;AAAA,OACD,CAAA;AAAA;AACH,GACC,EAAA,CAAC,OAAS,EAAA,eAAe,CAAC,CAAA;AAG7B,EAAA,cAAA,CAAe,YAAY,MAAM;AAC/B,IAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,MAAa,YAAA,EAAA;AAAA;AACf,KACC,CAAC,aAAA,EAAe,OAAS,EAAA,YAAY,CAAC,CAAC,CAAA;AAG1C,EAAA,cAAA,CAAe,YAAY,MAAM;AAC/B,IAAA,IAAI,OAAS,EAAA;AACX,MAAa,YAAA,EAAA;AAAA;AACf,GACC,EAAA,CAAC,OAAS,EAAA,YAAY,CAAC,CAAC,CAAA;AAC3B,EAAM,MAAA,iBAAA,GAAoB,QAAQ,MAAM;AA1D1C,IAAA,IAAA,EAAA;AA2DI,IAAM,MAAA,KAAA,GAAA,CAAQ,YAAc,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAA,oBAAA,KAAwB,EAAC;AACrD,IAAA,OAAO,MAAM,MAAS,GAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,CAAA,CAAO,MAAC,GAAG,KAAK,CAAT,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,OAAO,CAAC,CAAA,KAAA,CAAW,CAAG,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,OAAA,MAAY,UAAU,CAAC;AAAA,MACjG;AAAA,UACI,GAAG,CAAA,EAAG,CAAC,CAAC,OAAY,EAAI,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA,CAAM,WAAa,EAAA,CAAA,EAAG,CAAC,KAAK,CAAC,CAAG,EAAA,EAAE,IAAI,EAAC;AAAA,GACpE,EAAA,CAAC,YAAc,EAAA,OAAO,CAAC,CAAA;AAC1B,EAAM,MAAA,QAAA,GAAW,WAAY,CAAA,CAAC,IAAc,KAAA;AAhE9C,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiEI,IAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,QAAU,EAAA;AAAA,MAC7C,MAAA,EAAA,CAAQ,EAAM,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,EAAA,KAAN,IAAU,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,EAAA;AAAA,MAClB,UAAU,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,IAAA;AAAA,MAChB,KAAA,EAAA,CAAO,EAAM,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA,KAAN,IAAa,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,EAAA;AAAA,MACpB,YAAA,EAAA,CAAc,EAAM,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,WAAA,KAAN,IAAmB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA;AAAA,MACjC,OAAA;AAAA,MACA,UAAY,EAAA;AAAA,KACb,CAAA;AAAA,GACA,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA;AACxB,EAAM,MAAA,0BAAA,GAA6B,YAAY,CAAC;AAAA,IAC9C;AAAA,GACF,qBAAOA,cAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,EAAiB,GAAK,EAAA,IAAA,CAAK,EAAI,EAAA,OAAA,EAAS,MAAM,QAAA,CAAS,IAAI,CAAA,EAAG,KAAO,EAAA;AAAA,IAC1E,eAAiB,EAAA,CAAA;AAAA,IACjB,iBAAmB,EAAA;AAAA,GAEP,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,MAAO,EAAA,EAAA,KAAA,EAAM,IAAK,EAAA,SAAA,EAAU,cACzB,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAO,MAAO,CAAA,IAAA,CAAK,GAAM,CAAA,EAAA,IAAA,EAAK,MAAO,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA,kBACxDA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,SAAU,EAAA,gCAAA,EAAA,EAAkC,IAAK,CAAA,KAAM,CACjE,CACJ,CAAqB,EAAA,CAAC,QAAQ,CAAC,CAAA;AACzC,EAAM,MAAA,kBAAA,GAAqB,YAAY,MAAM;AAE3C,IAAM,MAAA,YAAA,GAAe,aAAa,UAAW,CAAA,OAAA,CAAQ,SAAS,sBAAsB,CAAA,GAAI,kEAAqE,GAAA,UAAA,CAAW,OAAU,GAAA,IAAA;AAClL,IAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,KAAO,EAAA;AAAA,MACjB,OAAS,EAAA;AAAA,KAEE,EAAA,EAAA,YAAA,mBAAgBA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,KAAO,EAAA;AAAA,MACpC,OAAS,EAAA,CAAA;AAAA,MACT,eAAiB,EAAA,SAAA;AAAA,MACjB,YAAc,EAAA;AAAA,KAEE,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAM,WAAU,KAAO,EAAA;AAAA,MAC3C,YAAc,EAAA,CAAA;AAAA,MACd,UAAY,EAAA;AAAA,KACd,EAAA,EACqB,YACL,CAAA,kBACCA,cAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,EAAiB,OAAS,EAAA,YAAA,EAAA,kBACtBA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,KAAM,EAAA,IAAA,EAAK,KAAO,EAAA;AAAA,MAC1C,UAAY,EAAA;AAAA,KAEQ,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,IAAA,EAAK,cAAa,KAAM,EAAA,SAAA,EAAU,IAAM,EAAA,EAAA,EAAI,CACrD,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAM,WAAU,KAAO,EAAA;AAAA,MAC/C,UAAY,EAAA;AAAA,KACd,EAAA,EAAG,OAEiB,CACJ,CACJ,CACJ,CAAS,mBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,KAAO,EAAA;AAAA,MACjC,UAAY,EAAA,QAAA;AAAA,MACZ,eAAiB,EAAA;AAAA,KACnB,EAAA,kBACmBA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,KAAO,EAAA;AAAA,MAC1B,OAAS,EAAA,EAAA;AAAA,MACT,YAAc,EAAA,CAAA;AAAA,MACd,YAAc,EAAA,EAAA;AAAA,MACd,eAAiB,EAAA;AAAA,KAEC,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,IAAA,EAAK,cAAe,EAAA,KAAA,EAAM,SAAU,EAAA,IAAA,EAAM,EAAI,EAAA,CAC5D,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,KAAO,EAAA;AAAA,MAC3B,KAAO,EAAA,SAAA;AAAA,MACP,SAAW,EAAA;AAAA,KACb,EAAA,EAAG,oBAAkB,CACT,CACR,CAAA;AAAA,GACP,EAAA,CAAC,UAAY,EAAA,YAAY,CAAC,CAAA;AAC7B,EAAM,MAAA,mBAAA,GAAsB,YAAY,MAAM;AArIhD,IAAA,IAAA,EAAA;AAsII,IAAA,MAAM,UAAa,GAAA,CAAA,CAAA,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,oBAAd,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoC,MAAU,KAAA,CAAA;AACjE,IAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,MACK,EAAA,IAAA,EAAA,UAAA,GAAa,EAAM,oBAAAA,cAAA,CAAA,aAAA,CAAC,gBAAiB,EAAA,EAAA,OAAA,EAAS,MAAM,UAAA,CAAW,QAAS,CAAA,gBAAA,CAAiB,KAAO,EAAA;AAAA,MACzG;AAAA,KACD,GAAG,KAAO,EAAA;AAAA,MACT,eAAiB,EAAA,CAAA;AAAA,MACjB,iBAAmB,EAAA;AAAA,yBAEFA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAM,IAAK,EAAA,SAAA,EAAU,kCACxBA,cAAA,CAAA,aAAA,CAAA,aAAA,EAAA,EAAc,KAAM,EAAA,SAAA,EAAU,MAAK,QAAS,EAAA,IAAA,EAAM,IAAI,CACvD,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,KAAO,EAAA;AAAA,MAC7B,QAAU,EAAA,EAAA;AAAA,MACV,KAAO,EAAA;AAAA,KACN,EAAA,EAAA,kBAAgB,CACL,CACJ,CAEJ,kBAAAA,cAAA,CAAA,aAAA,CAAC,gBAAiB,EAAA,EAAA,OAAA,EAAS,MAAM,UAAA,CAAW,QAAS,CAAA,gBAAA,CAAiB,OAAS,EAAA;AAAA,MACvF;AAAA,KACD,GAAG,KAAO,EAAA;AAAA,MACT,aAAe,EAAA,CAAA;AAAA,MACf,iBAAmB,EAAA;AAAA,yBAENA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAM,IAAK,EAAA,SAAA,EAAU,kCACxBA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,KAAM,EAAA,SAAA,EAAU,MAAK,MAAO,EAAA,IAAA,EAAM,IAAI,CAC/C,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,KAAO,EAAA;AAAA,MACzB,QAAU,EAAA,EAAA;AAAA,MACV,KAAO,EAAA;AAAA,KACN,EAAA,EAAA,UAAQ,CACD,CACJ,CACJ,CAAA;AAAA,GACP,EAAA,CAAC,YAAc,EAAA,OAAA,EAAS,UAAU,CAAC,CAAA;AACtC,EAAM,MAAA,aAAA,GAAgB,YAAY,MAAM;AACtC,IAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,oBAAiB,OAAS,EAAA,MAAM,kBAAkB,CAAC,cAAc,GAAG,KAAO,EAAA;AAAA,MACjF,eAAiB,EAAA,CAAA;AAAA,MACjB,iBAAmB,EAAA;AAAA,KACrB,EAAA,+CACa,MAAO,EAAA,EAAA,SAAA,EAAU,kDACbA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,SAAU,EAAA,eAAA,EAAgB,KAAO,EAAA;AAAA,MACjD,QAAU,EAAA,EAAA;AAAA,MACV,KAAO,EAAA;AAAA,SACN,OAES,CAAA,kBACCA,cAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,MAAM,cAAiB,GAAA,cAAA,GAAiB,cAAgB,EAAA,KAAA,EAAO,OAAO,IAAK,CAAA,GAAA,CAAA,EAAM,IAAM,EAAA,EAAA,EAAI,CAC5G,CACJ,CAAA;AAAA,GACV,EAAG,CAAC,cAAc,CAAC,CAAA;AACnB,EAAA,IAAI,CAAC,cAAgB,EAAA;AACnB,IAAA,oDAAQ,aAAc,EAAA,IAAA,CAAA;AAAA;AAExB,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,2BACGA,cAAA,CAAA,aAAA,CAAA,aAAA,EAAA,IAAc,IACd,iBAAmB,IAAA,IAAA,GAAA,MAAA,GAAA,iBAAA,CAAA,MAAA,IAAS,CAAI,mBAAAA,cAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,YAAA,EAAc,YAAS,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,EAAA,KAAM,MAAU,IAAA,GAAA,IAAM,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA,CAAA,EAAO,MAAM,iBAAmB,EAAA,UAAA,EAAY,0BAA4B,EAAA,mBAAA,EAA0C,KAAO,EAAA;AAAA,IACnO,SAAW,EAAA;AAAA,GACV,EAAA,aAAA,EAAe,KAAO,EAAA,CAAA,mBAAMA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,kBACdA,cAAA,CAAA,aAAA,CAAA,kBAAA,EAAA,IAAmB,CACpB,kBAAAA,cAAA,CAAA,aAAA,CAAC,mBAAoB,EAAA,IAAA,CACzB,CACR,CAAA;AACR"}
|
|
@@ -1,87 +1,56 @@
|
|
|
1
|
-
import
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}, {
|
|
22
|
-
id: 2,
|
|
23
|
-
image: img$1,
|
|
24
|
-
title: "Later",
|
|
25
|
-
subTitle: "0 items",
|
|
26
|
-
route: null
|
|
27
|
-
}, {
|
|
28
|
-
id: 3,
|
|
29
|
-
image: img$2,
|
|
30
|
-
title: "Draft & Sent",
|
|
31
|
-
subTitle: "0 drafts",
|
|
32
|
-
route: null
|
|
33
|
-
}];
|
|
34
|
-
return sliderItems;
|
|
35
|
-
}, []);
|
|
36
|
-
const renderSliderItem = ({
|
|
37
|
-
item
|
|
38
|
-
}) => {
|
|
39
|
-
return /* @__PURE__ */ React__default.createElement(Pressable, { key: item.id, style: styles.view, flex: 1, borderWidth: "$1", borderColor: "$trueGray200", rounded: "$lg", onPress: () => (item == null ? void 0 : item.route) && navigation.navigate(item == null ? void 0 : item.route, {
|
|
40
|
-
orgName
|
|
41
|
-
}) }, /* @__PURE__ */ React__default.createElement(Box, { borderRadius: "$md", flex: 1, alignItems: "center", justifyContent: "center" }, /* @__PURE__ */ React__default.createElement(VStack, null, /* @__PURE__ */ React__default.createElement(Box, null, (item == null ? void 0 : item.image) && /* @__PURE__ */ React__default.createElement(Image, { p: "$0", alt: "icon", style: styles.image, source: item == null ? void 0 : item.image })), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray800" }, item.title)), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray600" }, item.subTitle)))));
|
|
42
|
-
};
|
|
43
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
44
|
-
FlatList,
|
|
45
|
-
{
|
|
46
|
-
ref,
|
|
47
|
-
pagingEnabled: true,
|
|
48
|
-
horizontal: true,
|
|
49
|
-
snapToInterval: Dimensions.get("window").width,
|
|
50
|
-
snapToAlignment: "start",
|
|
51
|
-
decelerationRate: "fast",
|
|
52
|
-
data: sliderData && sliderData.length > 0 ? sliderData : [],
|
|
53
|
-
renderItem: renderSliderItem,
|
|
54
|
-
key: "top-common-home-slider-list",
|
|
55
|
-
keyExtractor: (item, index) => String(index),
|
|
56
|
-
px: 2,
|
|
57
|
-
style: styles.container,
|
|
58
|
-
contentContainerStyle: {
|
|
59
|
-
flex: 1,
|
|
60
|
-
justifyContent: "space-between",
|
|
61
|
-
alignItems: "center"
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
);
|
|
65
|
-
};
|
|
1
|
+
import React__default from'react';import {StyleSheet,Dimensions}from'react-native';import {Button,Box,VStack,Image,Text,FlatList}from'@admin-layout/gluestack-ui-mobile';import {NavigationRoutes}from'../../../../constants/routes.js';import img$2 from'../../../../assets/images/send.png.js';import img from'../../../../assets/images/chat.png.js';import img$1 from'../../../../assets/images/save-for-later.png.js';import {useNavigation}from'@react-navigation/native';import'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../../../hooks/useDrawerLayout.js';import'../../../../hooks/useExpoNotificationProvider.js';import'../../../../hooks/useOptimizedChannelsQueries.js';import colors from'tailwindcss/colors';const pWidth = Dimensions.get("window").width / 3 - 5;
|
|
2
|
+
const SLIDER_ITEMS = [{
|
|
3
|
+
id: 1,
|
|
4
|
+
image: img,
|
|
5
|
+
title: "Threads",
|
|
6
|
+
subTitle: "0 New",
|
|
7
|
+
route: NavigationRoutes.Threads
|
|
8
|
+
}, {
|
|
9
|
+
id: 2,
|
|
10
|
+
image: img$1,
|
|
11
|
+
title: "Later",
|
|
12
|
+
subTitle: "0 items",
|
|
13
|
+
route: null
|
|
14
|
+
}, {
|
|
15
|
+
id: 3,
|
|
16
|
+
image: img$2,
|
|
17
|
+
title: "Draft & Sent",
|
|
18
|
+
subTitle: "0 drafts",
|
|
19
|
+
route: null
|
|
20
|
+
}];
|
|
66
21
|
const styles = StyleSheet.create({
|
|
67
|
-
container: {
|
|
22
|
+
container: {
|
|
23
|
+
paddingHorizontal: 2
|
|
24
|
+
},
|
|
68
25
|
view: {
|
|
69
|
-
maxWidth: pWidth -
|
|
70
|
-
width: pWidth -
|
|
26
|
+
maxWidth: pWidth - 5,
|
|
27
|
+
width: pWidth - 5,
|
|
71
28
|
marginTop: 5,
|
|
72
29
|
height: 100,
|
|
73
|
-
overflow: "hidden"
|
|
30
|
+
overflow: "hidden",
|
|
31
|
+
borderColor: colors.gray[200]
|
|
74
32
|
},
|
|
75
33
|
image: {
|
|
76
|
-
width: 20,
|
|
77
|
-
height: 20,
|
|
78
34
|
resizeMode: "cover",
|
|
79
35
|
tintColor: "#000"
|
|
80
36
|
},
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
37
|
+
contentContainer: {
|
|
38
|
+
flex: 1,
|
|
39
|
+
justifyContent: "space-between",
|
|
40
|
+
alignItems: "center"
|
|
85
41
|
}
|
|
86
42
|
});
|
|
43
|
+
const TopCommonSlider = () => {
|
|
44
|
+
const navigation = useNavigation();
|
|
45
|
+
const {
|
|
46
|
+
orgName
|
|
47
|
+
} = useDrawerLayout();
|
|
48
|
+
const flatListRef = React__default.useRef(null);
|
|
49
|
+
const renderSliderItem = React__default.useCallback(({
|
|
50
|
+
item
|
|
51
|
+
}) => /* @__PURE__ */ React__default.createElement(Button, { key: item.id, variant: "outline", style: styles.view, className: "flex-1 border-blue-400 rounded-lg", onPress: () => item.route && navigation.navigate(item.route, {
|
|
52
|
+
orgName
|
|
53
|
+
}) }, /* @__PURE__ */ React__default.createElement(Box, { className: "rounded-md flex-1 items-center justify-center py-2" }, /* @__PURE__ */ React__default.createElement(VStack, null, /* @__PURE__ */ React__default.createElement(Box, null, item.image && /* @__PURE__ */ React__default.createElement(Image, { className: "p-0 w-8 h-8", size: "xs", alt: "icon", style: styles.image, source: item.image })), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: colors.gray[800], className: "text-sm" }, item.title)), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: colors.gray[600], className: "text-xs" }, item.subTitle))))), [navigation, orgName]);
|
|
54
|
+
return /* @__PURE__ */ React__default.createElement(FlatList, { ref: flatListRef, pagingEnabled: true, horizontal: true, snapToInterval: Dimensions.get("window").width, snapToAlignment: "start", decelerationRate: "fast", data: SLIDER_ITEMS, renderItem: renderSliderItem, keyExtractor: (item) => String(item.id), style: styles.container, contentContainerStyle: styles.contentContainer, initialNumToRender: 3, maxToRenderPerBatch: 3, removeClippedSubviews: true });
|
|
55
|
+
};
|
|
87
56
|
var TopCommonSlider$1 = React__default.memo(TopCommonSlider);export{TopCommonSlider$1 as default};//# sourceMappingURL=TopCommonSlider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopCommonSlider.js","sources":["../../../../../src/screens/Home/Components/TopCommonSlider/TopCommonSlider.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"TopCommonSlider.js","sources":["../../../../../src/screens/Home/Components/TopCommonSlider/TopCommonSlider.tsx"],"sourcesContent":["import React from 'react';\nimport { Dimensions, StyleSheet } from 'react-native';\nimport { Image, FlatList, Box, Text, VStack, Button } from '@admin-layout/gluestack-ui-mobile';\nimport { NavigationRoutes } from '../../../../constants/routes';\nimport send from '../../../../assets/images/send.png';\nimport chat from '../../../../assets/images/chat.png';\nimport saveForLater from '../../../../assets/images/save-for-later.png';\nimport { useNavigation } from '@react-navigation/native';\nimport { useDrawerLayout } from '../../../../hooks';\nimport colors from 'tailwindcss/colors';\n\nconst pWidth = Dimensions.get('window').width / 3 - 5;\n\n// Define types\ntype SliderItem = {\n id: number;\n image: any;\n title: string;\n subTitle: string;\n route: string | null;\n};\n\ntype TopCommonSliderProps = {\n // Add any props here if needed\n};\n\n// Move static data outside component\nconst SLIDER_ITEMS: SliderItem[] = [\n {\n id: 1,\n image: chat,\n title: 'Threads',\n subTitle: '0 New',\n route: NavigationRoutes.Threads,\n },\n {\n id: 2,\n image: saveForLater,\n title: 'Later',\n subTitle: '0 items',\n route: null,\n },\n {\n id: 3,\n image: send,\n title: 'Draft & Sent',\n subTitle: '0 drafts',\n route: null,\n },\n];\n\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 2,\n },\n view: {\n maxWidth: pWidth - 5,\n width: pWidth - 5,\n marginTop: 5,\n height: 100,\n overflow: 'hidden',\n borderColor: colors.gray[200],\n },\n image: {\n resizeMode: 'cover',\n tintColor: '#000',\n },\n contentContainer: {\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n});\n\nconst TopCommonSlider: React.FC<TopCommonSliderProps> = () => {\n const navigation = useNavigation<any>();\n const { orgName } = useDrawerLayout();\n const flatListRef = React.useRef<FlatList<SliderItem>>(null);\n\n const renderSliderItem = React.useCallback(\n ({ item }: { item: SliderItem }) => (\n <Button\n key={item.id}\n variant={'outline'}\n style={styles.view}\n className=\"flex-1 border-blue-400 rounded-lg\"\n onPress={() => item.route && navigation.navigate(item.route, { orgName })}\n >\n <Box className=\"rounded-md flex-1 items-center justify-center py-2\">\n <VStack>\n <Box>\n {item.image && (\n <Image\n className=\"p-0 w-8 h-8\"\n size={'xs'}\n alt=\"icon\"\n style={styles.image}\n source={item.image}\n />\n )}\n </Box>\n <Box>\n <Text color={colors.gray[800]} className=\"text-sm\">\n {item.title}\n </Text>\n </Box>\n <Box>\n <Text color={colors.gray[600]} className=\"text-xs\">\n {item.subTitle}\n </Text>\n </Box>\n </VStack>\n </Box>\n </Button>\n ),\n [navigation, orgName],\n );\n\n return (\n <FlatList\n ref={flatListRef}\n pagingEnabled={true}\n horizontal={true}\n snapToInterval={Dimensions.get('window').width}\n snapToAlignment=\"start\"\n decelerationRate={'fast'}\n data={SLIDER_ITEMS}\n renderItem={renderSliderItem}\n keyExtractor={(item) => String(item.id)}\n style={styles.container}\n contentContainerStyle={styles.contentContainer}\n initialNumToRender={3}\n maxToRenderPerBatch={3}\n removeClippedSubviews={true}\n />\n );\n};\n\nexport default React.memo(TopCommonSlider);\n"],"names":["chat","saveForLater","send","React"],"mappings":"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"}
|