added and implemented SHOW_SORT_ORDER_OVERFLOW_MENU and UPDATE_COLLECTION_FILES_ORDER actions

This commit is contained in:
Abhinav 2023-05-29 21:45:27 +05:30
parent 67c442dd77
commit 112738d2bb

View file

@ -1,8 +1,9 @@
import { AlbumCollectionOption } from './AlbumCollectionOption';
import React, { useContext } from 'react';
import React, { useContext, useRef, useState } from 'react';
import * as CollectionAPI from 'services/collectionService';
import * as TrashService from 'services/trashService';
import {
changeCollectionOrder,
changeCollectionVisibility,
downloadAllCollectionFiles,
downloadHiddenFiles,
@ -25,6 +26,7 @@ import { HorizontalFlex } from 'components/Container';
import { Trans } from 'react-i18next';
import { t } from 'i18next';
import { Box } from '@mui/material';
import { CollectionFileSortOrderMenu } from './CollectionFileSort';
interface CollectionOptionsProps {
setCollectionNamerAttributes: SetCollectionNamerAttributes;
@ -49,6 +51,8 @@ export enum CollectionActions {
EMPTY_TRASH,
CONFIRM_LEAVE_SHARED_ALBUM,
LEAVE_SHARED_ALBUM,
SHOW_SORT_ORDER_OVERFLOW_MENU,
UPDATE_COLLECTION_FILES_ORDER,
}
const CollectionOptions = (props: CollectionOptionsProps) => {
@ -63,6 +67,16 @@ const CollectionOptions = (props: CollectionOptionsProps) => {
const { startLoading, finishLoading, setDialogMessage } =
useContext(AppContext);
const { syncWithRemote } = useContext(GalleryContext);
const overFlowMenuIconRef = useRef<SVGSVGElement>(null);
const [collectionFileSortOptionView, setCollectionFileSortOptionView] =
useState(false);
const openCollectionFileSortOption = () => {
setCollectionFileSortOptionView(true);
};
const closeCollectionFileSortOption = () => {
setCollectionFileSortOptionView(false);
};
const handleCollectionAction = (
action: CollectionActions,
@ -112,6 +126,12 @@ const CollectionOptions = (props: CollectionOptionsProps) => {
case CollectionActions.LEAVE_SHARED_ALBUM:
callback = leaveSharedAlbum;
break;
case CollectionActions.SHOW_SORT_ORDER_OVERFLOW_MENU:
callback = openCollectionFileSortOption;
break;
case CollectionActions.UPDATE_COLLECTION_FILES_ORDER:
callback = updateCollectionFilesOrder;
break;
default:
logError(
Error('invalid collection action '),
@ -266,6 +286,10 @@ const CollectionOptions = (props: CollectionOptionsProps) => {
});
};
const updateCollectionFilesOrder = async (asc: boolean) => {
await changeCollectionOrder(activeCollection, asc);
};
return (
<HorizontalFlex sx={{ display: 'inline-flex', gap: '16px' }}>
<QuickOptions
@ -275,7 +299,7 @@ const CollectionOptions = (props: CollectionOptionsProps) => {
<OverflowMenu
ariaControls={'collection-options'}
triggerButtonIcon={<MoreHoriz />}>
triggerButtonIcon={<MoreHoriz ref={overFlowMenuIconRef} />}>
{collectionSummaryType === CollectionSummaryType.trash ? (
<TrashCollectionOption
handleCollectionAction={handleCollectionAction}
@ -309,6 +333,14 @@ const CollectionOptions = (props: CollectionOptionsProps) => {
/>
)}
</OverflowMenu>
<CollectionFileSortOrderMenu
handleCollectionAction={handleCollectionAction}
overFlowMenuIconRef={overFlowMenuIconRef}
collectionFileSortOptionView={collectionFileSortOptionView}
closeCollectionFileSortOptionView={
closeCollectionFileSortOption
}
/>
</HorizontalFlex>
);
};