upates delete file to trash file
This commit is contained in:
parent
5ae24449f5
commit
44f01d128c
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue