Skip to content

Instantly share code, notes, and snippets.

@yoavniran
Created September 14, 2020 11:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yoavniran/d83de806f20920dbe724ba3bfd7d5e11 to your computer and use it in GitHub Desktop.
Save yoavniran/d83de806f20920dbe724ba3bfd7d5e11 to your computer and use it in GitHub Desktop.
react-native uploady demo - upload
const Upload = () => {
const [uploadUrl, setUploadUrl] = useState(false);
const uploadyContext = useContext(UploadyContext);
useItemFinishListener((item) => {
const response = JSON.parse(item.uploadResponse.data);
console.log(`item ${item.id} finished uploading, response was: `, response);
setUploadUrl(response.url);
});
useItemErrorListener((item) => {
console.log(`item ${item.id} upload error !!!! `, item);
});
useItemStartListener((item) => {
console.log(`item ${item.id} starting to upload,name = ${item.file.name}`);
});
const pickFile = useCallback(async () => {
try {
const res = await DocumentPicker.pick({
type: [DocumentPicker.types.images],
});
uploadyContext.upload(res);
} catch (err) {
if (DocumentPicker.isCancel(err)) {
console.log("User cancelled the picker, exit any dialogs or menus and move on");
} else {
throw err;
}
}
}, [uploadyContext]);
return (
<View>
<Button title="Choose File" onPress={pickFile} />
{uploadUrl && <Image source={{ uri: uploadUrl }} style={styles.uploadedImage} />}
</View>
);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment