more corrections
This commit is contained in:
parent
6ac4e7a269
commit
e8ae13221e
|
@ -165,7 +165,7 @@ export const getCollectionLatestFile = (
|
||||||
const collectionMap = new Map<number, collection>();
|
const collectionMap = new Map<number, collection>();
|
||||||
|
|
||||||
collections.forEach((collection) =>
|
collections.forEach((collection) =>
|
||||||
collectionMap.set(Number(collection.id), collection)
|
collectionMap.set(collection.id, collection)
|
||||||
);
|
);
|
||||||
files.forEach((file) => {
|
files.forEach((file) => {
|
||||||
if (!latestFile.has(file.collectionID)) {
|
if (!latestFile.has(file.collectionID)) {
|
||||||
|
@ -188,7 +188,7 @@ export const getFavItemIds = async (files: file[]): Promise<Set<number>> => {
|
||||||
|
|
||||||
return new Set(
|
return new Set(
|
||||||
files
|
files
|
||||||
.filter((file) => file.collectionID === Number(favCollection.id))
|
.filter((file) => file.collectionID === favCollection.id)
|
||||||
.map((file): number => file.id)
|
.map((file): number => file.id)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -275,7 +275,9 @@ export const addToFavorites = async (file: file) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const removeFromFavorites = async (file: file) => {
|
export const removeFromFavorites = async (file: file) => {
|
||||||
let favCollection: collection = await localForage.getItem<collection>(FAV_COLLECTION);
|
let favCollection: collection = await localForage.getItem<collection>(
|
||||||
|
FAV_COLLECTION
|
||||||
|
);
|
||||||
await removeFromCollection(favCollection, [file]);
|
await removeFromCollection(favCollection, [file]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -287,7 +289,7 @@ const addtoCollection = async (collection: collection, files: file[]) => {
|
||||||
params['collectionID'] = collection.id;
|
params['collectionID'] = collection.id;
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
files.map(async (file) => {
|
files.map(async (file) => {
|
||||||
file.collectionID = Number(collection.id);
|
file.collectionID = collection.id;
|
||||||
const newEncryptedKey: keyEncryptionResult = await worker.encryptToB64(
|
const newEncryptedKey: keyEncryptionResult = await worker.encryptToB64(
|
||||||
file.key,
|
file.key,
|
||||||
collection.key
|
collection.key
|
||||||
|
@ -341,10 +343,13 @@ const removeFromCollection = async (collection: collection, files: file[]) => {
|
||||||
|
|
||||||
const setLocalFavoriteCollection = async (collections: collection[]) => {
|
const setLocalFavoriteCollection = async (collections: collection[]) => {
|
||||||
const localFavCollection = await localForage.getItem(FAV_COLLECTION);
|
const localFavCollection = await localForage.getItem(FAV_COLLECTION);
|
||||||
if (localFavCollection) return;
|
if (localFavCollection) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const favCollection = collections.filter(
|
const favCollection = collections.filter(
|
||||||
(collection) => collection.type == CollectionType.favorites
|
(collection) => collection.type == CollectionType.favorites
|
||||||
);
|
);
|
||||||
if (favCollection.length > 0)
|
if (favCollection.length > 0) {
|
||||||
await localForage.setItem(FAV_COLLECTION, favCollection[0]);
|
await localForage.setItem(FAV_COLLECTION, favCollection[0]);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -69,7 +69,7 @@ export const localFiles = async () => {
|
||||||
export const syncFiles = async (token: string, collections: collection[]) => {
|
export const syncFiles = async (token: string, collections: collection[]) => {
|
||||||
let files = await localFiles();
|
let files = await localFiles();
|
||||||
let isUpdated = false;
|
let isUpdated = false;
|
||||||
await removeDeletedCollectionFiles(collections, files);
|
files = await removeDeletedCollectionFiles(collections, files);
|
||||||
for (let collection of collections) {
|
for (let collection of collections) {
|
||||||
const lastSyncTime =
|
const lastSyncTime =
|
||||||
(await localForage.getItem<number>(`${collection.id}-time`)) ?? 0;
|
(await localForage.getItem<number>(`${collection.id}-time`)) ?? 0;
|
||||||
|
@ -78,8 +78,7 @@ export const syncFiles = async (token: string, collections: collection[]) => {
|
||||||
}
|
}
|
||||||
isUpdated = true;
|
isUpdated = true;
|
||||||
let fetchedFiles =
|
let fetchedFiles =
|
||||||
(await getFiles(collection, lastSyncTime.toString(), 100, token)) ??
|
(await getFiles(collection, lastSyncTime, 100, token)) ?? [];
|
||||||
[];
|
|
||||||
files.push(...fetchedFiles);
|
files.push(...fetchedFiles);
|
||||||
var latestVersionFiles = new Map<number, file>();
|
var latestVersionFiles = new Map<number, file>();
|
||||||
files.forEach((file) => {
|
files.forEach((file) => {
|
||||||
|
@ -111,7 +110,7 @@ export const syncFiles = async (token: string, collections: collection[]) => {
|
||||||
|
|
||||||
export const getFiles = async (
|
export const getFiles = async (
|
||||||
collection: collection,
|
collection: collection,
|
||||||
sinceTime: string,
|
sinceTime: number,
|
||||||
limit: number,
|
limit: number,
|
||||||
token: string
|
token: string
|
||||||
): Promise<file[]> => {
|
): Promise<file[]> => {
|
||||||
|
@ -120,15 +119,15 @@ export const getFiles = async (
|
||||||
let promises: Promise<file>[] = [];
|
let promises: Promise<file>[] = [];
|
||||||
let time =
|
let time =
|
||||||
sinceTime ||
|
sinceTime ||
|
||||||
(await localForage.getItem<string>(`${collection.id}-time`)) ||
|
(await localForage.getItem<number>(`${collection.id}-time`)) ||
|
||||||
'0';
|
0;
|
||||||
let resp;
|
let resp;
|
||||||
do {
|
do {
|
||||||
resp = await HTTPService.get(
|
resp = await HTTPService.get(
|
||||||
`${ENDPOINT}/collections/diff`,
|
`${ENDPOINT}/collections/diff`,
|
||||||
{
|
{
|
||||||
collectionID: collection.id.toString(),
|
collectionID: collection.id.toString(),
|
||||||
sinceTime: time,
|
sinceTime: time.toString(),
|
||||||
limit: limit.toString(),
|
limit: limit.toString(),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -220,5 +219,5 @@ const removeDeletedCollectionFiles = async (
|
||||||
syncedCollectionIds.add(collection.id);
|
syncedCollectionIds.add(collection.id);
|
||||||
}
|
}
|
||||||
files = files.filter((file) => syncedCollectionIds.has(file.collectionID));
|
files = files.filter((file) => syncedCollectionIds.has(file.collectionID));
|
||||||
await localForage.setItem('files', files);
|
return files;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue