This commit is contained in:
Manav Rathi
2024-10-22 19:22:52 +05:30
parent 104029e720
commit fa2689d14b

View File

@@ -950,33 +950,39 @@ const findAllSectionVisibleFiles = (
* showing either "albums" or "hidden-albums".
*/
export const deriveFilteredFilesAlbumishFocus = (state: GalleryState) => {
if (state.barMode == "albums") {
return deriveFilteredFilesAlbumFocus(state);
} else {
return deriveFilteredFilesHiddenAlbumsFocus(state);
}
};
/**
* Helper function to compute the sorted list of files to show when we're
* in the "albums" focus.
*/
export const deriveFilteredFilesAlbumFocus = (state: GalleryState) => {
const {
barMode,
collections,
hiddenCollections,
files,
hiddenFiles,
archivedCollectionIDs,
defaultHiddenCollectionIDs,
hiddenFileIDs,
tempDeletedFileIDs,
tempHiddenFileIDs,
activeCollectionID,
} = state;
const baseFiles = barMode == "hidden-albums" ? hiddenFiles : files;
const activeCollection = (
barMode == "albums" ? collections : hiddenCollections
).find((collection) => collection.id === activeCollectionID);
const activeCollection = collections.find(
(collection) => collection.id === activeCollectionID,
);
const filteredFiles = uniqueFilesByID(
baseFiles.filter((item) => {
files.filter((item) => {
if (tempDeletedFileIDs.has(item.id)) {
return false;
}
if (barMode != "hidden-albums" && tempHiddenFileIDs.has(item.id)) {
if (tempHiddenFileIDs.has(item.id)) {
return false;
}
@@ -989,14 +995,6 @@ export const deriveFilteredFilesAlbumishFocus = (state: GalleryState) => {
}
}
// HIDDEN ITEMS SECTION - show all individual hidden files
if (
activeCollectionID === HIDDEN_ITEMS_SECTION &&
defaultHiddenCollectionIDs.has(item.collectionID)
) {
return true;
}
// Archived files can only be seen in archive section or their respective collection
if (isArchivedFile(item)) {
if (
@@ -1031,3 +1029,69 @@ export const deriveFilteredFilesAlbumishFocus = (state: GalleryState) => {
const sortAsc = activeCollection?.pubMagicMetadata?.data?.asc ?? false;
return sortAsc ? sortFiles(filteredFiles, true) : filteredFiles;
};
/**
* Helper function to compute the sorted list of files to show when we're
* in the "hidden-albums" focus.
*/
export const deriveFilteredFilesHiddenAlbumsFocus = (state: GalleryState) => {
const {
hiddenCollections,
hiddenFiles,
archivedCollectionIDs,
defaultHiddenCollectionIDs,
tempDeletedFileIDs,
activeCollectionID,
} = state;
const activeCollection = hiddenCollections.find(
(collection) => collection.id === activeCollectionID,
);
const filteredFiles = uniqueFilesByID(
hiddenFiles.filter((item) => {
if (tempDeletedFileIDs.has(item.id)) {
return false;
}
// archived collections files can only be seen in their respective collection
if (archivedCollectionIDs.has(item.collectionID)) {
if (activeCollectionID === item.collectionID) {
return true;
} else {
return false;
}
}
// HIDDEN ITEMS SECTION - show all individual hidden files
if (
activeCollectionID === HIDDEN_ITEMS_SECTION &&
defaultHiddenCollectionIDs.has(item.collectionID)
) {
return true;
}
// Archived files can only be seen in archive section or their respective collection
if (isArchivedFile(item)) {
if (
activeCollectionID === ARCHIVE_SECTION ||
activeCollectionID === item.collectionID
) {
return true;
} else {
return false;
}
}
// COLLECTION SECTION - show files in the active collection
if (activeCollectionID === item.collectionID) {
return true;
} else {
return false;
}
}),
);
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
const sortAsc = activeCollection?.pubMagicMetadata?.data?.asc ?? false;
return sortAsc ? sortFiles(filteredFiles, true) : filteredFiles;
};