Multiple photos on new post

This commit is contained in:
Adolfo Reyna
2022-12-22 23:33:37 -05:00
parent 1c0dbbbe84
commit 4c95095882
2 changed files with 50 additions and 45 deletions

2
App.js
View File

@@ -71,7 +71,7 @@ async function registerForPushNotificationsAsync() {
} }
token = (await Notifications.getExpoPushTokenAsync({ projectId: "c2bb4d4e-4d4d-4f34-a873-7cad78c6023c", })).data; token = (await Notifications.getExpoPushTokenAsync({ projectId: "c2bb4d4e-4d4d-4f34-a873-7cad78c6023c", })).data;
} else { } else {
alert('Must use physical device for Push Notifications'); //alert('Must use physical device for Push Notifications');
} }
return token; return token;
} }

View File

@@ -9,7 +9,7 @@ import i18n from "../i18nMessages";
import Media from '../components/Media'; import Media from '../components/Media';
let NewPostView = ({writeTo})=>{ let NewPostView = ({ writeTo }) => {
let [postContent, setPostContent] = useState(''); let [postContent, setPostContent] = useState('');
let [extraContent, setExtraContent] = useState([]); let [extraContent, setExtraContent] = useState([]);
const [photo, setPhoto] = React.useState(null); const [photo, setPhoto] = React.useState(null);
@@ -20,21 +20,25 @@ let NewPostView = ({writeTo})=>{
mediaTypes: ImagePicker.MediaTypeOptions.Images, mediaTypes: ImagePicker.MediaTypeOptions.Images,
//allowsEditing: true, //allowsEditing: true,
//aspect: [4, 3], //aspect: [4, 3],
//quality: 1, quality: 0.7,
allowsMultipleSelection: true, allowsMultipleSelection: true,
}); });
if (!result.cancelled) { if (!result.cancelled) {
setPhoto(result); setPhoto(result);
let newPhotoURL = await handleUploadPhoto(result); let newPhotoURLs = await handleUploadPhoto(result);
let newExtraContent = ["@image:" + newPhotoURL].concat(extraContent); let newExtraContent = [extraContent]
newPhotoURLs.forEach((newPhotoURL)=>{
newExtraContent = ["@image:" + newPhotoURL].concat(newExtraContent);
});
setExtraContent(newExtraContent); setExtraContent(newExtraContent);
console.log(newExtraContent.join(" "));
setPhoto(null); setPhoto(null);
} }
}; };
const handleUploadPhoto = async (photo) => { const handleUploadPhoto = async (results) => {
if (!photo) return; if (!results) return;
let allUploads = [];
results.assets.forEach(photo => {
const uri = const uri =
Platform.OS === "android" Platform.OS === "android"
? photo.uri ? photo.uri
@@ -50,23 +54,24 @@ let NewPostView = ({writeTo})=>{
type, type,
}); });
try { try {
let uploadedFile = await fetch("https://social.emmint.com/upload.php", { allUploads.push(fetch("https://social.emmint.com/upload.php", {
method: "POST", method: "POST",
body: formData, body: formData,
headers: { "Content-Type": "multipart/form-data" } headers: { "Content-Type": "multipart/form-data" }
}) })
.then((res) => res.json()) .then((res) => res.json())
.then((data) => { .then((data) => {
console.log(data);
return data.fileName; return data.fileName;
}) })
.catch((err) => console.error(err)); .catch((err) => console.error(err)));
return uploadedFile;
} catch (err) { } catch (err) {
console.log(err); console.log(err);
alert("Something went wrong"); alert("Something went wrong");
} }
});
uploadedFiles = Promise.all(allUploads);
return uploadedFiles;
}; };
const handleNewPostButton = async () => { const handleNewPostButton = async () => {
@@ -81,14 +86,14 @@ let NewPostView = ({writeTo})=>{
return ( return (
<SafeAreaView> <SafeAreaView>
<View style={{padding: 10}}> <View style={{ padding: 10 }}>
<View style={{flexDirection:"row", marginBottom:10, justifyContent:"space-around"}}> <View style={{ flexDirection: "row", marginBottom: 10, justifyContent: "space-around" }}>
<Text style={{fontSize: 25}}>{i18n.t("message.statusUpdate")}:</Text> <Text style={{ fontSize: 25 }}>{i18n.t("message.statusUpdate")}:</Text>
<Button icon="send" mode="outlined" onPress={handleNewPostButton}> <Button icon="send" mode="outlined" onPress={handleNewPostButton}>
{i18n.t("message.post")} {i18n.t("message.post")}
</Button> </Button>
</View> </View>
<Divider bold={true}/> <Divider bold={true} />
<TextInput <TextInput
value={postContent} value={postContent}
onChangeText={setPostContent} onChangeText={setPostContent}
@@ -103,7 +108,7 @@ let NewPostView = ({writeTo})=>{
autoFocus={true} autoFocus={true}
/> />
<Divider bold={true} /> <Divider bold={true} />
<View style={{flexDirection:"row", marginTop:10, justifyContent:"space-around"}}> <View style={{ flexDirection: "row", marginTop: 10, justifyContent: "space-around" }}>
<Button icon="add-a-photo" mode="outlined" onPress={pickImage}> <Button icon="add-a-photo" mode="outlined" onPress={pickImage}>
Add Photos Add Photos
</Button> </Button>