beerbuddy/react-native/app/store/uploadImage.ts
2024-02-10 13:52:47 -08:00

41 lines
1.1 KiB
TypeScript

import { Alert } from "react-native";
import * as ImagePicker from "expo-image-picker";
import mime from "mime";
const uploadImage = async (storeKey: string) => {
// No permissions request is necessary for launching the image library
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
allowsEditing: true,
aspect: [4, 3],
quality: 1,
});
if (!result.canceled) {
const image = result.assets[0];
const formData = new FormData();
formData.append("file", {
uri: image.uri,
type: mime.getType(image.uri),
name: "file",
} as unknown as File);
const res = await fetch(
`${process.env.EXPO_PUBLIC_BACKEND_URL}/?` +
new URLSearchParams({
storeKey: storeKey,
}),
{
method: "PUT",
body: formData,
mode: "cors",
redirect: "follow",
}
);
if (!res.ok) {
Alert.alert("Error!", "Server error! Please report to ak95@riseup.net");
}
return image.uri;
}
};
export default uploadImage;