This commit is contained in:
Manav Rathi
2024-09-24 04:49:08 +05:30
parent 2ae8a11138
commit 2660cee263
6 changed files with 29 additions and 29 deletions

View File

@@ -4,7 +4,7 @@ import {
AllCollectionDialog,
Transition,
} from "components/Collections/AllCollections/dialog";
import { COLLECTION_LIST_SORT_BY } from "utils/collection";
import { CollectionListSortBy } from "utils/collection";
import AllCollectionContent from "./content";
import AllCollectionsHeader from "./header";
@@ -13,8 +13,8 @@ interface Iprops {
onClose: () => void;
collectionSummaries: CollectionSummary[];
setActiveCollectionID: (id?: number) => void;
collectionListSortBy: COLLECTION_LIST_SORT_BY;
setCollectionListSortBy: (v: COLLECTION_LIST_SORT_BY) => void;
collectionListSortBy: CollectionListSortBy;
setCollectionListSortBy: (v: CollectionListSortBy) => void;
isInHiddenSection: boolean;
}

View File

@@ -31,7 +31,7 @@ import React, {
} from "react";
import AutoSizer from "react-virtualized-auto-sizer";
import { FixedSizeList, ListChildComponentProps, areEqual } from "react-window";
import { COLLECTION_LIST_SORT_BY } from "utils/collection";
import { CollectionListSortBy } from "utils/collection";
import type { GalleryBarMode } from ".";
import { CollectionListSortOptions } from "./CollectionListSortOptions";
@@ -65,11 +65,11 @@ export interface CollectionListBarProps {
* The sort order that should be used for showing the collections in the
* bar.
*/
collectionListSortBy: COLLECTION_LIST_SORT_BY;
collectionListSortBy: CollectionListSortBy;
/**
* Called when the user changes the sort order.
*/
setCollectionListSortBy: (v: COLLECTION_LIST_SORT_BY) => void;
setCollectionListSortBy: (v: CollectionListSortBy) => void;
/**
* The list of people that should be shown in the bar.
*/

View File

@@ -4,18 +4,18 @@ import TickIcon from "@mui/icons-material/Done";
import SortIcon from "@mui/icons-material/Sort";
import SvgIcon from "@mui/material/SvgIcon";
import { t } from "i18next";
import { COLLECTION_LIST_SORT_BY } from "utils/collection";
import { CollectionListSortBy } from "utils/collection";
interface CollectionListSortOptionsProps {
setSortBy: (sortBy: COLLECTION_LIST_SORT_BY) => void;
activeSortBy: COLLECTION_LIST_SORT_BY;
setSortBy: (sortBy: CollectionListSortBy) => void;
activeSortBy: CollectionListSortBy;
nestedInDialog?: boolean;
disableBG?: boolean;
}
const SortByOptionCreator =
({ setSortBy, activeSortBy }: CollectionListSortOptionsProps) =>
(props: { sortBy: COLLECTION_LIST_SORT_BY; children: any }) => {
(props: { sortBy: CollectionListSortBy; children: any }) => {
const handleClick = () => {
setSortBy(props.sortBy);
};
@@ -55,17 +55,13 @@ export const CollectionListSortOptions: React.FC<
},
}}
>
<SortByOption sortBy={COLLECTION_LIST_SORT_BY.NAME}>
<SortByOption sortBy={CollectionListSortBy.Name}>
{t("sort_by_name")}
</SortByOption>
<SortByOption
sortBy={COLLECTION_LIST_SORT_BY.CREATION_TIME_ASCENDING}
>
<SortByOption sortBy={CollectionListSortBy.CreationTimeAscending}>
{t("sort_by_creation_time_ascending")}
</SortByOption>
<SortByOption
sortBy={COLLECTION_LIST_SORT_BY.UPDATION_TIME_DESCENDING}
>
<SortByOption sortBy={CollectionListSortBy.UpdationTimeDescending}>
{t("sort_by_updation_time_descending")}
</SortByOption>
</OverflowMenu>

View File

@@ -14,7 +14,7 @@ import { sortCollectionSummaries } from "services/collectionService";
import { SetFilesDownloadProgressAttributesCreator } from "types/gallery";
import {
ALL_SECTION,
COLLECTION_LIST_SORT_BY,
CollectionListSortBy,
hasNonSystemCollections,
isSystemCollection,
shouldBeShownOnCollectionBar,
@@ -75,9 +75,9 @@ export const Collections: React.FC<CollectionsProps> = ({
const [openAlbumCastDialog, setOpenAlbumCastDialog] = useState(false);
const [collectionListSortBy, setCollectionListSortBy] =
useLocalState<COLLECTION_LIST_SORT_BY>(
useLocalState<CollectionListSortBy>(
LS_KEYS.COLLECTION_SORT_BY,
COLLECTION_LIST_SORT_BY.UPDATION_TIME_DESCENDING,
CollectionListSortBy.UpdationTimeDescending,
);
const toShowCollectionSummaries = useMemo(

View File

@@ -44,8 +44,8 @@ import { FamilyData } from "types/user";
import {
ALL_SECTION,
ARCHIVE_SECTION,
COLLECTION_LIST_SORT_BY,
COLLECTION_SORT_ORDER,
CollectionListSortBy,
DUMMY_UNCATEGORIZED_COLLECTION,
HIDDEN_ITEMS_SECTION,
TRASH_SECTION,
@@ -1070,19 +1070,19 @@ export const getFavCollection = async () => {
export function sortCollectionSummaries(
collectionSummaries: CollectionSummary[],
sortBy: COLLECTION_LIST_SORT_BY,
sortBy: CollectionListSortBy,
) {
return collectionSummaries
.sort((a, b) => {
switch (sortBy) {
case COLLECTION_LIST_SORT_BY.CREATION_TIME_ASCENDING:
case CollectionListSortBy.CreationTimeAscending:
return (
-1 *
compareCollectionsLatestFile(b.latestFile, a.latestFile)
);
case COLLECTION_LIST_SORT_BY.UPDATION_TIME_DESCENDING:
case CollectionListSortBy.UpdationTimeDescending:
return b.updationTime - a.updationTime;
case COLLECTION_LIST_SORT_BY.NAME:
case CollectionListSortBy.Name:
return a.name.localeCompare(b.name);
}
})

View File

@@ -45,10 +45,14 @@ export const DUMMY_UNCATEGORIZED_COLLECTION = -3;
export const HIDDEN_ITEMS_SECTION = -4;
export const ALL_SECTION = 0;
export enum COLLECTION_LIST_SORT_BY {
NAME,
CREATION_TIME_ASCENDING,
UPDATION_TIME_DESCENDING,
/**
* Sort orders for use when we're showing lists of collections (e.g. in the
* collection bar).
*/
export enum CollectionListSortBy {
Name,
CreationTimeAscending,
UpdationTimeDescending,
}
export const COLLECTION_SORT_ORDER = new Map<CollectionSummaryType, number>([