This commit is contained in:
Manav Rathi
2024-09-09 16:40:39 +05:30
parent d3b47776c3
commit 2bd45883ce
24 changed files with 106 additions and 115 deletions

View File

@@ -3,8 +3,8 @@ import {
AllCollectionDialog,
Transition,
} from "components/Collections/AllCollections/dialog";
import { COLLECTION_LIST_SORT_BY } from "constants/collection";
import { CollectionSummary } from "types/collection";
import { COLLECTION_LIST_SORT_BY } from "utils/collection";
import AllCollectionContent from "./content";
import AllCollectionsHeader from "./header";

View File

@@ -5,7 +5,7 @@ import LinkIcon from "@mui/icons-material/Link";
import PeopleIcon from "@mui/icons-material/People";
import { SetCollectionNamerAttributes } from "components/Collections/CollectionNamer";
import CollectionOptions from "components/Collections/CollectionOptions";
import { CollectionSummaryType } from "constants/collection";
import { CollectionSummaryType } from "utils/collection";
import type { Dispatch, SetStateAction } from "react";
import { Collection, CollectionSummary } from "types/collection";
import { SetFilesDownloadProgressAttributesCreator } from "types/gallery";

View File

@@ -5,8 +5,8 @@ import PeopleIcon from "@mui/icons-material/People";
import PushPin from "@mui/icons-material/PushPin";
import { Box, Typography, styled } from "@mui/material";
import Tooltip from "@mui/material/Tooltip";
import { CollectionSummaryType } from "constants/collection";
import { CollectionSummary } from "types/collection";
import { CollectionSummaryType } from "utils/collection";
import CollectionCard from "../CollectionCard";
import {
ActiveIndicator,

View File

@@ -13,7 +13,6 @@ import {
CollectionListBarWrapper,
CollectionListWrapper,
} from "components/Collections/styledComponents";
import { ALL_SECTION, COLLECTION_LIST_SORT_BY } from "constants/collection";
import { t } from "i18next";
import memoize from "memoize-one";
import React, { useEffect } from "react";
@@ -24,6 +23,7 @@ import {
areEqual,
} from "react-window";
import { CollectionSummary } from "types/collection";
import { ALL_SECTION, COLLECTION_LIST_SORT_BY } from "utils/collection";
import CollectionListSortBy from "../CollectionListSortBy";
import ScrollButton from "./ScrollButton";

View File

@@ -3,8 +3,8 @@ import { OverflowMenuOption } from "@ente/shared/components/OverflowMenu/option"
import TickIcon from "@mui/icons-material/Done";
import SortIcon from "@mui/icons-material/Sort";
import SvgIcon from "@mui/material/SvgIcon";
import { COLLECTION_LIST_SORT_BY } from "constants/collection";
import { t } from "i18next";
import { COLLECTION_LIST_SORT_BY } from "utils/collection";
interface CollectionSortProps {
setSortBy: (sortBy: COLLECTION_LIST_SORT_BY) => void;

View File

@@ -1,7 +1,7 @@
import FileDownloadOutlinedIcon from "@mui/icons-material/FileDownloadOutlined";
import { IconButton, Tooltip } from "@mui/material";
import { CollectionSummaryType } from "constants/collection";
import { t } from "i18next";
import { CollectionSummaryType } from "utils/collection";
import { CollectionActions } from "..";
interface Iprops {
handleCollectionAction: (

View File

@@ -1,7 +1,7 @@
import PeopleIcon from "@mui/icons-material/People";
import { IconButton, Tooltip } from "@mui/material";
import { CollectionSummaryType } from "constants/collection";
import { t } from "i18next";
import { CollectionSummaryType } from "utils/collection";
import { CollectionActions } from "..";
interface Iprops {

View File

@@ -1,7 +1,7 @@
import { FlexWrapper } from "@ente/shared/components/Container";
import EnteSpinner from "@ente/shared/components/EnteSpinner";
import { CollectionSummaryType } from "constants/collection";
import {
CollectionSummaryType,
showDownloadQuickOption,
showEmptyTrashQuickOption,
showShareQuickOption,

View File

@@ -4,11 +4,6 @@ import { HorizontalFlex } from "@ente/shared/components/Container";
import OverflowMenu from "@ente/shared/components/OverflowMenu/menu";
import MoreHoriz from "@mui/icons-material/MoreHoriz";
import { Box } from "@mui/material";
import {
ALL_SECTION,
CollectionSummaryType,
HIDDEN_ITEMS_SECTION,
} from "constants/collection";
import { t } from "i18next";
import { AppContext } from "pages/_app";
import { GalleryContext } from "pages/gallery";
@@ -20,11 +15,14 @@ import * as TrashService from "services/trashService";
import { Collection } from "types/collection";
import { SetFilesDownloadProgressAttributesCreator } from "types/gallery";
import {
ALL_SECTION,
changeCollectionOrder,
changeCollectionSortOrder,
changeCollectionVisibility,
CollectionSummaryType,
downloadCollectionHelper,
downloadDefaultHiddenCollectionHelper,
HIDDEN_ITEMS_SECTION,
isHiddenCollection,
} from "utils/collection";
import { isArchivedCollection, isPinnedCollection } from "utils/magicMetadata";

View File

@@ -2,11 +2,6 @@ import { FlexWrapper } from "@ente/shared/components/Container";
import DialogTitleWithCloseButton from "@ente/shared/components/DialogBox/TitleWithCloseButton";
import { DialogContent, useMediaQuery } from "@mui/material";
import { AllCollectionDialog } from "components/Collections/AllCollections/dialog";
import {
COLLECTION_SORT_ORDER,
CollectionSummaryType,
DUMMY_UNCATEGORIZED_COLLECTION,
} from "constants/collection";
import { t } from "i18next";
import { useEffect, useState } from "react";
import { createUnCategorizedCollection } from "services/collectionService";
@@ -17,6 +12,9 @@ import {
} from "types/collection";
import { CollectionSelectorIntent } from "types/gallery";
import {
COLLECTION_SORT_ORDER,
CollectionSummaryType,
DUMMY_UNCATEGORIZED_COLLECTION,
isAddToAllowedCollection,
isMoveToAllowedCollection,
} from "utils/collection";

View File

@@ -1,9 +1,9 @@
import { EnteDrawer } from "@/base/components/EnteDrawer";
import { Titlebar } from "@/base/components/Titlebar";
import { DialogProps, Stack } from "@mui/material";
import { CollectionSummaryType } from "constants/collection";
import { t } from "i18next";
import { Collection, CollectionSummary } from "types/collection";
import { CollectionSummaryType } from "utils/collection";
import EmailShare from "./emailShare";
import PublicShare from "./publicShare";
import SharingDetails from "./sharingDetails";

View File

@@ -9,11 +9,11 @@ import ModeEditIcon from "@mui/icons-material/ModeEdit";
import Photo from "@mui/icons-material/Photo";
import { Stack } from "@mui/material";
import Avatar from "components/pages/gallery/Avatar";
import { CollectionSummaryType } from "constants/collection";
import { t } from "i18next";
import { GalleryContext } from "pages/gallery";
import { useContext } from "react";
import { COLLECTION_ROLE } from "types/collection";
import { CollectionSummaryType } from "utils/collection";
export default function SharingDetails({ collection, type }) {
const galleryContext = useContext(GalleryContext);

View File

@@ -6,12 +6,13 @@ import CollectionListBar from "components/Collections/CollectionListBar";
import { SetCollectionNamerAttributes } from "components/Collections/CollectionNamer";
import CollectionShare from "components/Collections/CollectionShare";
import { ITEM_TYPE, TimeStampListItem } from "components/PhotoList";
import { ALL_SECTION, COLLECTION_LIST_SORT_BY } from "constants/collection";
import { useCallback, useEffect, useMemo, useState } from "react";
import { sortCollectionSummaries } from "services/collectionService";
import { Collection, CollectionSummaries } from "types/collection";
import { SetFilesDownloadProgressAttributesCreator } from "types/gallery";
import {
ALL_SECTION,
COLLECTION_LIST_SORT_BY,
hasNonSystemCollections,
isSystemCollection,
shouldBeShownOnCollectionBar,

View File

@@ -8,7 +8,7 @@ import { CustomError } from "@ente/shared/error";
import useMemoSingleThreaded from "@ente/shared/hooks/useMemoSingleThreaded";
import { styled } from "@mui/material";
import PhotoViewer from "components/PhotoViewer";
import { TRASH_SECTION } from "constants/collection";
import { TRASH_SECTION } from "utils/collection";
import { useRouter } from "next/router";
import { GalleryContext } from "pages/gallery";
import PhotoSwipe from "photoswipe";

View File

@@ -40,11 +40,6 @@ import DeleteAccountModal from "components/DeleteAccountModal";
import TwoFactorModal from "components/TwoFactor/Modal";
import { WatchFolder } from "components/WatchFolder";
import LinkButton from "components/pages/gallery/LinkButton";
import {
ARCHIVE_SECTION,
DUMMY_UNCATEGORIZED_COLLECTION,
TRASH_SECTION,
} from "constants/collection";
import { t } from "i18next";
import isElectron from "is-electron";
import { useRouter } from "next/router";
@@ -74,6 +69,11 @@ import {
isSubscriptionCancelled,
isSubscriptionPastDue,
} from "utils/billing";
import {
ARCHIVE_SECTION,
DUMMY_UNCATEGORIZED_COLLECTION,
TRASH_SECTION,
} from "utils/collection";
import { getDownloadAppMessage } from "utils/ui";
import { isFamilyAdmin, isPartOfFamily } from "utils/user/family";
import { testUpload } from "../../../tests/upload.test";

View File

@@ -12,12 +12,12 @@ import {
LoadingThumbnail,
StaticThumbnail,
} from "components/PlaceholderThumbnails";
import { TRASH_SECTION } from "constants/collection";
import { GAP_BTW_TILES, IMAGE_CONTAINER_MAX_WIDTH } from "constants/gallery";
import i18n from "i18next";
import { DeduplicateContext } from "pages/deduplicate";
import { GalleryContext } from "pages/gallery";
import React, { useContext, useEffect, useRef, useState } from "react";
import { TRASH_SECTION } from "utils/collection";
import { shouldShowAvatar } from "utils/file";
import Avatar from "./Avatar";

View File

@@ -13,11 +13,6 @@ import UnArchiveIcon from "@mui/icons-material/Unarchive";
import VisibilityOffOutlined from "@mui/icons-material/VisibilityOffOutlined";
import VisibilityOutlined from "@mui/icons-material/VisibilityOutlined";
import { Box, IconButton, Stack, Tooltip } from "@mui/material";
import {
ALL_SECTION,
ARCHIVE_SECTION,
TRASH_SECTION,
} from "constants/collection";
import { t } from "i18next";
import { AppContext } from "pages/_app";
import { useContext } from "react";
@@ -26,7 +21,12 @@ import {
CollectionSelectorIntent,
SetCollectionSelectorAttributes,
} from "types/gallery";
import { COLLECTION_OPS_TYPE } from "utils/collection";
import {
ALL_SECTION,
ARCHIVE_SECTION,
COLLECTION_OPS_TYPE,
TRASH_SECTION,
} from "utils/collection";
import { FILE_OPS_TYPE } from "utils/file";
import { formatNumber } from "utils/number/format";
import { getTrashFilesMessage } from "utils/ui";

View File

@@ -1,54 +0,0 @@
export const ARCHIVE_SECTION = -1;
export const TRASH_SECTION = -2;
export const DUMMY_UNCATEGORIZED_COLLECTION = -3;
export const HIDDEN_ITEMS_SECTION = -4;
export const ALL_SECTION = 0;
export enum CollectionType {
folder = "folder",
favorites = "favorites",
album = "album",
uncategorized = "uncategorized",
}
export enum CollectionSummaryType {
folder = "folder",
favorites = "favorites",
album = "album",
archive = "archive",
trash = "trash",
uncategorized = "uncategorized",
all = "all",
outgoingShare = "outgoingShare",
incomingShareViewer = "incomingShareViewer",
incomingShareCollaborator = "incomingShareCollaborator",
sharedOnlyViaLink = "sharedOnlyViaLink",
archived = "archived",
defaultHidden = "defaultHidden",
hiddenItems = "hiddenItems",
pinned = "pinned",
}
export enum COLLECTION_LIST_SORT_BY {
NAME,
CREATION_TIME_ASCENDING,
UPDATION_TIME_DESCENDING,
}
export const COLLECTION_SORT_ORDER = new Map([
[CollectionSummaryType.all, 0],
[CollectionSummaryType.hiddenItems, 0],
[CollectionSummaryType.uncategorized, 1],
[CollectionSummaryType.favorites, 2],
[CollectionSummaryType.pinned, 3],
[CollectionSummaryType.album, 4],
[CollectionSummaryType.folder, 4],
[CollectionSummaryType.incomingShareViewer, 4],
[CollectionSummaryType.incomingShareCollaborator, 4],
[CollectionSummaryType.outgoingShare, 4],
[CollectionSummaryType.sharedOnlyViaLink, 4],
[CollectionSummaryType.archived, 4],
[CollectionSummaryType.archive, 5],
[CollectionSummaryType.trash, 6],
[CollectionSummaryType.defaultHidden, 7],
]);

View File

@@ -11,7 +11,6 @@ import Typography from "@mui/material/Typography";
import { HttpStatusCode } from "axios";
import DeduplicateOptions from "components/pages/dedupe/SelectedFileOptions";
import PhotoFrame from "components/PhotoFrame";
import { ALL_SECTION } from "constants/collection";
import { t } from "i18next";
import { default as Router, default as router } from "next/router";
import { AppContext } from "pages/_app";
@@ -28,6 +27,7 @@ import {
DefaultDeduplicateContext,
} from "types/deduplicate";
import { SelectedState } from "types/gallery";
import { ALL_SECTION } from "utils/collection";
import { constructFileToCollectionMap, getSelectedFiles } from "utils/file";
export const DeduplicateContext = createContext<DeduplicateContextType>(

View File

@@ -75,13 +75,6 @@ import Uploader from "components/Upload/Uploader";
import { UploadSelectorInputs } from "components/UploadSelectorInputs";
import PlanSelector from "components/pages/gallery/PlanSelector";
import SelectedFileOptions from "components/pages/gallery/SelectedFileOptions";
import {
ALL_SECTION,
ARCHIVE_SECTION,
CollectionSummaryType,
HIDDEN_ITEMS_SECTION,
TRASH_SECTION,
} from "constants/collection";
import { SYNC_INTERVAL_IN_MICROSECONDS } from "constants/gallery";
import { t } from "i18next";
import { useRouter } from "next/router";
@@ -121,7 +114,12 @@ import {
import { FamilyData } from "types/user";
import { checkSubscriptionPurchase } from "utils/billing";
import {
ALL_SECTION,
ARCHIVE_SECTION,
COLLECTION_OPS_TYPE,
CollectionSummaryType,
HIDDEN_ITEMS_SECTION,
TRASH_SECTION,
constructCollectionNameMap,
getArchivedCollections,
getDefaultHiddenCollectionIDs,

View File

@@ -39,7 +39,6 @@ import Uploader from "components/Upload/Uploader";
import { UploadSelectorInputs } from "components/UploadSelectorInputs";
import SharedAlbumNavbar from "components/pages/sharedAlbum/Navbar";
import SelectedFileOptions from "components/pages/sharedAlbum/SelectedFileOptions";
import { ALL_SECTION } from "constants/collection";
import { t } from "i18next";
import { useRouter } from "next/router";
import { AppContext } from "pages/_app";
@@ -64,7 +63,11 @@ import {
SetFilesDownloadProgressAttributes,
SetFilesDownloadProgressAttributesCreator,
} from "types/gallery";
import { downloadCollectionFiles, isHiddenCollection } from "utils/collection";
import {
ALL_SECTION,
downloadCollectionFiles,
isHiddenCollection,
} from "utils/collection";
import { downloadSelectedFiles, getSelectedFiles, sortFiles } from "utils/file";
import { PublicCollectionGalleryContext } from "utils/publicCollectionGallery";

View File

@@ -17,17 +17,6 @@ import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
import { getToken } from "@ente/shared/storage/localStorage/helpers";
import { getActualKey } from "@ente/shared/user";
import type { User } from "@ente/shared/user/types";
import {
ALL_SECTION,
ARCHIVE_SECTION,
COLLECTION_LIST_SORT_BY,
COLLECTION_SORT_ORDER,
CollectionSummaryType,
CollectionType,
DUMMY_UNCATEGORIZED_COLLECTION,
HIDDEN_ITEMS_SECTION,
TRASH_SECTION,
} from "constants/collection";
import { t } from "i18next";
import {
AddToCollectionRequest,
@@ -50,6 +39,15 @@ import {
} from "types/collection";
import { FamilyData } from "types/user";
import {
ALL_SECTION,
ARCHIVE_SECTION,
COLLECTION_LIST_SORT_BY,
COLLECTION_SORT_ORDER,
CollectionSummaryType,
CollectionType,
DUMMY_UNCATEGORIZED_COLLECTION,
HIDDEN_ITEMS_SECTION,
TRASH_SECTION,
changeCollectionSubType,
getHiddenCollections,
getNonHiddenCollections,

View File

@@ -5,7 +5,7 @@ import {
MagicMetadataCore,
SUB_TYPE,
} from "@/new/photos/types/magicMetadata";
import { CollectionSummaryType, CollectionType } from "constants/collection";
import { CollectionSummaryType, CollectionType } from "utils/collection";
export enum COLLECTION_ROLE {
VIEWER = "VIEWER",

View File

@@ -10,11 +10,6 @@ import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
import { getUnixTimeInMicroSecondsWithDelta } from "@ente/shared/time";
import type { User } from "@ente/shared/user/types";
import bs58 from "bs58";
import {
CollectionSummaryType,
CollectionType,
DEFAULT_HIDDEN_COLLECTION_USER_FACING_NAME,
} from "constants/collection";
import { t } from "i18next";
import {
addToCollection,
@@ -41,6 +36,60 @@ import { SetFilesDownloadProgressAttributes } from "types/gallery";
import { downloadFilesWithProgress } from "utils/file";
import { isArchivedCollection, updateMagicMetadata } from "utils/magicMetadata";
export const ARCHIVE_SECTION = -1;
export const TRASH_SECTION = -2;
export const DUMMY_UNCATEGORIZED_COLLECTION = -3;
export const HIDDEN_ITEMS_SECTION = -4;
export const ALL_SECTION = 0;
export enum CollectionType {
folder = "folder",
favorites = "favorites",
album = "album",
uncategorized = "uncategorized",
}
export enum CollectionSummaryType {
folder = "folder",
favorites = "favorites",
album = "album",
archive = "archive",
trash = "trash",
uncategorized = "uncategorized",
all = "all",
outgoingShare = "outgoingShare",
incomingShareViewer = "incomingShareViewer",
incomingShareCollaborator = "incomingShareCollaborator",
sharedOnlyViaLink = "sharedOnlyViaLink",
archived = "archived",
defaultHidden = "defaultHidden",
hiddenItems = "hiddenItems",
pinned = "pinned",
}
export enum COLLECTION_LIST_SORT_BY {
NAME,
CREATION_TIME_ASCENDING,
UPDATION_TIME_DESCENDING,
}
export const COLLECTION_SORT_ORDER = new Map([
[CollectionSummaryType.all, 0],
[CollectionSummaryType.hiddenItems, 0],
[CollectionSummaryType.uncategorized, 1],
[CollectionSummaryType.favorites, 2],
[CollectionSummaryType.pinned, 3],
[CollectionSummaryType.album, 4],
[CollectionSummaryType.folder, 4],
[CollectionSummaryType.incomingShareViewer, 4],
[CollectionSummaryType.incomingShareCollaborator, 4],
[CollectionSummaryType.outgoingShare, 4],
[CollectionSummaryType.sharedOnlyViaLink, 4],
[CollectionSummaryType.archived, 4],
[CollectionSummaryType.archive, 5],
[CollectionSummaryType.trash, 6],
[CollectionSummaryType.defaultHidden, 7],
]);
const SYSTEM_COLLECTION_TYPES = new Set([
CollectionSummaryType.all,
CollectionSummaryType.archive,