@messenger-box/slack-ui-mobile 10.0.3-alpha.33 → 10.0.3-alpha.34

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.
@@ -1,77 +1,122 @@
1
- import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,Input,InputField,VStack,FlatList,Text,HStack,Image,Avatar,AvatarFallbackText,Checkbox,CheckboxIndicator,CheckboxIcon,CheckIcon}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity,Platform,Linking}from'react-native';import {useGetOrganizationSharableLinkQuery}from'common/graphql';import {Ionicons}from'@expo/vector-icons';import VirtualizedScrollView from'../../components/VirtualizedScrollView/VirtualizedScrollView.js';import {useIsFocused}from'@react-navigation/native';import*as Contacts from'expo-contacts';import {config}from'../../config/env-config.js';const AddFromContacts = ({
1
+ import React__default,{useState,useEffect}from'react';import {Button,ButtonText,Box,Input,InputSlot,InputField,Spinner,Text,FlatList,HStack,Avatar,AvatarImage,AvatarFallbackText,Checkbox,CheckboxIndicator,CheckboxIcon,CheckIcon}from'@admin-layout/gluestack-ui-mobile';import {TouchableOpacity,Platform,Linking,StyleSheet}from'react-native';import Colors from'../../constants/Colors.js';import {useGetOrganizationSharableLinkQuery}from'common/graphql';import {Ionicons,Feather}from'@expo/vector-icons';import {useIsFocused}from'@react-navigation/native';import*as Contacts from'expo-contacts';import {config}from'../../config/env-config.js';import {SafeAreaView}from'react-native-safe-area-context';const AddFromContacts = ({
2
2
  navigation,
3
3
  route
4
4
  }) => {
5
5
  const isFocused = useIsFocused();
6
6
  const [contacts, setContacts] = useState([]);
7
+ const [filteredContacts, setFilteredContacts] = useState([]);
7
8
  const [selectedContacts, setSelectedContacts] = useState([]);
9
+ const [searchQuery, setSearchQuery] = useState("");
10
+ const [loading, setLoading] = useState(true);
8
11
  const {
9
12
  data: organizationSharableLink
10
13
  } = useGetOrganizationSharableLinkQuery();
11
14
  useEffect(() => {
12
- }, [selectedContacts]);
15
+ if (searchQuery.trim() === "") {
16
+ setFilteredContacts(contacts);
17
+ } else {
18
+ const filtered = contacts.filter((contact) => {
19
+ var _a, _b, _c;
20
+ const fullName = `${contact.firstName || ""} ${contact.lastName || ""}`.toLowerCase();
21
+ const phoneNumber = ((_c = (_b = (_a = contact.phoneNumbers) == null ? void 0 : _a[0]) == null ? void 0 : _b.number) == null ? void 0 : _c.toLowerCase()) || "";
22
+ const query = searchQuery.toLowerCase();
23
+ return fullName.includes(query) || phoneNumber.includes(query);
24
+ });
25
+ setFilteredContacts(filtered);
26
+ }
27
+ }, [searchQuery, contacts]);
13
28
  useEffect(() => {
14
29
  (async () => {
15
- const {
16
- status
17
- } = await Contacts.requestPermissionsAsync();
18
- if (status === "granted") {
30
+ try {
31
+ setLoading(true);
19
32
  const {
20
- data
21
- } = await Contacts.getContactsAsync({
22
- fields: [Contacts.Fields.FirstName, Contacts.Fields.LastName, Contacts.Fields.PhoneNumbers, Contacts.Fields.Image]
23
- });
24
- if (data.length > 0) {
25
- const contacts2 = data;
26
- setContacts(contacts2);
33
+ status
34
+ } = await Contacts.requestPermissionsAsync();
35
+ if (status === "granted") {
36
+ const {
37
+ data
38
+ } = await Contacts.getContactsAsync({
39
+ fields: [Contacts.Fields.FirstName, Contacts.Fields.LastName, Contacts.Fields.PhoneNumbers, Contacts.Fields.Image, Contacts.Fields.ImageAvailable]
40
+ });
41
+ if (data.length > 0) {
42
+ const sortedContacts = data.sort((a, b) => {
43
+ const nameA = `${a.firstName || ""} ${a.lastName || ""}`.trim().toLowerCase();
44
+ const nameB = `${b.firstName || ""} ${b.lastName || ""}`.trim().toLowerCase();
45
+ return nameA.localeCompare(nameB);
46
+ });
47
+ const validContacts = sortedContacts.filter((contact) => contact.phoneNumbers && contact.phoneNumbers.length > 0);
48
+ console.log(`Total contacts with phone numbers: ${validContacts.length}`);
49
+ const contactsWithImages = validContacts.filter((contact) => contact.imageAvailable && contact.image);
50
+ console.log(`Contacts with images: ${contactsWithImages.length}`);
51
+ if (contactsWithImages.length > 0) {
52
+ console.log("Sample image data:", contactsWithImages[0].image);
53
+ }
54
+ setContacts(validContacts);
55
+ setFilteredContacts(validContacts);
56
+ }
27
57
  }
58
+ } catch (error) {
59
+ console.error("Error fetching contacts:", error);
60
+ } finally {
61
+ setLoading(false);
28
62
  }
29
63
  })();
30
64
  }, []);
31
65
  useEffect(() => {
32
- navigation.setOptions({
33
- headerShown: true,
34
- headerTitleAlign: "left",
35
- headerTitleStyle: {},
36
- headerLeft: (props) => /* @__PURE__ */ React__default.createElement(
37
- TouchableOpacity,
38
- {
39
- style: {
40
- paddingHorizontal: 10
41
- },
42
- onPress: () => navigation.goBack()
66
+ if (isFocused) {
67
+ navigation.setOptions({
68
+ headerShown: true,
69
+ headerTitleAlign: "left",
70
+ title: "Add from Contacts",
71
+ headerTitleStyle: {
72
+ fontWeight: "600"
43
73
  },
44
- /* @__PURE__ */ React__default.createElement(Ionicons, { color: "black", name: "chevron-back", size: 20 })
45
- ),
46
- headerRight: (props) => /* @__PURE__ */ React__default.createElement(Button, { className: "mr-2", onPress: () => sendInvitation(), disabled: selectedContacts.length > 0 ? false : true, variant: "link" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: `${selectedContacts.length > 0 ? "text-black" : "text-gray-500"}` }, "Send"))
47
- });
74
+ headerLeft: (props) => /* @__PURE__ */ React__default.createElement(TouchableOpacity, { style: {
75
+ paddingHorizontal: 10
76
+ }, onPress: () => navigation.goBack() }, /* @__PURE__ */ React__default.createElement(Ionicons, { color: Colors.slackBlack, name: "chevron-back", size: 20 })),
77
+ headerRight: (props) => /* @__PURE__ */ React__default.createElement(Button, { className: "mr-2", onPress: () => sendInvitation(), disabled: selectedContacts.length === 0, variant: "link" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: `${selectedContacts.length > 0 ? "text-black font-bold" : "text-gray-500"}` }, "Send"))
78
+ });
79
+ }
48
80
  }, [isFocused, navigation, selectedContacts]);
49
- const setSelectedContactsData = (item) => {
50
- let obj = {
81
+ const toggleContact = (item) => {
82
+ if (!item.phoneNumbers || item.phoneNumbers.length === 0)
83
+ return;
84
+ const contact = {
51
85
  id: item.id,
52
- name: item.firstName + " " + item.lastName,
86
+ name: `${item.firstName || ""} ${item.lastName || ""}`.trim(),
53
87
  mobile: item.phoneNumbers[0]
54
88
  };
55
- const resultArr = selectedContacts.filter((arrObj) => arrObj.id !== obj.id);
56
- if (resultArr.length === selectedContacts.length)
57
- resultArr.push(obj);
58
- setSelectedContacts(resultArr);
89
+ setSelectedContacts((prev) => {
90
+ const isSelected = prev.some((c) => c.id === contact.id);
91
+ if (isSelected) {
92
+ return prev.filter((c) => c.id !== contact.id);
93
+ } else {
94
+ return [...prev, contact];
95
+ }
96
+ });
97
+ };
98
+ const getInitials = (firstName, lastName) => {
99
+ const first = firstName ? firstName.charAt(0).toUpperCase() : "";
100
+ const last = lastName ? lastName.charAt(0).toUpperCase() : "";
101
+ return (first + last).substring(0, 2);
59
102
  };
60
103
  const renderContactList = ({
61
104
  item
62
105
  }) => {
63
- var _a, _b, _c, _d, _e;
64
- const title = (_b = (_a = item == null ? void 0 : item.firstName) != null ? _a : " " + (item == null ? void 0 : item.lastName)) != null ? _b : "";
65
- const matches = (_c = title == null ? void 0 : title.match(/\b(\w)/g)) != null ? _c : "";
66
- const acronym = (_e = (_d = matches == null ? void 0 : matches.join("")) == null ? void 0 : _d.substring(0, 2)) != null ? _e : "";
67
- return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { key: item.id, style: {
68
- marginTop: 5
69
- }, onPress: () => setSelectedContactsData(item) }, /* @__PURE__ */ React__default.createElement(Box, { className: "pl-4 pr-5 py-2" }, /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", className: "justify-between items-center" }, /* @__PURE__ */ React__default.createElement(HStack, { className: "items-center" }, item.imageAvailable ? /* @__PURE__ */ React__default.createElement(Image, { size: "sm", source: {
106
+ var _a, _b;
107
+ const isSelected = selectedContacts.some((c) => c.id === item.id);
108
+ const hasPhoneNumber = item.phoneNumbers && item.phoneNumbers.length > 0;
109
+ const initials = getInitials(item.firstName, item.lastName);
110
+ if (!hasPhoneNumber)
111
+ return null;
112
+ return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { key: item.id, onPress: () => toggleContact(item), style: styles.contactItem, disabled: !hasPhoneNumber, activeOpacity: 0.7 }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "justify-between items-center w-full" }, /* @__PURE__ */ React__default.createElement(HStack, { space: "md", className: "items-center space-x-3" }, item.imageAvailable && item.image && item.image.uri ? /* @__PURE__ */ React__default.createElement(Avatar, { size: "md", className: "bg-gray-400" }, /* @__PURE__ */ React__default.createElement(AvatarImage, { source: {
70
113
  uri: item.image.uri
71
- }, alt: item.firstName, className: "mx-2 px-2 py-2" }) : /* @__PURE__ */ React__default.createElement(Button, { className: "mx-2 px-2 py-2 bg-gray-500", size: "sm" }, /* @__PURE__ */ React__default.createElement(Avatar, { className: "bg-transparent", size: "sm" }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, { className: "text-white font-bold" }, acronym))), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { className: "color-gray-800 font-bold" }, item.firstName, " ", item.lastName), /* @__PURE__ */ React__default.createElement(Text, null, item.phoneNumbers[0].number))), /* @__PURE__ */ React__default.createElement(Checkbox, { onChange: () => setSelectedContactsData(item), value: item.id, isChecked: selectedContacts.filter((i) => i.id === item.id).length > 0 ? true : false, accessibilityLabel: item.firstName, "aria-label": item.firstName }, /* @__PURE__ */ React__default.createElement(CheckboxIndicator, null, /* @__PURE__ */ React__default.createElement(CheckboxIcon, { as: CheckIcon }))))));
114
+ }, alt: `${item.firstName || ""} ${item.lastName || ""}`.trim(), onError: (e) => console.log("Avatar image failed to load", e.nativeEvent.error), style: styles.avatarImage }), /* @__PURE__ */ React__default.createElement(AvatarFallbackText, null, initials)) : /* @__PURE__ */ React__default.createElement(Avatar, { size: "md", className: "bg-blue-500" }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, { style: styles.avatarText }, initials)), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { className: "text-gray-800 font-semibold text-base" }, item.firstName || "", " ", item.lastName || ""), /* @__PURE__ */ React__default.createElement(Text, { className: "text-gray-500 text-sm" }, ((_b = (_a = item.phoneNumbers) == null ? void 0 : _a[0]) == null ? void 0 : _b.number) || "No number"))), /* @__PURE__ */ React__default.createElement(Checkbox, { value: item.id, isChecked: isSelected, accessibilityLabel: `Select ${item.firstName}`, "aria-label": `Select ${item.firstName}` }, /* @__PURE__ */ React__default.createElement(CheckboxIndicator, { className: isSelected ? "bg-blue-500 border-blue-500" : "" }, /* @__PURE__ */ React__default.createElement(CheckboxIcon, { as: CheckIcon })))));
72
115
  };
