Merge pull request #891 from ente-io/album-header-change
Album header change
This commit is contained in:
commit
cbee1c442b
|
@ -0,0 +1,26 @@
|
||||||
|
import { OverflowMenuOption } from 'components/OverflowMenu/option';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
import FileDownloadOutlinedIcon from '@mui/icons-material/FileDownloadOutlined';
|
||||||
|
import constants from 'utils/strings/constants';
|
||||||
|
import { CollectionActions } from '.';
|
||||||
|
|
||||||
|
interface Iprops {
|
||||||
|
handleCollectionAction: (
|
||||||
|
action: CollectionActions,
|
||||||
|
loader?: boolean
|
||||||
|
) => (...args: any[]) => Promise<void>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function FavoritiesCollectionOption({ handleCollectionAction }: Iprops) {
|
||||||
|
return (
|
||||||
|
<OverflowMenuOption
|
||||||
|
startIcon={<FileDownloadOutlinedIcon />}
|
||||||
|
onClick={handleCollectionAction(
|
||||||
|
CollectionActions.CONFIRM_DOWNLOAD,
|
||||||
|
false
|
||||||
|
)}>
|
||||||
|
{constants.DOWNLOAD_COLLECTION}
|
||||||
|
</OverflowMenuOption>
|
||||||
|
);
|
||||||
|
}
|
|
@ -24,16 +24,17 @@ export function QuickOptions({
|
||||||
<FlexWrapper sx={{ gap: '16px' }}>
|
<FlexWrapper sx={{ gap: '16px' }}>
|
||||||
{!(
|
{!(
|
||||||
collectionSummaryType === CollectionSummaryType.trash ||
|
collectionSummaryType === CollectionSummaryType.trash ||
|
||||||
collectionSummaryType === CollectionSummaryType.favorites
|
collectionSummaryType === CollectionSummaryType.favorites ||
|
||||||
|
collectionSummaryType === CollectionSummaryType.incomingShare
|
||||||
) && (
|
) && (
|
||||||
<Tooltip
|
<Tooltip
|
||||||
title={
|
title={
|
||||||
|
/*: collectionSummaryType ===
|
||||||
|
CollectionSummaryType.incomingShare
|
||||||
|
? constants.SHARING_DETAILS*/
|
||||||
collectionSummaryType ===
|
collectionSummaryType ===
|
||||||
CollectionSummaryType.outgoingShare
|
CollectionSummaryType.outgoingShare
|
||||||
? constants.MODIFY_SHARING
|
? constants.MODIFY_SHARING
|
||||||
: collectionSummaryType ===
|
|
||||||
CollectionSummaryType.incomingShare
|
|
||||||
? constants.SHARING_DETAILS
|
|
||||||
: constants.SHARE_COLLECTION
|
: constants.SHARE_COLLECTION
|
||||||
}>
|
}>
|
||||||
<IconButton>
|
<IconButton>
|
||||||
|
@ -69,7 +70,7 @@ export function QuickOptions({
|
||||||
<IconButton>
|
<IconButton>
|
||||||
<DeleteOutlinedIcon
|
<DeleteOutlinedIcon
|
||||||
onClick={handleCollectionAction(
|
onClick={handleCollectionAction(
|
||||||
CollectionActions.CONFIRM_DELETE,
|
CollectionActions.CONFIRM_EMPTY_TRASH,
|
||||||
false
|
false
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -18,6 +18,7 @@ import OverflowMenu from 'components/OverflowMenu/menu';
|
||||||
import { CollectionSummaryType } from 'constants/collection';
|
import { CollectionSummaryType } from 'constants/collection';
|
||||||
import { TrashCollectionOption } from './TrashCollectionOption';
|
import { TrashCollectionOption } from './TrashCollectionOption';
|
||||||
import { SharedCollectionOption } from './SharedCollectionOption';
|
import { SharedCollectionOption } from './SharedCollectionOption';
|
||||||
|
import { FavoritiesCollectionOption } from './FavoritiesCollectionOption';
|
||||||
import { QuickOptions } from './QuickOptions';
|
import { QuickOptions } from './QuickOptions';
|
||||||
import MoreHoriz from '@mui/icons-material/MoreHoriz';
|
import MoreHoriz from '@mui/icons-material/MoreHoriz';
|
||||||
import { HorizontalFlex } from 'components/Container';
|
import { HorizontalFlex } from 'components/Container';
|
||||||
|
@ -239,32 +240,36 @@ const CollectionOptions = (props: CollectionOptionsProps) => {
|
||||||
handleCollectionAction={handleCollectionAction}
|
handleCollectionAction={handleCollectionAction}
|
||||||
collectionSummaryType={collectionSummaryType}
|
collectionSummaryType={collectionSummaryType}
|
||||||
/>
|
/>
|
||||||
{!(collectionSummaryType === CollectionSummaryType.favorites) && (
|
|
||||||
<OverflowMenu
|
<OverflowMenu
|
||||||
ariaControls={'collection-options'}
|
ariaControls={'collection-options'}
|
||||||
triggerButtonIcon={<MoreHoriz />}
|
triggerButtonIcon={<MoreHoriz />}
|
||||||
triggerButtonProps={{
|
triggerButtonProps={{
|
||||||
sx: {
|
sx: {
|
||||||
background: (theme) => theme.palette.fill.dark,
|
background: (theme) => theme.palette.fill.dark,
|
||||||
},
|
},
|
||||||
}}>
|
}}>
|
||||||
{collectionSummaryType === CollectionSummaryType.trash ? (
|
{collectionSummaryType === CollectionSummaryType.trash ? (
|
||||||
<TrashCollectionOption
|
<TrashCollectionOption
|
||||||
handleCollectionAction={handleCollectionAction}
|
handleCollectionAction={handleCollectionAction}
|
||||||
/>
|
/>
|
||||||
) : collectionSummaryType ===
|
) : collectionSummaryType ===
|
||||||
CollectionSummaryType.incomingShare ? (
|
CollectionSummaryType.favorites ? (
|
||||||
<SharedCollectionOption
|
<FavoritiesCollectionOption
|
||||||
handleCollectionAction={handleCollectionAction}
|
handleCollectionAction={handleCollectionAction}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : collectionSummaryType ===
|
||||||
<AlbumCollectionOption
|
CollectionSummaryType.incomingShare ? (
|
||||||
IsArchived={IsArchived(activeCollection)}
|
<SharedCollectionOption
|
||||||
handleCollectionAction={handleCollectionAction}
|
handleCollectionAction={handleCollectionAction}
|
||||||
/>
|
/>
|
||||||
)}
|
) : (
|
||||||
</OverflowMenu>
|
<AlbumCollectionOption
|
||||||
)}
|
IsArchived={IsArchived(activeCollection)}
|
||||||
|
handleCollectionAction={handleCollectionAction}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</OverflowMenu>
|
||||||
</HorizontalFlex>
|
</HorizontalFlex>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,6 +20,7 @@ const StyledMenu = styled(Menu)`
|
||||||
& .MuiList-root {
|
& .MuiList-root {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border: none;
|
border: none;
|
||||||
|
width: 220px;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|
|
@ -50,8 +50,8 @@ import { User } from 'types/user';
|
||||||
import {
|
import {
|
||||||
getNonHiddenCollections,
|
getNonHiddenCollections,
|
||||||
isQuickLinkCollection,
|
isQuickLinkCollection,
|
||||||
isSharedByMe,
|
isOutgoingShare,
|
||||||
isSharedWithMe,
|
isIncomingShare,
|
||||||
isSharedOnlyViaLink,
|
isSharedOnlyViaLink,
|
||||||
} from 'utils/collection';
|
} from 'utils/collection';
|
||||||
import ComlinkCryptoWorker from 'utils/comlink/ComlinkCryptoWorker';
|
import ComlinkCryptoWorker from 'utils/comlink/ComlinkCryptoWorker';
|
||||||
|
@ -827,9 +827,9 @@ export function getCollectionSummaries(
|
||||||
latestFile: collectionLatestFiles.get(collection.id),
|
latestFile: collectionLatestFiles.get(collection.id),
|
||||||
fileCount: collectionFilesCount.get(collection.id),
|
fileCount: collectionFilesCount.get(collection.id),
|
||||||
updationTime: collection.updationTime,
|
updationTime: collection.updationTime,
|
||||||
type: isSharedWithMe(collection, user)
|
type: isIncomingShare(collection, user)
|
||||||
? CollectionSummaryType.incomingShare
|
? CollectionSummaryType.incomingShare
|
||||||
: isSharedByMe(collection)
|
: isOutgoingShare(collection)
|
||||||
? CollectionSummaryType.outgoingShare
|
? CollectionSummaryType.outgoingShare
|
||||||
: isSharedOnlyViaLink(collection)
|
: isSharedOnlyViaLink(collection)
|
||||||
? CollectionSummaryType.sharedOnlyViaLink
|
? CollectionSummaryType.sharedOnlyViaLink
|
||||||
|
|
|
@ -232,20 +232,7 @@ const darkThemeOptions = createTheme({
|
||||||
MuiSvgIcon: {
|
MuiSvgIcon: {
|
||||||
styleOverrides: {
|
styleOverrides: {
|
||||||
root: ({ ownerState }) => {
|
root: ({ ownerState }) => {
|
||||||
switch (ownerState.color) {
|
return { ...setColor(ownerState) };
|
||||||
case 'primary':
|
|
||||||
return {
|
|
||||||
color: '#ffffff',
|
|
||||||
};
|
|
||||||
case 'secondary':
|
|
||||||
return {
|
|
||||||
color: 'rgba(255,255,255,0.24)',
|
|
||||||
};
|
|
||||||
case 'disabled':
|
|
||||||
return {
|
|
||||||
color: 'rgba(255, 255, 255, 0.16)',
|
|
||||||
};
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -253,21 +240,7 @@ const darkThemeOptions = createTheme({
|
||||||
MuiIconButton: {
|
MuiIconButton: {
|
||||||
styleOverrides: {
|
styleOverrides: {
|
||||||
root: ({ ownerState }) => {
|
root: ({ ownerState }) => {
|
||||||
switch (ownerState.color) {
|
return { ...setColor(ownerState), padding: '12px' };
|
||||||
case 'primary':
|
|
||||||
return {
|
|
||||||
color: '#ffffff',
|
|
||||||
};
|
|
||||||
case 'secondary':
|
|
||||||
return {
|
|
||||||
color: 'rgba(255,255,255,0.24)',
|
|
||||||
};
|
|
||||||
}
|
|
||||||
if (ownerState.disabled) {
|
|
||||||
return {
|
|
||||||
color: 'rgba(255, 255, 255, 0.16)',
|
|
||||||
};
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -403,3 +376,19 @@ const darkThemeOptions = createTheme({
|
||||||
});
|
});
|
||||||
|
|
||||||
export default darkThemeOptions;
|
export default darkThemeOptions;
|
||||||
|
function setColor(ownerState) {
|
||||||
|
switch (ownerState.color) {
|
||||||
|
case 'primary':
|
||||||
|
return {
|
||||||
|
color: '#ffffff',
|
||||||
|
};
|
||||||
|
case 'secondary':
|
||||||
|
return {
|
||||||
|
color: 'rgba(255,255,255,0.24)',
|
||||||
|
};
|
||||||
|
case 'disabled':
|
||||||
|
return {
|
||||||
|
color: 'rgba(255, 255, 255, 0.16)',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -242,10 +242,10 @@ export const isCollectionHidden = (collection: Collection) =>
|
||||||
export const isQuickLinkCollection = (collection: Collection) =>
|
export const isQuickLinkCollection = (collection: Collection) =>
|
||||||
collection.magicMetadata?.data.subType === SUB_TYPE.QUICK_LINK_COLLECTION;
|
collection.magicMetadata?.data.subType === SUB_TYPE.QUICK_LINK_COLLECTION;
|
||||||
|
|
||||||
export function isSharedByMe(collection: Collection): boolean {
|
export function isOutgoingShare(collection: Collection): boolean {
|
||||||
return collection.sharees?.length > 0;
|
return collection.sharees?.length > 0;
|
||||||
}
|
}
|
||||||
export function isSharedWithMe(collection: Collection, user: User) {
|
export function isIncomingShare(collection: Collection, user: User) {
|
||||||
return collection.owner.id !== user.id;
|
return collection.owner.id !== user.id;
|
||||||
}
|
}
|
||||||
export function isSharedOnlyViaLink(collection: Collection) {
|
export function isSharedOnlyViaLink(collection: Collection) {
|
||||||
|
|
Loading…
Reference in a new issue