This commit is contained in:
Manav Rathi
2024-10-23 11:35:29 +05:30
parent 717cada22d
commit 9c8701cd8c
2 changed files with 19 additions and 70 deletions

View File

@@ -20,9 +20,6 @@ import {
SearchResultsHeader,
} from "@/new/photos/components/gallery";
import {
deriveAlbumishFilteredFiles,
derivePeopleFilteredFiles,
deriveTrashFilteredFiles,
uniqueFilesByID,
useGalleryReducer,
type GalleryBarMode,
@@ -32,7 +29,6 @@ import { shouldShowWhatsNew } from "@/new/photos/services/changelog";
import {
ALL_SECTION,
DUMMY_UNCATEGORIZED_COLLECTION,
TRASH_SECTION,
isHiddenCollection,
} from "@/new/photos/services/collection";
import { areOnlySystemCollections } from "@/new/photos/services/collection/ui";
@@ -306,15 +302,7 @@ export default function Gallery() {
const collections = state.collections;
const files = state.files;
const hiddenFiles = state.hiddenFiles;
const trashedFiles = state.trashedFiles;
const archivedCollectionIDs = state.archivedCollectionIDs;
const hiddenFileIDs = state.hiddenFileIDs;
const collectionNameMap = state.allCollectionNameByID;
const fileToCollectionsMap = state.fileCollectionIDs;
const collectionSummaries = state.collectionSummaries;
const hiddenCollectionSummaries = state.hiddenCollectionSummaries;
const tempDeletedFileIDs = state.tempDeletedFileIDs;
const tempHiddenFileIDs = state.tempHiddenFileIDs;
const barMode = state.view?.type ?? "albums";
const activeCollectionID =
state.view?.type == "people"
@@ -328,7 +316,7 @@ export default function Gallery() {
const isInSearchMode = state.isInSearchMode;
const filteredFiles = state.filteredFiles;
if (process.env.NEXT_PUBLIC_ENTE_WIP_CL) console.log("render", { state });
if (process.env.NEXT_PUBLIC_ENTE_WIP_CL) console.log("render", state);
const router = useRouter();
@@ -483,51 +471,13 @@ export default function Gallery() {
// TODO: Make this a normal useEffect.
useMemoSingleThreaded(async () => {
if (
!files ||
!user ||
!trashedFiles ||
!hiddenFiles ||
!archivedCollectionIDs
) {
dispatch({
type: "setFilteredFiles",
filteredFiles: [],
});
return;
}
let filteredFiles: EnteFile[];
if (selectedSearchOption) {
filteredFiles = await filterSearchableFiles(
const searchResults = await filterSearchableFiles(
selectedSearchOption.suggestion,
);
} else if (state.view?.type == "people") {
filteredFiles = derivePeopleFilteredFiles(state, state.view);
} else if (activeCollectionID === TRASH_SECTION) {
filteredFiles = deriveTrashFilteredFiles(state);
} else {
filteredFiles = deriveAlbumishFilteredFiles(state);
dispatch({ type: "setSearchResults", searchResults });
}
dispatch({
type: "setFilteredFiles",
filteredFiles,
});
}, [
barMode,
files,
trashedFiles,
hiddenFiles,
tempDeletedFileIDs,
tempHiddenFileIDs,
hiddenFileIDs,
selectedSearchOption,
activeCollectionID,
archivedCollectionIDs,
peopleState,
activePersonID,
]);
}, [selectedSearchOption]);
const selectAll = (e: KeyboardEvent) => {
// ignore ctrl/cmd + a if the user is typing in a text field
@@ -923,8 +873,8 @@ export default function Gallery() {
[],
);
if (!user || !filteredFiles) {
// Don't render until we get the logged in user and dispatch "mount".
if (!user) {
// Don't render until we dispatch "mount" with the logged in user.
return <div></div>;
}
@@ -1046,7 +996,8 @@ export default function Gallery() {
activeCollection,
activeCollectionID,
setActiveCollectionID: handleSetActiveCollectionID,
hiddenCollectionSummaries,
hiddenCollectionSummaries:
state.hiddenCollectionSummaries,
showPeopleSectionButton,
people:
(state.view.type == "people"
@@ -1129,8 +1080,8 @@ export default function Gallery() {
activeCollectionID={activeCollectionID}
activePersonID={activePerson?.id}
enableDownload={true}
fileToCollectionsMap={fileToCollectionsMap}
collectionNameMap={collectionNameMap}
fileToCollectionsMap={state.fileCollectionIDs}
collectionNameMap={state.allCollectionNameByID}
showAppDownloadBanner={
files.length < 30 && !isInSearchMode
}
@@ -1185,7 +1136,7 @@ export default function Gallery() {
<ExportModal
show={exportModalView}
onHide={closeExportModal}
collectionNameMap={collectionNameMap}
collectionNameMap={state.allCollectionNameByID}
/>
<AuthenticateUserModal
open={authenticateUserModalView}

View File

@@ -793,7 +793,7 @@ const deriveFavoriteFileIDs = (
/**
* Compute collection summaries from their dependencies.
*/
export const deriveCollectionSummaries = (
const deriveCollectionSummaries = (
user: User,
collections: Collection[],
files: EnteFile[],
@@ -847,7 +847,7 @@ const pseudoCollectionOptionsForFiles = (files: EnteFile[]) => ({
/**
* Compute hidden collection summaries from their dependencies.
*/
export const deriveHiddenCollectionSummaries = (
const deriveHiddenCollectionSummaries = (
user: User,
hiddenCollections: Collection[],
hiddenFiles: EnteFile[],
@@ -1079,11 +1079,11 @@ const derivePeopleView = (
people = filterTemp(people);
visiblePeople = filterTemp(visiblePeople);
}
const findByID = (ps: Person[]) => ps.find((p) => p.id == selectedPersonID);
let activePerson = findByID(visiblePeople);
const findByIDIn = (ps: Person[]) => ps.find((p) => p.id == selectedPersonID);
let activePerson = findByIDIn(visiblePeople);
if (!activePerson) {
// This might be one of the normally hidden small clusters.
activePerson = findByID(people);
activePerson = findByIDIn(people);
if (activePerson) {
// Temporarily add this person's entry to the list of people
// surfaced in the people view.
@@ -1108,7 +1108,7 @@ const derivePeopleView = (
* function for recomputing filtered files whenever any bit of the underlying
* state that could affect the "albums" view changes (and we're showing it).
*/
export const refreshingFilteredFilesIfShowingAlbums = (state: GalleryState) => {
const refreshingFilteredFilesIfShowingAlbums = (state: GalleryState) => {
if (state.view?.type == "albums") {
const filteredFiles = deriveAlbumsFilteredFiles(
state.files,
@@ -1186,9 +1186,7 @@ const deriveAlbumsFilteredFiles = (
*
* See {@link refreshingFilteredFilesIfShowingAlbums} for more details.
*/
export const refreshingFilteredFilesIfShowingHiddenAlbums = (
state: GalleryState,
) => {
const refreshingFilteredFilesIfShowingHiddenAlbums = (state: GalleryState) => {
if (state.view?.type == "hidden-albums") {
const filteredFiles = deriveHiddenAlbumsFilteredFiles(
state.hiddenFiles,
@@ -1207,7 +1205,7 @@ export const refreshingFilteredFilesIfShowingHiddenAlbums = (
* "hidden-albums". This is useful if something that potentially affects both
* scenarios changes.
*/
export const refreshingFilteredFilesIfShowingAlbumsOrHiddenAlbums = (
const refreshingFilteredFilesIfShowingAlbumsOrHiddenAlbums = (
state: GalleryState,
) =>
refreshingFilteredFilesIfShowingHiddenAlbums(