73
116
  const sendInvitation = () => {
74
117
  var _a;
118
+ if (selectedContacts.length === 0)
119
+ return;
75
120
  const mobileNumbers = selectedContacts.map((i) => i.mobile.number);
76
121
  let numbers = "";
77
122
  mobileNumbers.forEach((phoneNumber) => {
@@ -79,46 +124,36 @@ import React__default,{useState,useEffect}from'react';import {Button,ButtonText,
79
124
  });
80
125
  numbers = numbers.slice(0, -1);
81
126
  Platform.OS === "ios" ? "&" : "?";
82
- const message = `Join me on ${config.APP_NAME} - it's faster, simpler way to work.Singup here from any device. ${(_a = organizationSharableLink == null ? void 0 : organizationSharableLink.getOrganizationSharableLink) != null ? _a : ""}`;
127
+ const message = `Join me on ${config.APP_NAME} - it's a faster, simpler way to work. Sign up here from any device: ${(_a = organizationSharableLink == null ? void 0 : organizationSharableLink.getOrganizationSharableLink) != null ? _a : ""}`;
83
128
  const url = Platform.OS === "android" ? `sms:${numbers}?body=${encodeURIComponent(message)}` : `sms:/open?addresses=${numbers}&body=${encodeURIComponent(message)}`;
84
129
  Linking.openURL(url);
85
130
  };
86
- return /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(Input, { className: "pl-4", variant: "underlined" }, /* @__PURE__ */ React__default.createElement(
87
- InputField,
88
- {
89
- type: "text",
90
- size: "xl",
91
- placeholderTextColor: "#404040",
92
- placeholder: "Search",
93
- onChange: ({
94
- nativeEvent: {
95
- eventCount,
96
- target,
97
- text
98
- }
99
- }) => {
100
- },
101
- autoCapitalize: "none",
102
- autoCorrect: false,
103
- className: "px-3 bg-gray-100 items-center text-black text-[14px]"
104
- }
105
- )), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(VirtualizedScrollView, null, /* @__PURE__ */ React__default.createElement(VStack, { space: "md", className: "pt-2" }, /* @__PURE__ */ React__default.createElement(
106
- FlatList,
107
- {
108
- style: {
109
- paddingHorizontal: 2
110
- },
111
- contentContainerStyle: {
112
- flex: 1
113
- },
114
- data: contacts && contacts.length > 0 ? contacts : [],
115
- renderItem: renderContactList,
116
- ListEmptyComponent: () => {
117
- return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { style: {
118
- marginTop: 5
119
- } }, /* @__PURE__ */ React__default.createElement(Box, { className: "bg-white py-2" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "md" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-5" }, /* @__PURE__ */ React__default.createElement(Text, null, "No contact found")))));
120
- },
121
- key: "add-from-contacts-search-list"
122
- }
123
- )))));
124
- };export{AddFromContacts as default};//# sourceMappingURL=AddFromContacts.js.map
131
+ return /* @__PURE__ */ React__default.createElement(SafeAreaView, { style: styles.container }, /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-2 bg-white" }, /* @__PURE__ */ React__default.createElement(Input, { size: "md", className: "bg-gray-100 rounded-lg" }, /* @__PURE__ */ React__default.createElement(InputSlot, null, /* @__PURE__ */ React__default.createElement(Feather, { name: "search", size: 16, color: "#9ca3af", style: {
132
+ marginLeft: 8
133
+ } })), /* @__PURE__ */ React__default.createElement(InputField, { placeholder: "Search contacts", placeholderTextColor: "#9ca3af", onChangeText: setSearchQuery, value: searchQuery, autoCapitalize: "none", autoCorrect: false, className: "text-black" }), searchQuery ? /* @__PURE__ */ React__default.createElement(InputSlot, null, /* @__PURE__ */ React__default.createElement(TouchableOpacity, { onPress: () => setSearchQuery(""), style: {
134
+ marginRight: 8
135
+ } }, /* @__PURE__ */ React__default.createElement(Ionicons, { name: "close-circle", size: 16, color: "#9ca3af" }))) : null)), loading ? /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 justify-center items-center" }, /* @__PURE__ */ React__default.createElement(Spinner, { size: "large", color: Colors.blue }), /* @__PURE__ */ React__default.createElement(Text, { className: "mt-4 text-gray-500" }, "Loading contacts...")) : /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, selectedContacts.length > 0 && /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-2 bg-gray-50 border-b border-gray-200" }, /* @__PURE__ */ React__default.createElement(Text, { className: "text-sm text-gray-500" }, selectedContacts.length, " ", selectedContacts.length === 1 ? "contact" : "contacts", " ", "selected")), /* @__PURE__ */ React__default.createElement(FlatList, { data: filteredContacts, renderItem: renderContactList, keyExtractor: (item) => item.id, contentContainerStyle: styles.listContainer, ListEmptyComponent: () => /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 justify-center items-center py-8" }, /* @__PURE__ */ React__default.createElement(Feather, { name: "users", size: 48, color: "#d1d5db" }), /* @__PURE__ */ React__default.createElement(Text, { className: "text-center text-gray-500 mt-4" }, searchQuery ? "No matching contacts found" : "No contacts found")) }))));
136
+ };
137
+ const styles = StyleSheet.create({
138
+ container: {
139
+ flex: 1,
140
+ backgroundColor: "white"
141
+ },
142
+ listContainer: {
143
+ flexGrow: 1
144
+ },
145
+ contactItem: {
146
+ paddingHorizontal: 16,
147
+ paddingVertical: 12,
148
+ borderBottomWidth: 1,
149
+ borderBottomColor: "#f3f4f6"
150
+ },
151
+ avatarText: {
152
+ color: "white",
153
+ fontWeight: "600"
154
+ },
155
+ avatarImage: {
156
+ width: "100%",
157
+ height: "100%"
158
+ }
159
+ });export{AddFromContacts as default};//# sourceMappingURL=AddFromContacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddFromContacts.js","sources":["../../../src/screens/Peoples/AddFromContacts.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n FormControl,\n Button,\n ButtonText,\n CheckIcon,\n FlatList,\n HStack,\n Avatar,\n AvatarImage,\n AvatarFallbackText,\n Image,\n Checkbox,\n CheckboxIndicator,\n CheckboxIcon,\n Textarea,\n TextareaInput,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { StyleSheet, TouchableOpacity, Linking, Platform } from 'react-native';\nimport Colors from '../../constants/Colors';\nimport colors from 'tailwindcss/colors';\nimport { useGetOrganizationSharableLinkQuery, useAddChannelMutation, useGetChannelsByUserQuery } from 'common/graphql';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign, Ionicons } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused } from '@react-navigation/native';\nimport * as Contacts from 'expo-contacts';\nimport { config } from '../../config';\n\nconst AddFromContacts = ({ navigation, route }: any) => {\n const isFocused = useIsFocused();\n const [contacts, setContacts] = useState([]);\n const [selectedContacts, setSelectedContacts] = useState<any>([]);\n const { data: organizationSharableLink } = useGetOrganizationSharableLinkQuery();\n\n useEffect(() => {}, [selectedContacts]);\n\n useEffect(() => {\n (async () => {\n const { status } = await Contacts.requestPermissionsAsync();\n if (status === 'granted') {\n const { data } = await Contacts.getContactsAsync({\n fields: [\n Contacts.Fields.FirstName,\n Contacts.Fields.LastName,\n Contacts.Fields.PhoneNumbers,\n Contacts.Fields.Image,\n ],\n // fields: [Contacts.Fields.Emails, Contacts.PHONE_NUMBERS, Contacts.IMAGE],\n });\n\n if (data.length > 0) {\n const contacts: any = data;\n setContacts(contacts);\n }\n }\n })();\n }, []);\n\n useEffect(() => {\n if (isFocused) {\n }\n\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerLeft: (props: any) => (\n <TouchableOpacity\n style={{ paddingHorizontal: 10 }}\n onPress={() => navigation.goBack()}\n // onPress={() => navigation.navigate(\"MainStack\",{screen:NavigationRoutes.Home, params: { orgName: route?.params?.orgName }})}\n >\n <Ionicons color=\"black\" name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => sendInvitation()}\n disabled={selectedContacts.length > 0 ? false : true}\n variant={'link'}\n >\n <ButtonText className={`${selectedContacts.length > 0 ? 'text-black' : 'text-gray-500'}`}>\n Send\n </ButtonText>\n </Button>\n ),\n });\n }, [isFocused, navigation, selectedContacts]);\n\n const setSelectedContactsData = (item: any) => {\n let obj = { id: item.id, name: item.firstName + ' ' + item.lastName, mobile: item.phoneNumbers[0] };\n const resultArr = selectedContacts.filter((arrObj: any) => arrObj.id !== obj.id);\n if (resultArr.length === selectedContacts.length) resultArr.push(obj);\n\n setSelectedContacts(resultArr);\n };\n\n const renderContactList = ({ item }: any) => {\n const title = item?.firstName ?? '' + ' ' + item?.lastName ?? '';\n const matches: any = title?.match(/\\b(\\w)/g) ?? '';\n const acronym: any = matches?.join('')?.substring(0, 2) ?? '';\n return (\n <TouchableOpacity key={item.id} style={{ marginTop: 5 }} onPress={() => setSelectedContactsData(item)}>\n <Box className=\"pl-4 pr-5 py-2\">\n <HStack space={'sm'} className=\"justify-between items-center\">\n <HStack className=\"items-center\">\n {item.imageAvailable ? (\n <Image\n size=\"sm\"\n source={{ uri: item.image.uri }}\n alt={item.firstName}\n className=\"mx-2 px-2 py-2\"\n />\n ) : (\n <Button className=\"mx-2 px-2 py-2 bg-gray-500\" size={'sm'}>\n <Avatar className=\"bg-transparent\" size={'sm'}>\n <AvatarFallbackText className=\"text-white font-bold\">\n {acronym}\n </AvatarFallbackText>\n </Avatar>\n </Button>\n )}\n\n <Box>\n <Text className=\"color-gray-800 font-bold\">\n {item.firstName} {item.lastName}\n </Text>\n <Text>{item.phoneNumbers[0].number}</Text>\n </Box>\n </HStack>\n\n <Checkbox\n onChange={() => setSelectedContactsData(item)}\n value={item.id}\n isChecked={selectedContacts.filter((i: any) => i.id === item.id).length > 0 ? true : false}\n accessibilityLabel={item.firstName}\n aria-label={item.firstName}\n >\n <CheckboxIndicator>\n <CheckboxIcon as={CheckIcon} />\n </CheckboxIndicator>\n </Checkbox>\n </HStack>\n </Box>\n </TouchableOpacity>\n );\n };\n\n const sendInvitation = () => {\n const mobileNumbers = selectedContacts.map((i: any) => i.mobile.number);\n let numbers = '';\n mobileNumbers.forEach((phoneNumber: string) => {\n numbers += `${phoneNumber.replace(/\\s/g, '')},`;\n });\n numbers = numbers.slice(0, -1);\n const smtDivider = Platform.OS === 'ios' ? '&' : '?';\n\n const message = `Join me on ${\n config.APP_NAME\n } - it's faster, simpler way to work.Singup here from any device. ${\n organizationSharableLink?.getOrganizationSharableLink ?? ''\n }`;\n // Linking.openURL(`sms:&addresses=${mobileNumbers}${smtDivider}body=${message}`);\n const url =\n Platform.OS === 'android'\n ? `sms:${numbers}?body=${encodeURIComponent(message)}`\n : `sms:/open?addresses=${numbers}&body=${encodeURIComponent(message)}`;\n Linking.openURL(url);\n };\n\n return (\n <Box className=\"flex-1 bg-white\">\n <Input className=\"pl-4\" variant=\"underlined\">\n <InputField\n //autoFocus={true}\n type=\"text\"\n size=\"xl\"\n placeholderTextColor={'#404040'}\n placeholder=\"Search\"\n onChange={({ nativeEvent: { eventCount, target, text } }) => {}}\n autoCapitalize={'none'}\n autoCorrect={false}\n className=\"px-3 bg-gray-100 items-center text-black text-[14px]\"\n />\n </Input>\n {/* \n <Textarea\n h={'$10'}\n bg={'$coolGray100'}\n // py={4}\n px={'$3'}\n >\n <TextareaInput placeholderTextColor={'#404040'} fontSize={14} placeholder=\"Search...\" />\n </Textarea> */}\n <Box className=\"flex-1\">\n <VirtualizedScrollView>\n <VStack space=\"md\" className=\"pt-2\">\n <FlatList\n style={{ paddingHorizontal: 2 }}\n contentContainerStyle={{\n flex: 1,\n }}\n data={contacts && contacts.length > 0 ? contacts : []}\n // data={[]}\n renderItem={renderContactList}\n ListEmptyComponent={() => {\n return (\n <TouchableOpacity style={{ marginTop: 5 }}>\n <Box className=\"bg-white py-2\">\n <VStack space=\"md\">\n <Box className=\"px-4 py-5\">\n <Text>No contact found</Text>\n </Box>\n </VStack>\n </Box>\n </TouchableOpacity>\n );\n }}\n key={'add-from-contacts-search-list'}\n />\n </VStack>\n </VirtualizedScrollView>\n </Box>\n </Box>\n );\n};\n\nexport default AddFromContacts;\n"],"names":["contacts","React"],"mappings":"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"}
1
+ {"version":3,"file":"AddFromContacts.js","sources":["../../../src/screens/Peoples/AddFromContacts.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n Button,\n ButtonText,\n CheckIcon,\n FlatList,\n HStack,\n Avatar,\n AvatarImage,\n AvatarFallbackText,\n Image,\n Checkbox,\n CheckboxIndicator,\n CheckboxIcon,\n Heading,\n Spinner,\n InputSlot,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { StyleSheet, TouchableOpacity, Linking, Platform } from 'react-native';\nimport Colors from '../../constants/Colors';\nimport { useGetOrganizationSharableLinkQuery } from 'common/graphql';\nimport { AntDesign, Ionicons, Feather } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { useIsFocused } from '@react-navigation/native';\nimport * as Contacts from 'expo-contacts';\nimport { config } from '../../config';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\nconst AddFromContacts = ({ navigation, route }: any) => {\n const isFocused = useIsFocused();\n const [contacts, setContacts] = useState<any[]>([]);\n const [filteredContacts, setFilteredContacts] = useState<any[]>([]);\n const [selectedContacts, setSelectedContacts] = useState<any>([]);\n const [searchQuery, setSearchQuery] = useState('');\n const [loading, setLoading] = useState(true);\n const { data: organizationSharableLink } = useGetOrganizationSharableLinkQuery();\n\n useEffect(() => {\n if (searchQuery.trim() === '') {\n setFilteredContacts(contacts);\n } else {\n const filtered = contacts.filter((contact) => {\n const fullName = `${contact.firstName || ''} ${contact.lastName || ''}`.toLowerCase();\n const phoneNumber = contact.phoneNumbers?.[0]?.number?.toLowerCase() || '';\n const query = searchQuery.toLowerCase();\n return fullName.includes(query) || phoneNumber.includes(query);\n });\n setFilteredContacts(filtered);\n }\n }, [searchQuery, contacts]);\n\n useEffect(() => {\n (async () => {\n try {\n setLoading(true);\n const { status } = await Contacts.requestPermissionsAsync();\n if (status === 'granted') {\n const { data } = await Contacts.getContactsAsync({\n fields: [\n Contacts.Fields.FirstName,\n Contacts.Fields.LastName,\n Contacts.Fields.PhoneNumbers,\n Contacts.Fields.Image,\n Contacts.Fields.ImageAvailable,\n ],\n });\n\n if (data.length > 0) {\n // Sort contacts alphabetically by name\n const sortedContacts = data.sort((a, b) => {\n const nameA = `${a.firstName || ''} ${a.lastName || ''}`.trim().toLowerCase();\n const nameB = `${b.firstName || ''} ${b.lastName || ''}`.trim().toLowerCase();\n return nameA.localeCompare(nameB);\n });\n\n // Filter out contacts without phone numbers\n const validContacts = sortedContacts.filter(\n (contact) => contact.phoneNumbers && contact.phoneNumbers.length > 0,\n );\n\n // Log information about contact images\n console.log(`Total contacts with phone numbers: ${validContacts.length}`);\n const contactsWithImages = validContacts.filter(\n (contact) => contact.imageAvailable && contact.image,\n );\n console.log(`Contacts with images: ${contactsWithImages.length}`);\n if (contactsWithImages.length > 0) {\n console.log('Sample image data:', contactsWithImages[0].image);\n }\n\n setContacts(validContacts);\n setFilteredContacts(validContacts);\n }\n }\n } catch (error) {\n console.error('Error fetching contacts:', error);\n } finally {\n setLoading(false);\n }\n })();\n }, []);\n\n useEffect(() => {\n if (isFocused) {\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n title: 'Add from Contacts',\n headerTitleStyle: {\n fontWeight: '600',\n },\n headerLeft: (props: any) => (\n <TouchableOpacity style={{ paddingHorizontal: 10 }} onPress={() => navigation.goBack()}>\n <Ionicons color={Colors.slackBlack} name=\"chevron-back\" size={20} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => sendInvitation()}\n disabled={selectedContacts.length === 0}\n variant={'link'}\n >\n <ButtonText\n className={`${selectedContacts.length > 0 ? 'text-black font-bold' : 'text-gray-500'}`}\n >\n Send\n </ButtonText>\n </Button>\n ),\n });\n }\n }, [isFocused, navigation, selectedContacts]);\n\n const toggleContact = (item: any) => {\n if (!item.phoneNumbers || item.phoneNumbers.length === 0) return;\n\n const contact = {\n id: item.id,\n name: `${item.firstName || ''} ${item.lastName || ''}`.trim(),\n mobile: item.phoneNumbers[0],\n };\n\n setSelectedContacts((prev) => {\n const isSelected = prev.some((c: any) => c.id === contact.id);\n if (isSelected) {\n return prev.filter((c: any) => c.id !== contact.id);\n } else {\n return [...prev, contact];\n }\n });\n };\n\n const getInitials = (firstName?: string, lastName?: string) => {\n const first = firstName ? firstName.charAt(0).toUpperCase() : '';\n const last = lastName ? lastName.charAt(0).toUpperCase() : '';\n return (first + last).substring(0, 2);\n };\n\n const renderContactList = ({ item }: any) => {\n const isSelected = selectedContacts.some((c: any) => c.id === item.id);\n const hasPhoneNumber = item.phoneNumbers && item.phoneNumbers.length > 0;\n const initials = getInitials(item.firstName, item.lastName);\n\n if (!hasPhoneNumber) return null;\n\n return (\n <TouchableOpacity\n key={item.id}\n onPress={() => toggleContact(item)}\n style={styles.contactItem}\n disabled={!hasPhoneNumber}\n activeOpacity={0.7}\n >\n <HStack space=\"md\" className=\"justify-between items-center w-full\">\n <HStack space=\"md\" className=\"items-center space-x-3\">\n {item.imageAvailable && item.image && item.image.uri ? (\n <Avatar size=\"md\" className=\"bg-gray-400\">\n <AvatarImage\n source={{ uri: item.image.uri }}\n alt={`${item.firstName || ''} ${item.lastName || ''}`.trim()}\n onError={(e) => console.log('Avatar image failed to load', e.nativeEvent.error)}\n style={styles.avatarImage}\n />\n <AvatarFallbackText>{initials}</AvatarFallbackText>\n </Avatar>\n ) : (\n <Avatar size=\"md\" className=\"bg-blue-500\">\n <AvatarFallbackText style={styles.avatarText}>{initials}</AvatarFallbackText>\n </Avatar>\n )}\n\n <Box>\n <Text className=\"text-gray-800 font-semibold text-base\">\n {item.firstName || ''} {item.lastName || ''}\n </Text>\n <Text className=\"text-gray-500 text-sm\">\n {item.phoneNumbers?.[0]?.number || 'No number'}\n </Text>\n </Box>\n </HStack>\n\n <Checkbox\n value={item.id}\n isChecked={isSelected}\n accessibilityLabel={`Select ${item.firstName}`}\n aria-label={`Select ${item.firstName}`}\n >\n <CheckboxIndicator className={isSelected ? 'bg-blue-500 border-blue-500' : ''}>\n <CheckboxIcon as={CheckIcon} />\n </CheckboxIndicator>\n </Checkbox>\n </HStack>\n </TouchableOpacity>\n );\n };\n\n const sendInvitation = () => {\n if (selectedContacts.length === 0) return;\n\n const mobileNumbers = selectedContacts.map((i: any) => i.mobile.number);\n let numbers = '';\n mobileNumbers.forEach((phoneNumber: string) => {\n numbers += `${phoneNumber.replace(/\\s/g, '')},`;\n });\n numbers = numbers.slice(0, -1);\n const smtDivider = Platform.OS === 'ios' ? '&' : '?';\n\n const message = `Join me on ${\n config.APP_NAME\n } - it's a faster, simpler way to work. Sign up here from any device: ${\n organizationSharableLink?.getOrganizationSharableLink ?? ''\n }`;\n\n const url =\n Platform.OS === 'android'\n ? `sms:${numbers}?body=${encodeURIComponent(message)}`\n : `sms:/open?addresses=${numbers}&body=${encodeURIComponent(message)}`;\n Linking.openURL(url);\n };\n\n return (\n <SafeAreaView style={styles.container}>\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2 bg-white\">\n <Input size=\"md\" className=\"bg-gray-100 rounded-lg\">\n <InputSlot>\n <Feather name=\"search\" size={16} color=\"#9ca3af\" style={{ marginLeft: 8 }} />\n </InputSlot>\n <InputField\n placeholder=\"Search contacts\"\n placeholderTextColor=\"#9ca3af\"\n onChangeText={setSearchQuery}\n value={searchQuery}\n autoCapitalize=\"none\"\n autoCorrect={false}\n className=\"text-black\"\n />\n {searchQuery ? (\n <InputSlot>\n <TouchableOpacity onPress={() => setSearchQuery('')} style={{ marginRight: 8 }}>\n <Ionicons name=\"close-circle\" size={16} color=\"#9ca3af\" />\n </TouchableOpacity>\n </InputSlot>\n ) : null}\n </Input>\n </Box>\n\n {loading ? (\n <Box className=\"flex-1 justify-center items-center\">\n <Spinner size=\"large\" color={Colors.blue} />\n <Text className=\"mt-4 text-gray-500\">Loading contacts...</Text>\n </Box>\n ) : (\n <Box className=\"flex-1\">\n {selectedContacts.length > 0 && (\n <Box className=\"px-4 py-2 bg-gray-50 border-b border-gray-200\">\n <Text className=\"text-sm text-gray-500\">\n {selectedContacts.length} {selectedContacts.length === 1 ? 'contact' : 'contacts'}{' '}\n selected\n </Text>\n </Box>\n )}\n\n <FlatList\n data={filteredContacts}\n renderItem={renderContactList}\n keyExtractor={(item) => item.id}\n contentContainerStyle={styles.listContainer}\n ListEmptyComponent={() => (\n <Box className=\"flex-1 justify-center items-center py-8\">\n <Feather name=\"users\" size={48} color=\"#d1d5db\" />\n <Text className=\"text-center text-gray-500 mt-4\">\n {searchQuery ? 'No matching contacts found' : 'No contacts found'}\n </Text>\n </Box>\n )}\n />\n </Box>\n )}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: 'white',\n },\n listContainer: {\n flexGrow: 1,\n },\n contactItem: {\n paddingHorizontal: 16,\n paddingVertical: 12,\n borderBottomWidth: 1,\n borderBottomColor: '#f3f4f6',\n },\n avatarText: {\n color: 'white',\n fontWeight: '600',\n },\n avatarImage: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default AddFromContacts;\n"],"names":["React"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messenger-box/slack-ui-mobile",
3
- "version": "10.0.3-alpha.33",
3
+ "version": "10.0.3-alpha.34",
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.33"
26
+ "@messenger-box/platform-mobile": "10.0.3-alpha.34"
27
27
  },
28
28
  "devDependencies": {
29
29
  "cp-cli": "^2.0.0"
@@ -48,5 +48,5 @@
48
48
  "typescript": {
49
49
  "definition": "lib/index.d.ts"
50
50
  },
51
- "gitHead": "c67e5498f430d4a67fc1996db6eb6e02a8b67c8f"
51
+ "gitHead": "33c7bdb4f36c40b6368a5c96fe6312de009188a1"
52
52
  }