66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
import Constants from "expo-constants";
|
|
import * as ImagePicker from "expo-image-picker";
|
|
import { all, call, put, select, takeLatest } from "redux-saga/effects";
|
|
import { selectBodyshop } from "../user/user.selectors";
|
|
import { mediaUploadStart } from "./photos.actions";
|
|
import PhotosActionTypes from "./photos.types";
|
|
|
|
export function* onOpenImagePicker() {
|
|
yield takeLatest(PhotosActionTypes.OPEN_IMAGE_PICKER, openImagePickerAction);
|
|
}
|
|
export function* openImagePickerAction(jobid) {
|
|
try {
|
|
if (Constants.platform.ios) {
|
|
const cameraRollStatus =
|
|
yield ImagePicker.requestMediaLibraryPermissionsAsync();
|
|
const cameraStatus = yield ImagePicker.requestCameraPermissionsAsync();
|
|
if (
|
|
cameraRollStatus.status !== "granted" ||
|
|
cameraStatus.status !== "granted"
|
|
) {
|
|
alert("Sorry, we need these permissions to make this work!");
|
|
return;
|
|
}
|
|
}
|
|
let result = yield ImagePicker.launchImageLibraryAsync({
|
|
mediaTypes: ["images", "videos"],
|
|
aspect: [4, 3],
|
|
quality: 1,
|
|
allowsMultipleSelection: true,
|
|
});
|
|
if (!(result.canceled)) {
|
|
yield put(mediaUploadStart(result.assets));
|
|
}
|
|
} catch (error) {
|
|
console.log("Saga Error: open Picker", error);
|
|
}
|
|
}
|
|
export function* onMediaUploadStart() {
|
|
yield takeLatest(PhotosActionTypes.MEDIA_UPLOAD_START, mediaUploadStartAction);
|
|
}
|
|
export function* mediaUploadStartAction(photos) {
|
|
try {
|
|
console.log("Got to the Photo Saga.", photos);
|
|
|
|
console.log("upload", photos)
|
|
|
|
//get bodyshop state
|
|
const bodyshop = yield select(selectBodyshop);
|
|
if (bodyshop.uselocalmediaserver) {
|
|
//upload to LMS
|
|
} else {
|
|
//Upload to img proxy
|
|
}
|
|
|
|
|
|
} catch (error) {
|
|
console.log("Saga Error: open upload", error);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export function* photosSagas() {
|
|
yield all([call(onOpenImagePicker), call(onMediaUploadStart)]);
|
|
}
|