diff options
author | Ivan Chen <ivan@tagg.id> | 2021-03-18 19:35:38 -0400 |
---|---|---|
committer | Ivan Chen <ivan@tagg.id> | 2021-03-18 19:35:38 -0400 |
commit | ccd7d12fa20591b19ac8c8df0c9146740667f90f (patch) | |
tree | 4803fdb37326e606957e3ac61fa0c4d31709430c | |
parent | 5bb8376cd6f3c87af8011c6d523c5a32813970fb (diff) |
scroll view fix, search for case insensitive
-rw-r--r-- | src/components/friends/InviteFriendTile.tsx | 4 | ||||
-rw-r--r-- | src/screens/profile/InviteFriendsScreen.tsx | 62 | ||||
-rw-r--r-- | src/services/UserFriendsService.ts | 6 |
3 files changed, 34 insertions, 38 deletions
diff --git a/src/components/friends/InviteFriendTile.tsx b/src/components/friends/InviteFriendTile.tsx index 9613b1ac..3fbf2e73 100644 --- a/src/components/friends/InviteFriendTile.tsx +++ b/src/components/friends/InviteFriendTile.tsx @@ -1,5 +1,6 @@ import React, {useEffect, useState} from 'react'; import { + Alert, StyleSheet, Text, TouchableOpacity, @@ -7,6 +8,7 @@ import { View, } from 'react-native'; import {TAGG_LIGHT_BLUE} from '../../constants'; +import {ERROR_SOMETHING_WENT_WRONG} from '../../constants/strings'; import {inviteFriendService} from '../../services'; import {normalize} from '../../utils'; @@ -25,6 +27,8 @@ const InviteFriendTile: React.FC<InviteFriendTileProps> = ({item}) => { ); if (response) { setInvited(response); + } else { + Alert.alert(ERROR_SOMETHING_WENT_WRONG); } }; diff --git a/src/screens/profile/InviteFriendsScreen.tsx b/src/screens/profile/InviteFriendsScreen.tsx index a57b72b6..06e98b90 100644 --- a/src/screens/profile/InviteFriendsScreen.tsx +++ b/src/screens/profile/InviteFriendsScreen.tsx @@ -11,6 +11,7 @@ import { Linking, StatusBar, TouchableWithoutFeedback, + ScrollView, } from 'react-native'; import {useDispatch, useStore} from 'react-redux'; import {ProfilePreviewType, ScreenType} from '../../types'; @@ -21,6 +22,7 @@ import { normalize, SCREEN_HEIGHT, SCREEN_WIDTH, + StatusBarHeight, } from '../../utils'; import {checkPermission} from 'react-native-contacts'; import {usersFromContactsService} from '../../services/UserFriendsService'; @@ -79,24 +81,20 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({ * Main handler for changes in query. */ useEffect(() => { + console.log('query is now ', query); const search = async () => { if (query.length > 0) { const searchResultsUsers = usersFromContacts.filter( - (item: ProfilePreviewType) => { - if ( - item.first_name.includes(query) || - item.last_name.includes(query) || - item.username.includes(query) - ) { - return item; - } - }, + (item: ProfilePreviewType) => + item.first_name.toLowerCase().includes(query) || + item.last_name.toLowerCase().includes(query) || + item.username.toLowerCase().includes(query), + ); + const searchResultsNonUsers = nonUsersFromContacts.filter( + (item) => + item.firstName.toLowerCase().includes(query) || + item.lastName.toLowerCase().includes(query), ); - const searchResultsNonUsers = nonUsersFromContacts.filter((item) => { - if (item.firstName.includes(query) || item.lastName.includes(query)) { - return item; - } - }); const sanitizedResult = { usersFromContacts: searchResultsUsers, nonUsersFromContacts: searchResultsNonUsers, @@ -138,7 +136,6 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({ const filteredUsers = users.filter( (user) => user.username !== item.username, ); - console.log('filteredUsers: ', filteredUsers); setResults({ ...results, usersFromContacts: filteredUsers, @@ -155,24 +152,14 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({ </> ); - const NonUsersFromContacts = () => ( - <> - <FlatList - contentContainerStyle={styles.nonUsersFlatListContainer} - showsVerticalScrollIndicator={false} - data={results.nonUsersFromContacts} - keyExtractor={(item) => item.phoneNumber} - renderItem={({item}) => <InviteFriendTile item={item} />} - /> - </> - ); - return ( <View style={styles.mainContainer}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}> - <SafeAreaView> + <SafeAreaView style={{marginTop: HeaderHeight + StatusBarHeight}}> <StatusBar barStyle="dark-content" /> - <View style={styles.body}> + <ScrollView + style={styles.body} + contentContainerStyle={{paddingBottom: SCREEN_HEIGHT * 0.1}}> <View style={styles.headerContainer}> <Text style={styles.headerText}> Sharing is caring, invite friends, and create moments together! @@ -193,7 +180,7 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({ autoCapitalize="none" autoCorrect={false} onChangeText={(text) => { - setQuery(text); + setQuery(text.toLowerCase()); }} onBlur={() => { Keyboard.dismiss(); @@ -212,9 +199,16 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({ </View> <View style={styles.subheader}> <Text style={styles.subheaderText}>Invite your friends!</Text> - <NonUsersFromContacts /> + <FlatList + contentContainerStyle={styles.nonUsersFlatListContainer} + showsVerticalScrollIndicator={false} + scrollEnabled={false} + data={results.nonUsersFromContacts} + keyExtractor={(item) => item.phoneNumber} + renderItem={({item}) => <InviteFriendTile item={item} />} + /> </View> - </View> + </ScrollView> </SafeAreaView> </TouchableWithoutFeedback> <TabsGradient /> @@ -225,8 +219,8 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({ const styles = StyleSheet.create({ mainContainer: {backgroundColor: 'white', height: SCREEN_HEIGHT}, body: { - paddingTop: HeaderHeight * 1.3, - height: SCREEN_HEIGHT * 0.8, + paddingTop: 10, + height: SCREEN_HEIGHT, backgroundColor: '#fff', }, headerContainer: { diff --git a/src/services/UserFriendsService.ts b/src/services/UserFriendsService.ts index c6679bef..cea20fbe 100644 --- a/src/services/UserFriendsService.ts +++ b/src/services/UserFriendsService.ts @@ -239,10 +239,8 @@ export const inviteFriendService = async ( invitee_last_name: inviteeLastName, }), }); - if (response.status === 201) { - const response_body = await response.json(); - return response_body; + if (response.status === 201 || response.status === 200) { + return await response.json(); } - Alert.alert(ERROR_SOMETHING_WENT_WRONG); return false; }; |