Changin to material icons

This commit is contained in:
aeroreyna
2022-03-07 16:10:43 -08:00
parent b01d437a73
commit 98201c8948
4 changed files with 79 additions and 18 deletions

37
API.js
View File

@@ -17,6 +17,23 @@ let getCall = async (path = "", params = {}) => {
})
}
let deleteCall = async (path = "", params = {}) => {
let queryParams = "?";
Object.keys(params).forEach(p => {
queryParams += p + "=" + params[p] + "&"
});
return fetch(baseUrl + path + queryParams, {
method: 'DELETE',
mode: 'cors',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
}
}).then(response => response.json()).catch((error) => {
console.error(error);
})
}
let postCall = async (path, params) => {
return fetch(baseUrl + path, {
method: 'POST',
@@ -112,9 +129,13 @@ const API = {
if (userid) return getCall("/post/usr/" + userid);
return getCall("/post/");
},
newPost(content, toProfile) {
deletePost(postid){
return deleteCall("/post/" + postid);
},
newPost(content, toProfile, isNews) {
//Content is expected to be a string.
let params = { content };
if(isNews) params.nonOrganicType = "News"
if (toProfile && CurrentUserId !== toProfile)
params.toProfile = toProfile;
return postCall("/post/", params);
@@ -157,8 +178,8 @@ const API = {
getMyProfile() {
return getCall("/user/" + CurrentProfile);
},
updateMyProfile(profile) {
return postCall("/user/myProfile", profile);
updateMyProfile(profile, data) {
return postCall("/user/myProfile", {profile, data});
},
searchProfiles(query){
return getCall("/user/search", query ? {query} : {}).then((data)=>{
@@ -180,6 +201,9 @@ const API = {
getUserProfile(profileid, refresh=false) {
return getProfileFromCache(profileid, refresh);
},
deleteProfile(profileid){
return deleteCall("/user/" + profileid);
},
currentProfileId() {
if (!CurrentProfile) this.isLoggedIn(); //replace with cookie
return CurrentProfile;
@@ -245,6 +269,13 @@ const API = {
},
unsubscribeToGroup(groupid){
return getCall("/user/groups/" + groupid + "/unsubscribe");
},
//Payments
paymentIntent(userid, price, description){
return postCall("/payments/intent", {userid, price, description});
},
paymentRegister(userid, result){
return postCall("/payments/register/", {userid, result});
}
}

View File

@@ -5,6 +5,8 @@ import API from './../API.js';
import Post from './../components/Post.js';
import { Provider as PaperProvider } from 'react-native-paper';
import AwesomeIcon from 'react-native-vector-icons/FontAwesome';
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
import NewPost from "./../components/NewPost.js";
@@ -29,11 +31,12 @@ let Feed = ({ navigation, route }) => {
return (
<PaperProvider settings={{
icon: props => <AwesomeIcon {...props} />,
icon: props => <MaterialIcons {...props} />,
}}>
<SafeAreaView style={styles.container}>
<View>
<ScrollView>
<NewPost />
{
Posts.map((post, i) => {
return (
@@ -57,6 +60,7 @@ const styles = StyleSheet.create({
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: "#edf2f7"
backgroundColor: "#edf2f7",
width: "100%"
},
});

View File

@@ -1,19 +1,45 @@
import React, { useState } from 'react';
import { Text, View, TextInput, Button, StyleSheet } from 'react-native';
import { View, StyleSheet } from 'react-native';
import { TextInput, Button } from 'react-native-paper';
import API from './../API.js';
import { useNavigation } from '@react-navigation/native';
let NewPost = ()=>{
let [query, setQuery] = useState('');
let NewPost = () => {
let [postContent, setPostContent] = useState('');
const navigation = useNavigation();
return (
<View style={styles.mainView}>
return (
<View style={styles.newPost}>
<TextInput
label="New Post"
value={postContent}
onChangeText={setPostContent}
mode="outlined"
multiline={true}
/>
{
postContent ? (
<View style={{ flexDirection: "row", justifyContent: 'flex-end' }}>
<Button icon="add-a-photo" mode="outlined"></Button>
<Button icon="send" mode="outlined" onPress={() => {
API.newPost(postContent).then((newPost) => {
console.log(newPost);
setPostContent('')
});
}}>Post</Button>
</View>
) : undefined
}
</View>
);
</View>
);
}
export default NewPost;
const styles = StyleSheet.create ({
const styles = StyleSheet.create({
newPost: {
margin: 10
}
});

View File

@@ -24,10 +24,10 @@ let Post = ({ post, viewer }) => {
</Card.Content>
<Card.Actions style={{ flexDirection: "row", flow: 4, justifyContent: 'space-evenly' }}>
<Button icon={post.reactions[viewer._id] ? "heart" : "heart-o"} style={{ flow: 1 }} >{Object.keys(post.reactions).length}</Button>
<Button icon="comment-o" style={{ flow: 1 }} onPress={()=>{changeshowCommentsB(!showCommentsB)}} >{post.comments.length}</Button>
<Button icon="share-square-o" style={{ flow: 1 }} ></Button>
<Button icon={!post.bookmarks || !post.bookmarks.includes(viewer._id) ? "bookmark-o" : "bookmark"} style={{ flow: 1 }} ></Button>
<Button icon={post.reactions[viewer._id] ? "favorite" : "favorite-border"} style={{ flow: 1 }} >{Object.keys(post.reactions).length}</Button>
<Button icon="forum" style={{ flow: 1 }} onPress={()=>{changeshowCommentsB(!showCommentsB)}} >{post.comments.length}</Button>
<Button icon="ios-share" style={{ flow: 1 }} ></Button>
<Button icon={!post.bookmarks || !post.bookmarks.includes(viewer._id) ? "bookmark-outline" : "bookmark"} style={{ flow: 1 }} ></Button>
</Card.Actions>
{
showCommentsB &&