upates delete file to trash file

This commit is contained in:
abhinav-grd 2021-09-28 12:39:59 +05:30
parent 5ae24449f5
commit 44f01d128c
3 changed files with 25 additions and 17 deletions

View file

@ -10,10 +10,10 @@ import { clearKeys, getKey, SESSION_KEYS } from 'utils/storage/sessionStorage';
import { import {
File, File,
getLocalFiles, getLocalFiles,
deleteFiles,
syncFiles, syncFiles,
updateMagicMetadata, updateMagicMetadata,
VISIBILITY_STATE, VISIBILITY_STATE,
trashFiles,
} from 'services/fileService'; } from 'services/fileService';
import styled from 'styled-components'; import styled from 'styled-components';
import LoadingBar from 'react-top-loading-bar'; import LoadingBar from 'react-top-loading-bar';
@ -49,7 +49,7 @@ import { LoadingOverlay } from 'components/LoadingOverlay';
import PhotoFrame from 'components/PhotoFrame'; import PhotoFrame from 'components/PhotoFrame';
import { import {
changeFilesVisibility, changeFilesVisibility,
getSelectedFileIds, getSelectedFiles,
sortFilesIntoCollections, sortFilesIntoCollections,
} from 'utils/file'; } from 'utils/file';
import SearchBar, { DateValue } from 'components/SearchBar'; import SearchBar, { DateValue } from 'components/SearchBar';
@ -413,10 +413,9 @@ export default function Gallery() {
const deleteFileHelper = async () => { const deleteFileHelper = async () => {
loadingBar.current?.continuousStart(); loadingBar.current?.continuousStart();
try { try {
const fileIds = getSelectedFileIds(selected); const selectedFiles = getSelectedFiles(selected, files);
await deleteFiles(fileIds); await trashFiles(selectedFiles);
setDeleted([...deleted, ...fileIds]); setDeleted([...deleted, ...selectedFiles.map((file) => file.id)]);
clearSelection();
} catch (e) { } catch (e) {
switch (e.status?.toString()) { switch (e.status?.toString()) {
case ServerErrorCodes.FORBIDDEN: case ServerErrorCodes.FORBIDDEN:

View file

@ -86,6 +86,14 @@ export const NEW_MAGIC_METADATA: MagicMetadata = {
count: 0, count: 0,
}; };
interface TrashRequest {
items: TrashRequestItems[];
}
interface TrashRequestItems {
fileID: number;
collectionID: number;
}
export const getLocalFiles = async () => { export const getLocalFiles = async () => {
const files: Array<File> = (await localForage.getItem<File[]>(FILES)) || []; const files: Array<File> = (await localForage.getItem<File[]>(FILES)) || [];
return files; return files;
@ -232,22 +240,23 @@ const removeDeletedCollectionFiles = async (
return files; return files;
}; };
export const deleteFiles = async (filesToDelete: number[]) => { export const trashFiles = async (filesToTrash: File[]) => {
try { try {
const token = getToken(); const token = getToken();
if (!token) { if (!token) {
return; return;
} }
await HTTPService.post( const trashRequest: TrashRequest = {
`${ENDPOINT}/files/delete`, items: filesToTrash.map((file) => ({
{ fileIDs: filesToDelete }, fileID: file.id,
null, collectionID: file.collectionID,
{ })),
'X-Auth-Token': token, };
} await HTTPService.post(`${ENDPOINT}/files/trash`, trashRequest, null, {
); 'X-Auth-Token': token,
});
} catch (e) { } catch (e) {
logError(e, 'delete failed'); logError(e, 'trash file failed');
throw e; throw e;
} }
}; };

View file

@ -54,7 +54,7 @@ export function sortFilesIntoCollections(files: File[]) {
return collectionWiseFiles; return collectionWiseFiles;
} }
export function getSelectedFileIds(selectedFiles: SelectedState) { function getSelectedFileIds(selectedFiles: SelectedState) {
const filesIDs: number[] = []; const filesIDs: number[] = [];
for (const [key, val] of Object.entries(selectedFiles)) { for (const [key, val] of Object.entries(selectedFiles)) {
if (typeof val === 'boolean' && val) { if (typeof val === 'boolean' && val) {