Merge pull request #8 from ente-io/handle_subscription_errors

Handle subscription errors
This commit is contained in:
Abhinav-grd 2021-02-09 15:09:46 +05:30 committed by GitHub
commit e1d9cc9aa6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 70 additions and 22 deletions

View file

@ -11,19 +11,26 @@ function CollectionDropZone({
refetchData,
collectionAndItsLatestFile,
setProgressView,
progressBarProps
progressBarProps,
setErrorCode
}) {
const upload = async (acceptedFiles) => {
const token = getToken();
closeModal();
progressBarProps.setPercentComplete(0);
setProgressView(true);
try {
const token = getToken();
closeModal();
progressBarProps.setPercentComplete(0);
setProgressView(true);
await UploadService.uploadFiles(acceptedFiles, collectionAndItsLatestFile, token, progressBarProps);
refetchData();
setProgressView(false);
await UploadService.uploadFiles(acceptedFiles, collectionAndItsLatestFile, token, progressBarProps);
refetchData();
} catch (err) {
if (err.response)
setErrorCode(err.response.status);
}
finally {
setProgressView(false);
}
}
return (
<DropzoneWrapper

View file

@ -7,7 +7,7 @@ import { getToken } from 'utils/common/key';
export default function CreateCollection(props) {
const { acceptedFiles, setProgressView, progressBarProps, refetchData, modalView, closeModal, closeUploadModal } = props;
const { acceptedFiles, setProgressView, progressBarProps, refetchData, modalView, closeModal, closeUploadModal, setErrorCode } = props;
const [albumName, setAlbumName] = useState("");
const handleChange = (event) => { setAlbumName(event.target.value); }
@ -27,22 +27,31 @@ export default function CreateCollection(props) {
setAlbumName(commonPathPrefix);
}, [acceptedFiles]);
const handleSubmit = async (event) => {
const token = getToken();
event.preventDefault();
try {
const token = getToken();
event.preventDefault();
closeModal();
closeUploadModal();
closeModal();
closeUploadModal();
const collection = await createAlbum(albumName);
const collection = await createAlbum(albumName);
const collectionAndItsLatestFile: CollectionAndItsLatestFile = { collection, file: null }
const collectionAndItsLatestFile: CollectionAndItsLatestFile = { collection, file: null }
progressBarProps.setPercentComplete(0);
setProgressView(true);
progressBarProps.setPercentComplete(0);
setProgressView(true);
await UploadService.uploadFiles(acceptedFiles, collectionAndItsLatestFile, token, progressBarProps);
refetchData();
setProgressView(false);
await UploadService.uploadFiles(acceptedFiles, collectionAndItsLatestFile, token, progressBarProps);
refetchData();
}
catch (err) {
if (err.response)
setErrorCode(err.response.status);
}
finally {
setProgressView(false);
}
}
return (
<Modal

View file

@ -0,0 +1,22 @@
import React from "react";
import { Alert } from "react-bootstrap";
import constants from "utils/strings/constants";
export default function ErrorAlert({ errorCode }) {
let errorMessage;
switch (errorCode) {
case 402:
errorMessage = constants.SUBSCRIPTION_EXPIRED;
break;
case 426:
errorMessage = constants.STORAGE_QUOTA_EXCEEDED;
default:
errorMessage = errorCode;
}
console.log(errorCode);
return (
<Alert variant={'danger'} style={{ display: errorCode ? 'block' : 'none' }}>
{errorMessage}
</Alert>
)
}

View file

@ -29,6 +29,7 @@ import {
getLocalCollections,
} from 'services/collectionService';
import constants from 'utils/strings/constants';
import ErrorAlert from './components/ErrorAlert';
const DATE_CONTAINER_HEIGHT = 45;
const IMAGE_CONTAINER_HEIGHT = 200;
@ -120,6 +121,8 @@ export default function Gallery(props) {
maxSpreadZoom: 5,
});
const fetching: { [k: number]: boolean } = {};
const [errorCode, setErrorCode] = useState<number>(null);
const [sinceTime, setSinceTime] = useState(0);
const [progress, setProgress] = useState(0);
@ -335,6 +338,7 @@ export default function Gallery(props) {
return (
<>
<ErrorAlert errorCode={errorCode} />
<LoadingBar
color="#007bff"
progress={progress}
@ -351,6 +355,7 @@ export default function Gallery(props) {
showUploadModal={props.showUploadModal}
collectionAndItsLatestFile={collectionAndItsLatestFile}
refetchData={syncWithRemote}
setErrorCode={setErrorCode}
/>
{filteredData.length ? (
<Container>

View file

@ -141,6 +141,7 @@ class UploadService {
} catch (e) {
console.log(e);
throw e;
}
}
private async uploadHelper(progressBarProps, rawFile, collection, token) {
@ -160,6 +161,7 @@ class UploadService {
}
catch (e) {
console.log(e);
throw e;
}
}
@ -246,6 +248,7 @@ class UploadService {
};
} catch (e) {
console.log("error uploading to bucket " + e);
throw e;
}
}

View file

@ -51,7 +51,9 @@ const englishConstants = {
2: "Uploading your Files",
3: "Files Uploaded Successfully !!!"
},
OF: 'of'
OF: 'of',
SUBSCRIPTION_EXPIRED: 'You don\'t have a active subscription plan!! Please get one in the mobile app',
STORAGE_QUOTA_EXCEEDED:'You have exceeded your designated storage Quota, please upgrade your plan to add more files',
};
export default englishConstants;