This commit is contained in:
Manav Rathi
2024-10-21 13:57:12 +05:30
parent 28778d687e
commit 456f9f6abd
5 changed files with 32 additions and 32 deletions

View File

@@ -29,7 +29,7 @@ import {
CollectionSummaryOrder,
CollectionsSortBy,
} from "@/new/photos/services/collection/ui";
import { groupFilesBasedOnCollectionID } from "@/new/photos/services/file";
import { groupFilesByCollectionID } from "@/new/photos/services/file";
import { getLocalFiles, sortFiles } from "@/new/photos/services/files";
import { updateMagicMetadata } from "@/new/photos/services/magic-metadata";
import type { FamilyData } from "@/new/photos/services/user";
@@ -586,7 +586,7 @@ export const removeUserFiles = async (
const toRemoveFilesCopiesInOtherCollections = allFiles.filter((f) => {
return toRemoveFilesIds.has(f.id);
});
const groupiedFiles = groupFilesBasedOnCollectionID(
const groupedFiles = groupFilesByCollectionID(
toRemoveFilesCopiesInOtherCollections,
);
@@ -594,7 +594,7 @@ export const removeUserFiles = async (
const collectionsMap = new Map(collections.map((c) => [c.id, c]));
const user: User = getData(LS_KEYS.USER);
for (const [targetCollectionID, files] of groupiedFiles.entries()) {
for (const [targetCollectionID, files] of groupedFiles.entries()) {
const targetCollection = collectionsMap.get(targetCollectionID);
if (
!isValidMoveTarget(sourceCollectionID, targetCollection, user)
@@ -1070,8 +1070,8 @@ export async function moveToHiddenCollection(files: EnteFile[]) {
if (!hiddenCollection) {
hiddenCollection = await createHiddenCollection();
}
const groupiedFiles = groupFilesBasedOnCollectionID(files);
for (const [collectionID, files] of groupiedFiles.entries()) {
const groupedFiles = groupFilesByCollectionID(files);
for (const [collectionID, files] of groupedFiles.entries()) {
if (collectionID === hiddenCollection.id) {
continue;
}
@@ -1088,8 +1088,8 @@ export async function unhideToCollection(
files: EnteFile[],
) {
try {
const groupiedFiles = groupFilesBasedOnCollectionID(files);
for (const [collectionID, files] of groupiedFiles.entries()) {
const groupedFiles = groupFilesByCollectionID(files);
for (const [collectionID, files] of groupedFiles.entries()) {
if (collectionID === collection.id) {
continue;
}

View File

@@ -13,7 +13,7 @@ import type {
} from "@/base/types/ipc";
import type { Collection } from "@/media/collection";
import { EncryptedEnteFile } from "@/media/file";
import { groupFilesBasedOnCollectionID } from "@/new/photos/services/file";
import { groupFilesByCollectionID } from "@/new/photos/services/file";
import { getLocalFiles } from "@/new/photos/services/files";
import { UPLOAD_RESULT } from "@/new/photos/services/upload/types";
import { ensureString } from "@/utils/ensure";
@@ -496,7 +496,7 @@ class FolderWatcher {
return false;
});
const filesByCollectionID = groupFilesBasedOnCollectionID(filesToTrash);
const filesByCollectionID = groupFilesByCollectionID(filesToTrash);
for (const [id, files] of filesByCollectionID.entries()) {
await removeFromCollection(id, files);
}

View File

@@ -1,5 +1,5 @@
import { FileType } from "@/media/file-type";
import { groupFilesBasedOnCollectionID } from "@/new/photos/services/file";
import { groupFilesByCollectionID } from "@/new/photos/services/file";
import { getLocalFiles } from "@/new/photos/services/files";
import { getLocalCollections } from "services/collectionService";
import { parseDateFromDigitGroups } from "services/upload/date";
@@ -153,7 +153,7 @@ async function totalCollectionCountCheck(expectedState) {
async function collectionWiseFileCount(expectedState) {
const files = await getLocalFiles();
const collections = await getLocalCollections();
const collectionToFilesMap = groupFilesBasedOnCollectionID(files);
const collectionToFilesMap = groupFilesByCollectionID(files);
const collectionIDToNameMap = new Map(
collections.map((collection) => [collection.id, collection.name]),
);

View File

@@ -28,7 +28,7 @@ import type {
} from "../../services/collection/ui";
import {
getLatestVersionFiles,
groupFilesBasedOnCollectionID,
groupFilesByCollectionID,
} from "../../services/file";
import { sortFiles } from "../../services/files";
import {
@@ -108,8 +108,8 @@ export interface GalleryState {
/*--< Derived UI state >--*/
/**
* A map of massaged collections suitable for being directly consumed by the
* UI (indexed by the collection IDs).
* A map of collections massage to a form suitable for being directly
* consumed by the UI, indexed by the collection IDs.
*/
collectionSummaries: Map<number, CollectionSummary>;
/**
@@ -520,8 +520,8 @@ const createCollectionSummaries = (
user: User,
collections: Collection[],
files: EnteFile[],
): CollectionSummaries => {
const collectionSummaries: CollectionSummaries = new Map();
) => {
const collectionSummaries = new Map<number, CollectionSummary>();
const collectionLatestFiles = getCollectionLatestFiles(files);
const collectionCoverFiles = getCollectionCoverFiles(files, collections);
const collectionFilesCount = getCollectionsFileCount(files);
@@ -607,8 +607,9 @@ const createCollectionSummaries = (
return collectionSummaries;
};
export type CollectionToFileMap = Map<number, EnteFile>;
type CollectionToFileMap = Map<number, EnteFile>;
// TODO: This seems to rely on some sort order. Document.
const getCollectionLatestFiles = (files: EnteFile[]): CollectionToFileMap => {
const latestFiles = new Map<number, EnteFile>();
@@ -624,7 +625,7 @@ const getCollectionCoverFiles = (
files: EnteFile[],
collections: Collection[],
): CollectionToFileMap => {
const collectionIDToFileMap = groupFilesBasedOnCollectionID(files);
const collectionIDToFileMap = groupFilesByCollectionID(files);
const coverFiles = new Map<number, EnteFile>();
@@ -820,7 +821,7 @@ function getAllSectionSummary(
}
function getCollectionsFileCount(files: EnteFile[]): Map<number, number> {
const collectionIDToFileMap = groupFilesBasedOnCollectionID(files);
const collectionIDToFileMap = groupFilesByCollectionID(files);
const collectionFilesCount = new Map<number, number>();
for (const [id, files] of collectionIDToFileMap) {
collectionFilesCount.set(id, files.length);

View File

@@ -1,19 +1,18 @@
import type { EnteFile } from "@/media/file";
/** Segment the given {@link files} into lists indexed by their collection ID */
export const groupFilesBasedOnCollectionID = (files: EnteFile[]) => {
const result = new Map<number, EnteFile[]>();
for (const file of files) {
/**
* Segment the given {@link files} into lists indexed by their collection ID.
*
* Order is preserved.
*/
export const groupFilesByCollectionID = (files: EnteFile[]) =>
files.reduce((result, file) => {
const id = file.collectionID;
if (!result.has(id)) result.set(id, []);
// See: [Note: strict mode migration]
//
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
result.get(id).push(file);
}
return result;
};
let cfs = result.get(id);
if (!cfs) result.set(id, (cfs = []));
cfs.push(file);
return result;
}, new Map<number, EnteFile[]>());
export function getLatestVersionFiles(files: EnteFile[]) {
const latestVersionFiles = new Map<string, EnteFile>();