@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
|
@@ -1,46 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}) => {
|
|
1
|
+
import React__default,{memo,useCallback}from'react';import {StyleSheet,SafeAreaView,TouchableOpacity,RefreshControl}from'react-native';import {Box,Text,Center,Spinner,Input,InputField,FlatList,View,Fab,FabIcon,AddIcon,HStack}from'@admin-layout/gluestack-ui-mobile';import {useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';import {useNavigation}from'@react-navigation/native';import {Octicons}from'@expo/vector-icons';import'../../constants/device.js';import'../../constants/globalStyles.js';import'../../constants/Layout.js';import {NavigationRoutes}from'../../constants/routes.js';import'expo-font';import'expo-splash-screen';import {useDrawerLayout}from'../../hooks/useDrawerLayout.js';import'../../hooks/useExpoNotificationProvider.js';import'../../hooks/useOptimizedChannelsQueries.js';import {StatusBar}from'expo-status-bar';import colors from'tailwindcss/colors';import {useTeams}from'./useTeams.js';const TeamItem = memo(({
|
|
2
|
+
item,
|
|
3
|
+
onPress
|
|
4
|
+
}) => /* @__PURE__ */ React__default.createElement(TouchableOpacity, { key: item.id, style: styles.teamItem, onPress: () => onPress(item) }, /* @__PURE__ */ React__default.createElement(Box, { style: styles.teamItemBox }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", style: styles.teamItemContent }, /* @__PURE__ */ React__default.createElement(Octicons, { color: "black", name: "lock", size: 20 }), /* @__PURE__ */ React__default.createElement(Text, { style: styles.teamItemText }, item.title)))));
|
|
5
|
+
const TeamsScreen = () => {
|
|
7
6
|
const {
|
|
8
|
-
orgName
|
|
9
|
-
organizationDetail
|
|
7
|
+
orgName
|
|
10
8
|
} = useDrawerLayout();
|
|
11
9
|
const navigation = useNavigation();
|
|
12
|
-
const [teams, setTeams] = React__default.useState([]);
|
|
13
|
-
const [intialTeams, setInitialTeams] = useState([]);
|
|
14
10
|
useSelector(userSelector);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
const {
|
|
12
|
+
teams,
|
|
13
|
+
loading,
|
|
14
|
+
teamsLoading,
|
|
15
|
+
error,
|
|
16
|
+
handleSearchChange,
|
|
17
|
+
searchTerm,
|
|
18
|
+
refetch
|
|
19
|
+
} = useTeams(orgName);
|
|
20
|
+
React__default.useEffect(() => {
|
|
21
|
+
if (navigation) {
|
|
18
22
|
navigation.setOptions({
|
|
19
23
|
headerShown: true,
|
|
20
|
-
headerTitle: (
|
|
24
|
+
headerTitle: () => /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { style: styles.headerTitle }, "Team Browser"), /* @__PURE__ */ React__default.createElement(Text, { style: styles.headerSubtitle }, teams.length, " ", teams.length === 1 ? "team" : "teams"))
|
|
21
25
|
});
|
|
22
|
-
}, [teams, navigation]);
|
|
23
|
-
React__default.useEffect(() => {
|
|
24
|
-
var _a;
|
|
25
|
-
if (orgTeams == null ? void 0 : orgTeams.getOrganizationTeams) {
|
|
26
|
-
const orgTeamsData = (orgTeams == null ? void 0 : orgTeams.getOrganizationTeams) && ((_a = orgTeams == null ? void 0 : orgTeams.getOrganizationTeams) == null ? void 0 : _a.length) && orderBy(orgTeams == null ? void 0 : orgTeams.getOrganizationTeams, [(tm) => tm == null ? void 0 : tm.title.toLowerCase()], ["asc"]) || [];
|
|
27
|
-
setTeams((oldTeams) => uniqBy([...orgTeamsData, ...oldTeams], ({
|
|
28
|
-
id
|
|
29
|
-
}) => id));
|
|
30
|
-
setInitialTeams((oldTeams) => uniqBy([...orgTeamsData, ...oldTeams], ({
|
|
31
|
-
id
|
|
32
|
-
}) => id));
|
|
33
26
|
}
|
|
34
|
-
}, [
|
|
35
|
-
|
|
36
|
-
navigation.navigate(NavigationRoutes.DialogMessages, {
|
|
37
|
-
channelId: id == null ? void 0 : id.toString(),
|
|
38
|
-
title: title == null ? void 0 : title.toString(),
|
|
39
|
-
totalMembers,
|
|
40
|
-
hideTabBar: true
|
|
41
|
-
});
|
|
42
|
-
}, []);
|
|
43
|
-
const viewTeam = React__default.useCallback((item) => {
|
|
27
|
+
}, [teams.length, navigation]);
|
|
28
|
+
const viewTeam = useCallback((item) => {
|
|
44
29
|
var _a, _b, _c;
|
|
45
30
|
navigation.navigate(NavigationRoutes.ViewTeam, {
|
|
46
31
|
teamId: (_a = item == null ? void 0 : item.id) == null ? void 0 : _a.toString(),
|
|
@@ -49,77 +34,123 @@ const GetTeams = React__default.memo(({
|
|
|
49
34
|
totalMembers: (_c = item == null ? void 0 : item.teamMembers) == null ? void 0 : _c.length,
|
|
50
35
|
hideTabBar: true
|
|
51
36
|
});
|
|
52
|
-
}, []);
|
|
53
|
-
|
|
37
|
+
}, [navigation]);
|
|
38
|
+
if (loading && !teams.length) {
|
|
39
|
+
return /* @__PURE__ */ React__default.createElement(Center, { style: {
|
|
40
|
+
flex: 1,
|
|
41
|
+
backgroundColor: "white"
|
|
42
|
+
} }, /* @__PURE__ */ React__default.createElement(Spinner, { color: colors.blue[500], size: "large" }));
|
|
43
|
+
}
|
|
44
|
+
return /* @__PURE__ */ React__default.createElement(SafeAreaView, { style: styles.container }, /* @__PURE__ */ React__default.createElement(StatusBar, { style: "dark" }), /* @__PURE__ */ React__default.createElement(Box, { style: styles.content }, /* @__PURE__ */ React__default.createElement(Input, { style: styles.searchInput, variant: "outlined" }, /* @__PURE__ */ React__default.createElement(InputField, { type: "text", size: "xl", value: searchTerm, placeholderTextColor: colors.gray[500], style: styles.inputField, placeholder: "Search for teams", onChange: (event) => handleSearchChange(event.nativeEvent.text), autoCapitalize: "none", autoCorrect: false })), /* @__PURE__ */ React__default.createElement(FlatList, { contentContainerStyle: teams.length ? styles.listContent : styles.emptyListContent, data: teams, renderItem: ({
|
|
54
45
|
item
|
|
55
|
-
}) => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
onPress: () => viewTeam(item)
|
|
64
|
-
},
|
|
65
|
-
/* @__PURE__ */ React__default.createElement(Box, { flex: 1, bg: "$white", hardShadow: "5", py: "$4", px: "$2", borderBottomWidth: "$1", borderBottomColor: "$warmGray200" }, /* @__PURE__ */ React__default.createElement(HStack, { flex: 1, alignItems: "center" }, /* @__PURE__ */ React__default.createElement(Octicons, { color: "black", name: "lock", size: 20 }), /* @__PURE__ */ React__default.createElement(Text, { pl: "$2", fontSize: 16, color: "$black" }, item.title)))
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
const searchTeams = React__default.useCallback((v) => {
|
|
69
|
-
if (v) {
|
|
70
|
-
const searchTeam = teams.filter((o) => {
|
|
71
|
-
var _a;
|
|
72
|
-
return (_a = o == null ? void 0 : o.title) == null ? void 0 : _a.toLowerCase().includes(v == null ? void 0 : v.toLowerCase());
|
|
73
|
-
});
|
|
74
|
-
setTeams(searchTeam);
|
|
75
|
-
} else {
|
|
76
|
-
setTeams(intialTeams);
|
|
77
|
-
}
|
|
78
|
-
}, [intialTeams, teams]);
|
|
79
|
-
return /* @__PURE__ */ React__default.createElement(SafeAreaView, { flex: 1 }, /* @__PURE__ */ React__default.createElement(StatusBar, { style: "dark" }), /* @__PURE__ */ React__default.createElement(Box, { flex: 1 }, /* @__PURE__ */ React__default.createElement(Input, { bg: "$white", variant: "underlined", borderTopWidth: "$1" }, /* @__PURE__ */ React__default.createElement(InputField, { px: "$3", alignItems: "center", type: "text", size: "xl", placeholderTextColor: "#404040", color: "$black", fontSize: 15, placeholder: "Search for teams", onChange: ({
|
|
80
|
-
nativeEvent: {
|
|
81
|
-
eventCount,
|
|
82
|
-
target,
|
|
83
|
-
text
|
|
84
|
-
}
|
|
85
|
-
}) => {
|
|
86
|
-
searchTeams(text);
|
|
87
|
-
}, autoCapitalize: "none", autoCorrect: false })), /* @__PURE__ */ React__default.createElement(VirtualizedScrollView, { flex: 1 }, /* @__PURE__ */ React__default.createElement(FlatList, { pt: "$2", flex: 1, data: teams && teams.length > 0 ? teams : [], renderItem: renderOrganizationTeamItem, key: "all-teams-list", keyExtractor: (item, index) => String(index), contentContainerStyle: {
|
|
46
|
+
}) => /* @__PURE__ */ React__default.createElement(TeamItem, { item, onPress: viewTeam }), keyExtractor: (item) => item._id || item.id, refreshControl: /* @__PURE__ */ React__default.createElement(RefreshControl, { refreshing: teamsLoading, onRefresh: refetch, colors: [colors.blue[500]], tintColor: colors.blue[500] }), showsVerticalScrollIndicator: false, ListEmptyComponent: () => /* @__PURE__ */ React__default.createElement(Center, { style: styles.emptyContainer }, teamsLoading ? /* @__PURE__ */ React__default.createElement(Spinner, { color: colors.blue[500] }) : /* @__PURE__ */ React__default.createElement(View, { style: styles.emptyContent }, /* @__PURE__ */ React__default.createElement(Octicons, { name: "organization", size: 36, color: colors.gray[400] }), /* @__PURE__ */ React__default.createElement(Text, { style: styles.emptyText }, error ? "Error loading teams" : "No teams found"), error && /* @__PURE__ */ React__default.createElement(TouchableOpacity, { style: styles.retryButton, onPress: () => refetch() }, /* @__PURE__ */ React__default.createElement(Text, { style: styles.retryButtonText }, "Retry")))) }), /* @__PURE__ */ React__default.createElement(Fab, { size: "md", placement: "bottom right", onPress: () => navigation.navigate(NavigationRoutes.AddTeam), style: styles.fab }, /* @__PURE__ */ React__default.createElement(FabIcon, { as: AddIcon, color: "black" }))));
|
|
47
|
+
};
|
|
48
|
+
const styles = StyleSheet.create({
|
|
49
|
+
container: {
|
|
50
|
+
flex: 1,
|
|
51
|
+
backgroundColor: colors.gray[100]
|
|
52
|
+
},
|
|
53
|
+
content: {
|
|
88
54
|
flex: 1
|
|
89
|
-
},
|
|
90
|
-
|
|
91
|
-
|
|
55
|
+
},
|
|
56
|
+
searchInput: {
|
|
57
|
+
backgroundColor: "white",
|
|
58
|
+
borderBottomWidth: 1,
|
|
59
|
+
borderBottomColor: colors.gray[200],
|
|
60
|
+
shadowOpacity: 0.1,
|
|
61
|
+
shadowRadius: 3,
|
|
62
|
+
marginBottom: 8
|
|
63
|
+
},
|
|
64
|
+
inputField: {
|
|
65
|
+
paddingHorizontal: 12,
|
|
66
|
+
color: "black",
|
|
67
|
+
fontSize: 15
|
|
68
|
+
},
|
|
69
|
+
listContent: {
|
|
70
|
+
paddingHorizontal: 12,
|
|
71
|
+
paddingBottom: 100,
|
|
72
|
+
paddingTop: 4
|
|
73
|
+
},
|
|
74
|
+
emptyListContent: {
|
|
75
|
+
paddingHorizontal: 12,
|
|
76
|
+
paddingBottom: 100,
|
|
77
|
+
paddingTop: 4,
|
|
78
|
+
flexGrow: 1
|
|
79
|
+
},
|
|
80
|
+
emptyContainer: {
|
|
81
|
+
flex: 1,
|
|
82
|
+
paddingTop: 80,
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
justifyContent: "center"
|
|
85
|
+
},
|
|
86
|
+
emptyContent: {
|
|
87
|
+
alignItems: "center"
|
|
88
|
+
},
|
|
89
|
+
emptyText: {
|
|
90
|
+
textAlign: "center",
|
|
91
|
+
color: colors.gray[600],
|
|
92
|
+
marginTop: 16,
|
|
93
|
+
fontSize: 16
|
|
94
|
+
},
|
|
95
|
+
retryButton: {
|
|
96
|
+
marginTop: 16,
|
|
97
|
+
backgroundColor: colors.blue[500],
|
|
98
|
+
paddingHorizontal: 16,
|
|
99
|
+
paddingVertical: 8,
|
|
100
|
+
borderRadius: 6
|
|
101
|
+
},
|
|
102
|
+
retryButtonText: {
|
|
103
|
+
color: "white",
|
|
104
|
+
fontWeight: "500"
|
|
105
|
+
},
|
|
106
|
+
teamItem: {
|
|
107
|
+
marginVertical: 4
|
|
108
|
+
},
|
|
109
|
+
teamItemBox: {
|
|
110
|
+
flex: 1,
|
|
111
|
+
backgroundColor: "white",
|
|
112
|
+
paddingVertical: 16,
|
|
113
|
+
paddingHorizontal: 12,
|
|
114
|
+
borderRadius: 8,
|
|
115
|
+
shadowColor: "#000",
|
|
116
|
+
shadowOffset: {
|
|
117
|
+
width: 0,
|
|
118
|
+
height: 1
|
|
119
|
+
},
|
|
120
|
+
shadowOpacity: 0.1,
|
|
121
|
+
shadowRadius: 1,
|
|
122
|
+
borderWidth: 1,
|
|
123
|
+
borderColor: colors.gray[100]
|
|
124
|
+
},
|
|
125
|
+
teamItemContent: {
|
|
126
|
+
flex: 1,
|
|
127
|
+
alignItems: "center"
|
|
128
|
+
},
|
|
129
|
+
teamItemText: {
|
|
130
|
+
paddingLeft: 8,
|
|
131
|
+
fontSize: 16,
|
|
132
|
+
fontWeight: "500",
|
|
133
|
+
color: "black"
|
|
134
|
+
},
|
|
135
|
+
headerTitle: {
|
|
136
|
+
fontSize: 16,
|
|
137
|
+
fontWeight: "bold",
|
|
138
|
+
color: "black"
|
|
139
|
+
},
|
|
140
|
+
headerSubtitle: {
|
|
141
|
+
color: "black",
|
|
142
|
+
fontWeight: "500"
|
|
143
|
+
},
|
|
144
|
+
fab: {
|
|
145
|
+
backgroundColor: "#fff",
|
|
146
|
+
borderRadius: 28,
|
|
147
|
+
shadowColor: "#000",
|
|
148
|
+
shadowOffset: {
|
|
149
|
+
width: 0,
|
|
150
|
+
height: 2
|
|
151
|
+
},
|
|
152
|
+
shadowOpacity: 0.2,
|
|
153
|
+
shadowRadius: 3
|
|
154
|
+
}
|
|
92
155
|
});
|
|
93
|
-
|
|
94
|
-
const {
|
|
95
|
-
orgName,
|
|
96
|
-
organizationDetail
|
|
97
|
-
} = useDrawerLayout();
|
|
98
|
-
useNavigation();
|
|
99
|
-
const [teams, setTeams] = React__default.useState([]);
|
|
100
|
-
const [intialTeams, setInitialTeams] = useState([]);
|
|
101
|
-
useSelector(userSelector);
|
|
102
|
-
useIsFocused();
|
|
103
|
-
const {
|
|
104
|
-
data: orgTeams,
|
|
105
|
-
loading: orgTeamsLoading,
|
|
106
|
-
error,
|
|
107
|
-
refetch: _refetchOrgTeams
|
|
108
|
-
} = useGetOrganizationTeamsQuery({
|
|
109
|
-
variables: {
|
|
110
|
-
orgName
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
useFocusEffect(React__default.useCallback(() => {
|
|
114
|
-
if (orgName)
|
|
115
|
-
_refetchOrgTeams({
|
|
116
|
-
orgName
|
|
117
|
-
});
|
|
118
|
-
return () => {
|
|
119
|
-
};
|
|
120
|
-
}, [orgName]));
|
|
121
|
-
if (orgTeamsLoading)
|
|
122
|
-
return /* @__PURE__ */ React__default.createElement(Spinner, { color: "$blue500" });
|
|
123
|
-
return /* @__PURE__ */ React__default.createElement(GetTeams, { orgTeams, orgTeamsLoading });
|
|
124
|
-
};
|
|
125
|
-
var Teams$1 = React__default.memo(Teams);export{Teams$1 as default};//# sourceMappingURL=Teams.js.map
|
|
156
|
+
var Teams = memo(TeamsScreen);export{Teams as default};//# sourceMappingURL=Teams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Teams.js","sources":["../../../src/screens/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { TouchableOpacity, Dimensions } from 'react-native';\nimport {\n SafeAreaView,\n Center,\n View,\n FlatList,\n Icon,\n Box,\n Text,\n Spinner,\n HStack,\n Fab,\n FabIcon,\n FabLabel,\n AddIcon,\n Input,\n InputField,\n} from '@admin-layout/gluestack-ui-mobile';\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, uniqBy, orderBy } from 'lodash-es';\nimport { useGetOrganizationTeamsQuery } from 'common/lib/generated/generated.js';\nimport { FontAwesome, Feather, Octicons, MaterialIcons, AntDesign } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../constants';\nimport { useDrawerLayout } from '../../hooks';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { StatusBar } from 'expo-status-bar';\nimport { NavigationHeader } from '../../components';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst GetTeams = React.memo(({ orgTeams, orgTeamsLoading }: any) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const navigation = useNavigation<any>();\n // const currentRoute = navigationRef?.isReady() ? navigationRef?.getCurrentRoute() : null;\n const [teams, setTeams] = React.useState([]);\n const [intialTeams, setInitialTeams] = useState<any[]>([]);\n const user: any = useSelector(userSelector);\n const isFocused = useIsFocused();\n\n useEffect(() => {\n if (navigation)\n navigation.setOptions({\n headerShown: true,\n headerTitle: (props: any) => (\n <Box>\n <Text fontSize={15} fontWeight={'600'} color={'$black'}>\n Team Browser\n </Text>\n <Text color={'$black'} fontWeight={'500'}>\n {teams.length} {teams.length > 1 ? 'teams' : 'team'}\n </Text>\n </Box>\n ),\n });\n }, [teams, navigation]);\n\n React.useEffect(() => {\n if (orgTeams?.getOrganizationTeams) {\n const orgTeamsData: any =\n (orgTeams?.getOrganizationTeams &&\n orgTeams?.getOrganizationTeams?.length &&\n orderBy(orgTeams?.getOrganizationTeams, [(tm: any) => tm?.title.toLowerCase()], ['asc'])) ||\n [];\n setTeams((oldTeams: any) => uniqBy([...orgTeamsData, ...oldTeams], ({ id }) => id));\n setInitialTeams((oldTeams: any) => uniqBy([...orgTeamsData, ...oldTeams], ({ id }) => id));\n }\n }, [orgTeams]);\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((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 hideTabBar: true,\n });\n }, []);\n\n const renderOrganizationTeamItem = ({ item }: any) => {\n return (\n <TouchableOpacity\n key={item.id}\n style={{ marginTop: 1 }}\n // onPress={() => openInbox(item?.id, item.title, item?.members?.length)}\n onPress={() => viewTeam(item)}\n >\n <Box\n flex={1}\n bg={'$white'}\n hardShadow={'5'}\n py={'$4'}\n px={'$2'}\n borderBottomWidth={'$1'}\n borderBottomColor={'$warmGray200'}\n >\n <HStack flex={1} alignItems={'center'}>\n <Octicons color=\"black\" name=\"lock\" size={20} />\n <Text pl={'$2'} fontSize={16} color={'$black'}>\n {item.title}\n </Text>\n </HStack>\n </Box>\n </TouchableOpacity>\n );\n };\n\n const searchTeams = React.useCallback(\n (v: any) => {\n if (v) {\n const searchTeam = teams.filter((o: any) => o?.title?.toLowerCase().includes(v?.toLowerCase()));\n setTeams(searchTeam);\n } else {\n setTeams(intialTeams);\n }\n },\n [intialTeams, teams],\n );\n\n return (\n <SafeAreaView flex={1}>\n <StatusBar style=\"dark\" />\n <Box flex={1}>\n <Input bg={'$white'} variant=\"underlined\" borderTopWidth={'$1'}>\n <InputField\n px={'$3'}\n alignItems=\"center\"\n type=\"text\"\n size=\"xl\"\n placeholderTextColor={'#404040'}\n color=\"$black\"\n fontSize={15}\n placeholder=\"Search for teams\"\n onChange={({ nativeEvent: { eventCount, target, text } }) => {\n searchTeams(text);\n }}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n </Input>\n <VirtualizedScrollView flex={1}>\n <FlatList\n pt={'$2'}\n flex={1}\n data={teams && teams.length > 0 ? teams : []}\n renderItem={renderOrganizationTeamItem}\n key={'all-teams-list'}\n keyExtractor={(item, index) => String(index)}\n contentContainerStyle={{\n flex: 1,\n }}\n ListEmptyComponent={() => {\n return (\n <Center flex={1} pt={'$20'} alignItems=\"center\" justifyContent=\"center\">\n {orgTeamsLoading ? (\n <Spinner color={'$blue500'} />\n ) : (\n <Text textAlign=\"center\" color={'$coolGray600'}>\n No Teams found\n </Text>\n )}\n </Center>\n );\n }}\n />\n </VirtualizedScrollView>\n\n <Fab\n size=\"md\"\n bg={'$white'}\n borderRadius={'$lg'}\n placement=\"bottom right\"\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam)}\n $pressed-bg={'$trueGray200'}\n $active-bg={'$trueGray200'}\n >\n <FabIcon as={AddIcon} color={'$black'} />\n </Fab>\n {/* \n <Fab\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam)}\n bg={'white'}\n _pressed={{ backgroundColor: 'muted.400' }}\n bottom={10}\n renderInPortal={false}\n shadow={3}\n size=\"sm\"\n borderRadius={'lg'}\n icon={<Icon color=\"black\" as={AntDesign} name=\"plus\" size=\"sm\" />}\n /> */}\n </Box>\n </SafeAreaView>\n );\n});\n\nconst Teams = (props: any) => {\n const { orgName, organizationDetail } = useDrawerLayout();\n const navigation = useNavigation<any>();\n // const currentRoute = navigationRef?.isReady() ? navigationRef?.getCurrentRoute() : null;\n const [teams, setTeams] = React.useState([]);\n const [intialTeams, setInitialTeams] = useState<any[]>([]);\n const user: any = useSelector(userSelector);\n const isFocused = useIsFocused();\n\n const {\n data: orgTeams,\n loading: orgTeamsLoading,\n error,\n refetch: _refetchOrgTeams,\n } = useGetOrganizationTeamsQuery({\n variables: { orgName: orgName },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n if (orgName) _refetchOrgTeams({ orgName: orgName });\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [orgName]),\n );\n\n if (orgTeamsLoading) return <Spinner color={'$blue500'} />;\n return <GetTeams orgTeams={orgTeams} orgTeamsLoading={orgTeamsLoading} />;\n};\n\nexport default React.memo(Teams);\n"],"names":["React"],"mappings":"shCAgBoB,UAAA,CAAW,GAAI,CAAA,QAAQ,CAAE,CAAA;AACxB,UAAA,CAAW,GAAI,CAAA,QAAQ,CAAE,CAAA;AAC9C,MAAM,QAAA,GAAWA,cAAM,CAAA,IAAA,CAAK,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA;AACF,CAAW,KAAA;AACT,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA;AAAA,MACE,eAAgB,EAAA;AACpB,EAAA,MAAM,aAAa,aAAmB,EAAA;AAEtC,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,IAAIA,cAAM,CAAA,QAAA,CAAS,EAAE,CAAA;AAC3C,EAAA,MAAM,CAAC,WAAa,EAAA,eAAe,CAAI,GAAA,QAAA,CAAgB,EAAE,CAAA;AACzD,EAAkB,YAAY,YAAY;AAC1C,EAAkB,YAAa;AAC/B,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,UAAA;AAAY,MAAA,UAAA,CAAW,UAAW,CAAA;AAAA,QACpC,WAAa,EAAA,IAAA;AAAA,QACb,WAAa,EAAA,CAAC,KAAe,qBAAAA,cAAA,CAAA,aAAA,CAAC,GACZ,EAAA,IAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,QAAA,EAAU,EAAI,EAAA,UAAA,EAAY,KAAO,EAAA,KAAA,EAAO,QAAU,EAAA,EAAA,cAExD,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,UAAA,EAAY,KAC9B,EAAA,EAAA,KAAA,CAAM,MAAO,EAAA,GAAA,EAAE,KAAM,CAAA,MAAA,GAAS,CAAI,GAAA,OAAA,GAAU,MACjD,CACJ;AAAA,OACf,CAAA;AAAA,GACA,EAAA,CAAC,KAAO,EAAA,UAAU,CAAC,CAAA;AACtB,EAAAA,cAAA,CAAM,UAAU,MAAM;AA7CxB,IAAA,IAAA,EAAA;AA8CI,IAAA,IAAI,qCAAU,oBAAsB,EAAA;AAClC,MAAM,MAAA,YAAA,GAAA,CAAoB,qCAAU,oBAAwB,MAAA,CAAA,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,yBAAV,IAAgC,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,CAAA,IAAU,QAAQ,QAAU,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAA,oBAAA,EAAsB,CAAC,CAAC,EAAA,KAAY,yBAAI,KAAM,CAAA,WAAA,EAAa,GAAG,CAAC,KAAK,CAAC,CAAA,IAAK,EAAC;AACnM,MAAS,QAAA,CAAA,CAAC,aAAkB,MAAO,CAAA,CAAC,GAAG,YAAc,EAAA,GAAG,QAAQ,CAAA,EAAG,CAAC;AAAA,QAClE;AAAA,OACF,KAAM,EAAE,CAAC,CAAA;AACT,MAAgB,eAAA,CAAA,CAAC,aAAkB,MAAO,CAAA,CAAC,GAAG,YAAc,EAAA,GAAG,QAAQ,CAAA,EAAG,CAAC;AAAA,QACzE;AAAA,OACF,KAAM,EAAE,CAAC,CAAA;AAAA;AACX,GACF,EAAG,CAAC,QAAQ,CAAC,CAAA;AACb,EAAkBA,cAAM,CAAA,WAAA,CAAY,CAAC,EAAA,EAAS,OAAY,YAAsB,KAAA;AAC9E,IAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,cAAgB,EAAA;AAAA,MACnD,WAAW,EAAI,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,EAAA;AAAA,MACf,OAAO,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,QAAA,EAAA;AAAA,MACd,YAAA;AAAA,MACA,UAAY,EAAA;AAAA,KACb,CAAA;AAAA,GACH,EAAG,EAAE;AACL,EAAA,MAAM,QAAW,GAAAA,cAAA,CAAM,WAAY,CAAA,CAAC,IAAc,KAAA;AAhEpD,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,UAAY,EAAA;AAAA,KACb,CAAA;AAAA,GACH,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,6BAA6B,CAAC;AAAA,IAClC;AAAA,GACS,KAAA;AACT,IAAO,uBAAAA,cAAA,CAAA,aAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QAAiB,KAAK,IAAK,CAAA,EAAA;AAAA,QAAI,KAAO,EAAA;AAAA,UAC5C,SAAW,EAAA;AAAA,SACb;AAAA,QAEA,OAAA,EAAS,MAAM,QAAA,CAAS,IAAI;AAAA,OAAA;AAAA,mDACf,GAAI,EAAA,EAAA,IAAA,EAAM,GAAG,EAAI,EAAA,QAAA,EAAU,YAAY,GAAK,EAAA,EAAA,EAAI,MAAM,EAAI,EAAA,IAAA,EAAM,mBAAmB,IAAM,EAAA,iBAAA,EAAmB,kCACxGA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,MAAM,CAAG,EAAA,UAAA,EAAY,QACzB,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,YAAS,KAAM,EAAA,OAAA,EAAQ,MAAK,MAAO,EAAA,IAAA,EAAM,IAAI,CAC9C,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAK,EAAI,EAAA,IAAA,EAAM,UAAU,EAAI,EAAA,KAAA,EAAO,YAChC,IAAK,CAAA,KACV,CACJ,CACJ;AAAA,KACJ;AAAA,GACV;AACA,EAAA,MAAM,WAAc,GAAAA,cAAA,CAAM,WAAY,CAAA,CAAC,CAAW,KAAA;AAChD,IAAA,IAAI,CAAG,EAAA;AACL,MAAA,MAAM,UAAa,GAAA,KAAA,CAAM,MAAO,CAAA,CAAC,CAAQ,KAAA;AA7F/C,QAAA,IAAA,EAAA;AA6FkD,QAAA,OAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,KAAH,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAU,WAAc,EAAA,CAAA,QAAA,CAAS,CAAG,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,WAAA,EAAA,CAAA;AAAA,OAAc,CAAA;AAC9F,MAAA,QAAA,CAAS,UAAU,CAAA;AAAA,KACd,MAAA;AACL,MAAA,QAAA,CAAS,WAAW,CAAA;AAAA;AACtB,GACC,EAAA,CAAC,WAAa,EAAA,KAAK,CAAC,CAAA;AACvB,EAAA,oDAAQ,YAAa,EAAA,EAAA,IAAA,EAAM,qBAChBA,cAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAU,OAAM,MAAO,EAAA,CAAA,kBACvBA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,MAAM,CACP,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,SAAM,EAAI,EAAA,QAAA,EAAU,SAAQ,YAAa,EAAA,cAAA,EAAgB,IACtD,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,cAAW,EAAI,EAAA,IAAA,EAAM,YAAW,QAAS,EAAA,IAAA,EAAK,QAAO,IAAK,EAAA,IAAA,EAAK,oBAAsB,EAAA,SAAA,EAAW,OAAM,QAAS,EAAA,QAAA,EAAU,IAAI,WAAY,EAAA,kBAAA,EAAmB,UAAU,CAAC;AAAA,IAClL,WAAa,EAAA;AAAA,MACX,UAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA;AACF,GACI,KAAA;AACJ,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,KACf,cAAgB,EAAA,MAAA,EAAQ,WAAa,EAAA,KAAA,EAAO,CACvC,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,qBAAsB,EAAA,EAAA,IAAA,EAAM,qBACxBA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,EAAI,EAAA,IAAA,EAAM,MAAM,CAAG,EAAA,IAAA,EAAM,KAAS,IAAA,KAAA,CAAM,SAAS,CAAI,GAAA,KAAA,GAAQ,EAAC,EAAG,YAAY,0BAA4B,EAAA,GAAA,EAAK,gBAAkB,EAAA,YAAA,EAAc,CAAC,IAAM,EAAA,KAAA,KAAU,MAAO,CAAA,KAAK,GAAG,qBAAuB,EAAA;AAAA,IACzN,IAAM,EAAA;AAAA,GACR,EAAG,oBAAoB,MAAM;AAC3B,IAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,UAAO,IAAM,EAAA,CAAA,EAAG,IAAI,KAAO,EAAA,UAAA,EAAW,QAAS,EAAA,cAAA,EAAe,QAC3C,EAAA,EAAA,eAAA,gDAAmB,OAAQ,EAAA,EAAA,KAAA,EAAO,UAAY,EAAA,CAAA,mBAAMA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,WAAU,QAAS,EAAA,KAAA,EAAO,cAAgB,EAAA,EAAA,gBAEhG,CACR,CAAA;AAAA,GACrB,EAAA,CACK,CAEA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,IAAK,EAAA,IAAA,EAAK,EAAI,EAAA,QAAA,EAAU,YAAc,EAAA,KAAA,EAAO,SAAU,EAAA,cAAA,EAAe,SAAS,MAAM,UAAA,CAAW,QAAS,CAAA,gBAAA,CAAiB,OAAO,CAAA,EAAG,aAAa,EAAA,cAAA,EAAgB,cAAY,cAC9K,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,EAAA,EAAI,OAAS,EAAA,KAAA,EAAO,QAAU,EAAA,CAC3C,CAaJ,CACJ,CAAA;AACR,CAAC,CAAA;AACD,MAAM,KAAA,GAAQ,CAAC,KAAe,KAAA;AAC5B,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA;AAAA,MACE,eAAgB,EAAA;AACpB,EAAmB,aAAmB;AAEtC,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,IAAIA,cAAM,CAAA,QAAA,CAAS,EAAE,CAAA;AAC3C,EAAA,MAAM,CAAC,WAAa,EAAA,eAAe,CAAI,GAAA,QAAA,CAAgB,EAAE,CAAA;AACzD,EAAkB,YAAY,YAAY;AAC1C,EAAkB,YAAa;AAC/B,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA,eAAA;AAAA,IACT,KAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACP,4BAA6B,CAAA;AAAA,IAC/B,SAAW,EAAA;AAAA,MACT;AAAA;AACF,GACD,CAAA;AACD,EAAe,cAAA,CAAAA,cAAA,CAAM,YAAY,MAAM;AAErC,IAAI,IAAA,OAAA;AAAS,MAAiB,gBAAA,CAAA;AAAA,QAC5B;AAAA,OACD,CAAA;AACD,IAAA,OAAO,MAAM;AAAA,KAGb;AAAA,GACC,EAAA,CAAC,OAAO,CAAC,CAAC,CAAA;AACb,EAAI,IAAA,eAAA;AAAiB,IAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,KAAA,EAAO,UAAY,EAAA,CAAA;AACxD,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,QAAA,EAAoB,eAAkC,EAAA,CAAA;AACzE,CAAA;AACA,cAAeA,cAAA,CAAM,KAAK,KAAK,CAAA"}
|
|
1
|
+
{"version":3,"file":"Teams.js","sources":["../../../src/screens/Teams/Teams.tsx"],"sourcesContent":["import { useIsFocused } from '@react-navigation/native';\nimport React, { useCallback, memo } from 'react';\nimport { TouchableOpacity, Dimensions, SafeAreaView, RefreshControl, StyleSheet } from 'react-native';\nimport {\n Center,\n View,\n FlatList,\n Box,\n Text,\n Spinner,\n HStack,\n Fab,\n FabIcon,\n AddIcon,\n Input,\n InputField,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { useSelector } from 'react-redux';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { useNavigation } from '@react-navigation/native';\nimport { Octicons } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../constants';\nimport { useDrawerLayout } from '../../hooks';\nimport { StatusBar } from 'expo-status-bar';\nimport colors from 'tailwindcss/colors';\nimport { useTeams } from './useTeams';\n\nconst TeamItem = memo(({ item, onPress }: { item: any; onPress: (item: any) => void }) => (\n <TouchableOpacity key={item.id} style={styles.teamItem} onPress={() => onPress(item)}>\n <Box style={styles.teamItemBox}>\n <HStack space={'md'} style={styles.teamItemContent}>\n <Octicons color={'black'} name=\"lock\" size={20} />\n <Text style={styles.teamItemText}>{item.title}</Text>\n </HStack>\n </Box>\n </TouchableOpacity>\n));\n\nconst TeamsScreen = () => {\n const { orgName } = useDrawerLayout();\n const navigation = useNavigation<any>();\n const user = useSelector(userSelector);\n const { teams, loading, teamsLoading, error, handleSearchChange, searchTerm, refetch } = useTeams(orgName);\n\n React.useEffect(() => {\n if (navigation) {\n navigation.setOptions({\n headerShown: true,\n headerTitle: () => (\n <Box>\n <Text style={styles.headerTitle}>Team Browser</Text>\n <Text style={styles.headerSubtitle}>\n {teams.length} {teams.length === 1 ? 'team' : 'teams'}\n </Text>\n </Box>\n ),\n });\n }\n }, [teams.length, navigation]);\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 hideTabBar: true,\n });\n },\n [navigation],\n );\n\n if (loading && !teams.length) {\n return (\n <Center style={{ flex: 1, backgroundColor: 'white' }}>\n <Spinner color={colors.blue[500]} size=\"large\" />\n </Center>\n );\n }\n\n return (\n <SafeAreaView style={styles.container}>\n <StatusBar style=\"dark\" />\n <Box style={styles.content}>\n <Input style={styles.searchInput} variant=\"outlined\">\n <InputField\n type=\"text\"\n size=\"xl\"\n value={searchTerm}\n placeholderTextColor={colors.gray[500]}\n style={styles.inputField}\n placeholder=\"Search for teams\"\n onChange={(event) => handleSearchChange(event.nativeEvent.text)}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n </Input>\n\n <FlatList\n contentContainerStyle={teams.length ? styles.listContent : styles.emptyListContent}\n data={teams}\n renderItem={({ item }) => <TeamItem item={item} onPress={viewTeam} />}\n keyExtractor={(item) => item._id || item.id}\n refreshControl={\n <RefreshControl\n refreshing={teamsLoading}\n onRefresh={refetch}\n colors={[colors.blue[500]]}\n tintColor={colors.blue[500]}\n />\n }\n showsVerticalScrollIndicator={false}\n ListEmptyComponent={() => (\n <Center style={styles.emptyContainer}>\n {teamsLoading ? (\n <Spinner color={colors.blue[500]} />\n ) : (\n <View style={styles.emptyContent}>\n <Octicons name=\"organization\" size={36} color={colors.gray[400]} />\n <Text style={styles.emptyText}>\n {error ? 'Error loading teams' : 'No teams found'}\n </Text>\n {error && (\n <TouchableOpacity style={styles.retryButton} onPress={() => refetch()}>\n <Text style={styles.retryButtonText}>Retry</Text>\n </TouchableOpacity>\n )}\n </View>\n )}\n </Center>\n )}\n />\n\n <Fab\n size=\"md\"\n placement=\"bottom right\"\n onPress={() => navigation.navigate(NavigationRoutes.AddTeam)}\n style={styles.fab}\n >\n <FabIcon as={AddIcon} color=\"black\" />\n </Fab>\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.gray[100],\n },\n content: {\n flex: 1,\n },\n searchInput: {\n backgroundColor: 'white',\n borderBottomWidth: 1,\n borderBottomColor: colors.gray[200],\n shadowOpacity: 0.1,\n shadowRadius: 3,\n marginBottom: 8,\n },\n inputField: {\n paddingHorizontal: 12,\n color: 'black',\n fontSize: 15,\n },\n listContent: {\n paddingHorizontal: 12,\n paddingBottom: 100,\n paddingTop: 4,\n },\n emptyListContent: {\n paddingHorizontal: 12,\n paddingBottom: 100,\n paddingTop: 4,\n flexGrow: 1,\n },\n emptyContainer: {\n flex: 1,\n paddingTop: 80,\n alignItems: 'center',\n justifyContent: 'center',\n },\n emptyContent: {\n alignItems: 'center',\n },\n emptyText: {\n textAlign: 'center',\n color: colors.gray[600],\n marginTop: 16,\n fontSize: 16,\n },\n retryButton: {\n marginTop: 16,\n backgroundColor: colors.blue[500],\n paddingHorizontal: 16,\n paddingVertical: 8,\n borderRadius: 6,\n },\n retryButtonText: {\n color: 'white',\n fontWeight: '500',\n },\n teamItem: {\n marginVertical: 4,\n },\n teamItemBox: {\n flex: 1,\n backgroundColor: 'white',\n paddingVertical: 16,\n paddingHorizontal: 12,\n borderRadius: 8,\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.1,\n shadowRadius: 1,\n borderWidth: 1,\n borderColor: colors.gray[100],\n },\n teamItemContent: {\n flex: 1,\n alignItems: 'center',\n },\n teamItemText: {\n paddingLeft: 8,\n fontSize: 16,\n fontWeight: '500',\n color: 'black',\n },\n headerTitle: {\n fontSize: 16,\n fontWeight: 'bold',\n color: 'black',\n },\n headerSubtitle: {\n color: 'black',\n fontWeight: '500',\n },\n fab: {\n backgroundColor: '#fff',\n borderRadius: 28,\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.2,\n shadowRadius: 3,\n },\n});\n\nexport default memo(TeamsScreen);\n"],"names":["React"],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {useState,useCallback,useEffect}from'react';import {useTeamsQuery}from'../../queries/slackuiQueries.js';import'lodash-es';const useTeams = (orgName) => {
|
|
2
|
+
const [searchTerm, setSearchTerm] = useState("");
|
|
3
|
+
const [teams, setTeams] = useState([]);
|
|
4
|
+
const [initialTeams, setInitialTeams] = useState([]);
|
|
5
|
+
const [teamsLoading, setTeamsLoading] = useState(false);
|
|
6
|
+
const {
|
|
7
|
+
data,
|
|
8
|
+
loading,
|
|
9
|
+
error,
|
|
10
|
+
refetch: refetchTeamsQuery
|
|
11
|
+
} = useTeamsQuery(orgName);
|
|
12
|
+
const handleSearchChange = useCallback((text) => {
|
|
13
|
+
setSearchTerm(text);
|
|
14
|
+
if (!text.trim()) {
|
|
15
|
+
setTeams(initialTeams);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const filteredTeams = initialTeams.filter((team) => {
|
|
19
|
+
var _a;
|
|
20
|
+
return (_a = team == null ? void 0 : team.title) == null ? void 0 : _a.toLowerCase().includes(text.toLowerCase());
|
|
21
|
+
});
|
|
22
|
+
setTeams(filteredTeams);
|
|
23
|
+
}, [initialTeams]);
|
|
24
|
+
const refetch = useCallback(() => {
|
|
25
|
+
setTeamsLoading(true);
|
|
26
|
+
return refetchTeamsQuery();
|
|
27
|
+
}, [refetchTeamsQuery]);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
setTeams([]);
|
|
30
|
+
setInitialTeams([]);
|
|
31
|
+
}, [orgName]);
|
|
32
|
+
return {
|
|
33
|
+
teams,
|
|
34
|
+
loading,
|
|
35
|
+
teamsLoading,
|
|
36
|
+
error,
|
|
37
|
+
handleSearchChange,
|
|
38
|
+
searchTerm,
|
|
39
|
+
refetch
|
|
40
|
+
};
|
|
41
|
+
};export{useTeams};//# sourceMappingURL=useTeams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTeams.js","sources":["../../../src/screens/Teams/useTeams.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport { useTeamsQuery } from '../../queries/slackuiQueries';\nimport { orderBy, uniqBy } from 'lodash-es';\n\nexport const useTeams = (orgName: string) => {\n const [searchTerm, setSearchTerm] = useState('');\n const [teams, setTeams] = useState<any[]>([]);\n const [initialTeams, setInitialTeams] = useState<any[]>([]);\n const [teamsLoading, setTeamsLoading] = useState(false);\n\n const {\n data,\n loading,\n error,\n refetch: refetchTeamsQuery,\n } = useTeamsQuery(orgName, {\n fetchPolicy: 'cache-and-network',\n onCompleted: (data) => {\n if (data?.getOrganizationTeams?.length) {\n const orgTeamsData = data.getOrganizationTeams || [];\n const sortedTeams =\n orgTeamsData.length > 0\n ? orderBy(orgTeamsData, [(tm: any) => tm?.title?.toLowerCase()], ['asc'])\n : [];\n\n const uniqueTeams = uniqBy([...sortedTeams], ({ _id }) => _id);\n\n setInitialTeams(uniqueTeams);\n setTeams(uniqueTeams);\n }\n setTeamsLoading(false);\n },\n onError: () => {\n setTeamsLoading(false);\n },\n });\n\n const handleSearchChange = useCallback(\n (text: string) => {\n setSearchTerm(text);\n\n if (!text.trim()) {\n setTeams(initialTeams);\n return;\n }\n\n const filteredTeams = initialTeams.filter((team: any) =>\n team?.title?.toLowerCase().includes(text.toLowerCase()),\n );\n\n setTeams(filteredTeams);\n },\n [initialTeams],\n );\n\n const refetch = useCallback(() => {\n setTeamsLoading(true);\n return refetchTeamsQuery();\n }, [refetchTeamsQuery]);\n\n // Reset teams when orgName changes\n useEffect(() => {\n setTeams([]);\n setInitialTeams([]);\n }, [orgName]);\n\n return {\n teams,\n loading,\n teamsLoading,\n error,\n handleSearchChange,\n searchTerm,\n refetch,\n };\n};\n"],"names":[],"mappings":"iIAGa,MAAA,QAAA,GAAW,CAAC,OAAoB,KAAA;AAC3C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,EAAE,CAAA;AAC/C,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,QAAA,CAAgB,EAAE,CAAA;AAC5C,EAAA,MAAM,CAAC,YAAc,EAAA,eAAe,CAAI,GAAA,QAAA,CAAgB,EAAE,CAAA;AAC1D,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AACtD,EAAM,MAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAS,EAAA;AAAA,GACX,GAAI,cAAc,OAiBjB,CAAA;AACD,EAAM,MAAA,kBAAA,GAAqB,WAAY,CAAA,CAAC,IAAiB,KAAA;AACvD,IAAA,aAAA,CAAc,IAAI,CAAA;AAClB,IAAI,IAAA,CAAC,IAAK,CAAA,IAAA,EAAQ,EAAA;AAChB,MAAA,QAAA,CAAS,YAAY,CAAA;AACrB,MAAA;AAAA;AAEF,IAAA,MAAM,aAAgB,GAAA,YAAA,CAAa,MAAO,CAAA,CAAC,IAAW,KAAA;AArC1D,MAAA,IAAA,EAAA;AAqC6D,MAAA,OAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAa,WAAc,EAAA,CAAA,QAAA,CAAS,KAAK,WAAY,EAAA,CAAA;AAAA,KAAE,CAAA;AAChH,IAAA,QAAA,CAAS,aAAa,CAAA;AAAA,GACxB,EAAG,CAAC,YAAY,CAAC,CAAA;AACjB,EAAM,MAAA,OAAA,GAAU,YAAY,MAAM;AAChC,IAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,IAAA,OAAO,iBAAkB,EAAA;AAAA,GAC3B,EAAG,CAAC,iBAAiB,CAAC,CAAA;AAGtB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,eAAA,CAAgB,EAAE,CAAA;AAAA,GACpB,EAAG,CAAC,OAAO,CAAC,CAAA;AACZ,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,kBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React__default from'react';import {
|
|
1
|
+
import React__default from'react';import {Box,Text}from'@admin-layout/gluestack-ui-mobile';const WikiScreen = ({
|
|
2
2
|
navigation
|
|
3
3
|
}) => {
|
|
4
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
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" }, "Wiki"));
|
|
5
5
|
};export{WikiScreen as default};//# sourceMappingURL=WikiScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WikiScreen.js","sources":["../../../src/screens/Wiki/WikiScreen.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 WikiScreenProps = {\n navigation: any;\n};\n\nconst WikiScreen = ({ navigation }: WikiScreenProps) => {\n return (\n <
|
|
1
|
+
{"version":3,"file":"WikiScreen.js","sources":["../../../src/screens/Wiki/WikiScreen.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 WikiScreenProps = {\n navigation: any;\n};\n\nconst WikiScreen = ({ navigation }: WikiScreenProps) => {\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\">Wiki</Text>\n </Box>\n );\n};\n\nexport default WikiScreen;\n"],"names":["React"],"mappings":"2FAWA,MAAM,aAAa,CAAC;AAAA,EAClB;AACF,CAAuB,KAAA;AACrB,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,OAAI,SAAU,EAAA,kDAAA,EAAA,+CACX,IAAK,EAAA,EAAA,SAAA,EAAU,uCAAwC,EAAA,EAAA,MAAI,CAChE,CAAA;AACR"}
|
package/lib/theme/index.js
CHANGED
package/lib/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import colors from '../constants/Colors';\n\nconst config = {\n colors: {\n // Add new color\n primary: colors.primaryBgColor,\n },\n components: {\n Button: {\n // Can simply pass default props to change default behaviour of components.\n baseStyle: {},\n defaultProps: {},\n },\n },\n};\n\nexport const customTheme = config;\n"],"names":[],"mappings":"2CACA,MAAM,MAAS,GAAA;AAAA,EACb,MAAQ,EAAA;AAAA,IAEN,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import colors from '../constants/Colors';\n\nconst config = {\n colors: {\n // Add new color\n primary: colors.primaryBgColor,\n },\n components: {\n Button: {\n // Can simply pass default props to change default behaviour of components.\n baseStyle: {},\n defaultProps: {},\n },\n },\n};\n\nexport const customTheme = config;\n"],"names":["colors"],"mappings":"2CACA,MAAM,MAAS,GAAA;AAAA,EACb,MAAQ,EAAA;AAAA,IAEN,SAASA,MAAO,CAAA;AAAA,GAClB;AAAA,EACA,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,MAEN,WAAW,EAAC;AAAA,MACZ,cAAc;AAAC;AACjB;AAEJ,CAAA;AACO,MAAM,WAAc,GAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@messenger-box/slack-ui-mobile",
|
|
3
|
-
"version": "10.0.3-alpha.
|
|
3
|
+
"version": "10.0.3-alpha.74",
|
|
4
4
|
"description": "Slack ui ref mobile package",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"watch-ts": "tsc --watch"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@messenger-box/platform-mobile": "10.0.3-alpha.
|
|
26
|
+
"@messenger-box/platform-mobile": "10.0.3-alpha.74"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"cp-cli": "^2.0.0"
|
|
@@ -38,7 +38,9 @@
|
|
|
38
38
|
"@common-stack/core": "*",
|
|
39
39
|
"@expo/vector-icons": "*",
|
|
40
40
|
"@react-native-async-storage/async-storage": "*",
|
|
41
|
-
"
|
|
41
|
+
"@xstate/react": "*",
|
|
42
|
+
"lodash": "*",
|
|
43
|
+
"xstate": "*"
|
|
42
44
|
},
|
|
43
45
|
"publishConfig": {
|
|
44
46
|
"access": "public"
|
|
@@ -46,5 +48,5 @@
|
|
|
46
48
|
"typescript": {
|
|
47
49
|
"definition": "lib/index.d.ts"
|
|
48
50
|
},
|
|
49
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "2bfc901f9f0a9da1919294e1ebd8246edec0a3b0"
|
|
50
52
|
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import React__default from'react';import {Login}from'../screens/Login.js';import'../screens/Home/HomeScreen.js';import'@adminide-stack/user-auth0-client';import'@messenger-box/platform-mobile';import {FontAwesome5}from'@expo/vector-icons';import'expo-font';import'expo-splash-screen';import'react-native';import'../hooks/useDrawerLayout.js';import'../hooks/useExpoNotificationProvider.js';import'@workbench-stack/core';import {withLifeCycleInteractionsManaged}from'@admin-layout/gluestack-ui-mobile';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 NavigationHeader from'../components/NavigationHeader/NavigationHeader.js';import'@react-navigation/elements';import {NavigationRoutes}from'../constants/routes.js';import {Feature,navigationRef}from'@common-stack/client-react';import'../components/NavigationHeader/InboxNavigationHeader.js';import'../components/WorkSpaceDrawer/WorkSpaceDrawer.js';import'../components/Channels/ChannelsByAlphabeticalAccordion.js';import'../components/SlackSearchInput/index.js';import'common';import'common/lib/generated/generated.js';import'expo-status-bar';import'react-redux';import'lodash-es';import'../constants/device.js';import'../constants/globalStyles.js';import'../constants/Layout.js';import'@react-navigation/native';import ActivityScreen from'../screens/Activity/ActivityScreen.js';import'../screens/Search/SearchScreen.js';import'../screens/Search/SearchChannelPeople.js';import'../screens/Search/SearchAddChannel.js';import'../screens/Search/JumpTo.js';import'../screens/Channels/Channels.js';import'../screens/Channels/AddChannel.js';import'../screens/Channels/Add/AddName.js';import'../screens/Channels/Add/AddVisibility.js';import'../screens/Peoples/People.js';import'../screens/Peoples/AddByEmail.js';import'expo-contacts';import'../config/env-config.js';import'../screens/Teams/Team.js';import'../screens/Teams/Teams.js';import'../screens/Organization/CreateOrganization.js';import'../screens/Organization/InviteOrganizationMembers.js';import'../screens/Organization/InitializeOrganizationChannel.js';import'../screens/Organization/InitialChannelOnboarding.js';import'../screens/Organization/AddWorkspace.js';var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
const activityConfig = {
|
|
18
|
-
["//:orgName/l/activity"]: {
|
|
19
|
-
exact: true,
|
|
20
|
-
name: "Activity",
|
|
21
|
-
menu_position: "bottom",
|
|
22
|
-
auth: true,
|
|
23
|
-
props: {
|
|
24
|
-
initialParams: {
|
|
25
|
-
orgName: null
|
|
26
|
-
},
|
|
27
|
-
component: withLifeCycleInteractionsManaged(ActivityScreen, null, 100),
|
|
28
|
-
unauthenticatedComponent: (props) => /* @__PURE__ */ React__default.createElement(Login, __spreadValues({}, props)),
|
|
29
|
-
options: {
|
|
30
|
-
headerShown: true,
|
|
31
|
-
header: (props) => /* @__PURE__ */ React__default.createElement(NavigationHeader, __spreadValues({}, props)),
|
|
32
|
-
title: "Activity",
|
|
33
|
-
headerTitle: "Activity",
|
|
34
|
-
priority: 3,
|
|
35
|
-
tabBarActiveTintColor: "#000",
|
|
36
|
-
tabBarInactiveTintColor: "black",
|
|
37
|
-
tabBarIcon: ({
|
|
38
|
-
color
|
|
39
|
-
}) => /* @__PURE__ */ React__default.createElement(FontAwesome5, { name: "bell", size: 24, color }),
|
|
40
|
-
tabBarLabel: "Activity",
|
|
41
|
-
gestureEnabled: false,
|
|
42
|
-
swipeEnabled: false
|
|
43
|
-
},
|
|
44
|
-
listeners: ({
|
|
45
|
-
navigation
|
|
46
|
-
}) => ({
|
|
47
|
-
tabPress: (e) => {
|
|
48
|
-
var _a, _b, _c, _d;
|
|
49
|
-
e.preventDefault();
|
|
50
|
-
const orgName = ((_a = navigationRef) == null ? void 0 : _a.isReady()) ? (_d = (_c = (_b = navigationRef) == null ? void 0 : _b.getCurrentRoute()) == null ? void 0 : _c.params) == null ? void 0 : _d.orgName : null;
|
|
51
|
-
navigation.navigate(NavigationRoutes.Activity, {
|
|
52
|
-
orgName
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
})
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const activityFeature = new Feature({
|
|
60
|
-
routeConfig: activityConfig
|
|
61
|
-
});export{activityFeature};//# sourceMappingURL=ActivityNavigator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityNavigator.js","sources":["../../src/navigation/ActivityNavigator.tsx"],"sourcesContent":["import React from 'react';\nimport { Login, Activity } from '../screens';\nimport { NavigationHeader, LoadingSpinnerDefault } from '../components';\nimport { Feature, navigationRef } from '@common-stack/client-react';\nimport { LifecyclePhase } from '@workbench-stack/core';\nimport { Lifecycle, withLifeCycleInteractionsManaged } from '@admin-layout/gluestack-ui-mobile';\nimport { Ionicons, MaterialIcons, FontAwesome, FontAwesome5, AntDesign } from '@expo/vector-icons';\nimport { Platform } from 'react-native';\nimport { NavigationRoutes } from '../constants';\n\nconst activityConfig = {\n ['//:orgName/l/activity']: {\n exact: true,\n name: 'Activity',\n menu_position: 'bottom',\n auth: true,\n props: {\n initialParams: { orgName: null },\n component: withLifeCycleInteractionsManaged(Activity, null, 100),\n // component: (props: any) => (\n // <Lifecycle renderWhenPhase={LifecyclePhase.Restored} loadingRenderer={LoadingSpinnerDefault}>\n // <Activity {...props} />\n // </Lifecycle>\n // ),\n unauthenticatedComponent: (props: any) => <Login {...props} />,\n options: {\n headerShown: true,\n header: (props: any) => <NavigationHeader {...props} />,\n title: 'Activity',\n headerTitle: 'Activity',\n priority: 3,\n tabBarActiveTintColor: '#000',\n tabBarInactiveTintColor: 'black',\n tabBarIcon: ({ color }: { color: any }) => <FontAwesome5 name=\"bell\" size={24} color={color} />,\n tabBarLabel: 'Activity',\n gestureEnabled: false,\n swipeEnabled: false,\n },\n listeners: ({ navigation }: any) => ({\n tabPress: (e) => {\n // Prevent default action\n e.preventDefault();\n const orgName = navigationRef?.isReady() ? navigationRef?.getCurrentRoute()?.params?.orgName : null;\n navigation.navigate(NavigationRoutes.Activity, { orgName });\n },\n }),\n },\n },\n};\n\nexport const activityFeature = new Feature({\n routeConfig: activityConfig as any,\n});\n"],"names":["Activity","React"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,cAAiB,GAAA;AAAA,EACrB,CAAC,uBAA0B,GAAA;AAAA,IACzB,KAAO,EAAA,IAAA;AAAA,IACP,IAAM,EAAA,UAAA;AAAA,IACN,aAAe,EAAA,QAAA;AAAA,IACf,IAAM,EAAA,IAAA;AAAA,IACN,KAAO,EAAA;AAAA,MACL,aAAe,EAAA;AAAA,QACb,OAAS,EAAA;AAAA,OACX;AAAA,MACA,SAAW,EAAA,gCAAA,CAAiCA,cAAU,EAAA,IAAA,EAAM,GAAG,CAAA;AAAA,MAM/D,wBAA0B,EAAA,CAAC,KAAe,qBAAAC,cAAA,CAAA,aAAA,CAAC,0BAAU,KAAO,CAAA,CAAA;AAAA,MAC5D,OAAS,EAAA;AAAA,QACP,WAAa,EAAA,IAAA;AAAA,QACb,MAAQ,EAAA,CAAC,KAAe,qBAAAA,cAAA,CAAA,aAAA,CAAC,qCAAqB,KAAO,CAAA,CAAA;AAAA,QACrD,KAAO,EAAA,UAAA;AAAA,QACP,WAAa,EAAA,UAAA;AAAA,QACb,QAAU,EAAA,CAAA;AAAA,QACV,qBAAuB,EAAA,MAAA;AAAA,QACvB,uBAAyB,EAAA,OAAA;AAAA,QACzB,YAAY,CAAC;AAAA,UACX;AAAA,8BAGKA,cAAA,CAAA,aAAA,CAAA,YAAA,EAAA,EAAa,MAAK,MAAO,EAAA,IAAA,EAAM,IAAI,KAAc,EAAA,CAAA;AAAA,QACxD,WAAa,EAAA,UAAA;AAAA,QACb,cAAgB,EAAA,KAAA;AAAA,QAChB,YAAc,EAAA;AAAA,OAChB;AAAA,MACA,WAAW,CAAC;AAAA,QACV;AAAA,OACU,MAAA;AAAA,QACV,UAAU,CAAK,CAAA,KAAA;AA9CvB,UAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgDU,UAAA,CAAA,CAAE,cAAe,EAAA;AACjB,UAAM,MAAA,OAAA,GAAA,CAAA,CAAU,0CAAe,OAAY,EAAA,IAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,aAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,sBAAf,IAAkC,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,KAAlC,mBAA0C,OAAU,GAAA,IAAA;AAC/F,UAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,QAAU,EAAA;AAAA,YAC7C;AAAA,WACD,CAAA;AAAA;AACH,OACF;AAAA;AACF;AAEJ,CAAA;AACa,MAAA,eAAA,GAAkB,IAAI,OAAQ,CAAA;AAAA,EACzC,WAAa,EAAA;AACf,CAAC"}
|