back button and folder name for ML modal header

This commit is contained in:
ronronscelestes 2022-05-30 10:34:50 +02:00
parent 30b4c88dea
commit 1a9400564f
2 changed files with 45 additions and 10 deletions

View File

@ -1,20 +1,55 @@
import React from 'react';
import { Typography } from '@strapi/design-system/Typography';
import { ModalHeader } from '@strapi/design-system/ModalLayout';
import PropTypes from 'prop-types';
import { useIntl } from 'react-intl';
import { Breadcrumbs, Crumb } from '@strapi/design-system/Breadcrumbs';
import { ModalHeader } from '@strapi/design-system/ModalLayout';
import { Stack } from '@strapi/design-system/Stack';
import { Icon } from '@strapi/design-system/Icon';
import ArrowLeft from '@strapi/icons/ArrowLeft';
import getTrad from '../../utils/getTrad';
import { findRecursiveFolderMetadatas } from '../../utils';
import { useFolderStructure } from '../../hooks/useFolderStructure';
export const DialogTitle = () => {
export const DialogTitle = ({ currentFolder, onChangeFolder }) => {
const { formatMessage } = useIntl();
const { data, isLoading } = useFolderStructure();
const folderMetadatas = !isLoading && findRecursiveFolderMetadatas(data[0], currentFolder);
const folderLabel =
folderMetadatas?.currentFolderLabel &&
(folderMetadatas.currentFolderLabel.length > 60
? `${folderMetadatas.currentFolderLabel.slice(0, 60)}...`
: folderMetadatas.currentFolderLabel);
return (
<ModalHeader>
<Typography fontWeight="bold" textColor="neutral800" as="h2" id="asset-dialog-title">
{formatMessage({
id: getTrad('header.actions.add-assets'),
defaultMessage: 'Add new assets',
})}
</Typography>
<Stack horizontal spacing={4}>
{currentFolder && (
<button type="button" onClick={() => onChangeFolder(folderMetadatas?.parentId)}>
<Icon color="neutral500" as={ArrowLeft} />
</button>
)}
<Breadcrumbs label="Category model, name field">
<Crumb>
{formatMessage({
id: getTrad('header.actions.add-assets'),
defaultMessage: 'Add new assets',
})}
</Crumb>
{folderLabel && <Crumb>{folderLabel}</Crumb>}
</Breadcrumbs>
</Stack>
</ModalHeader>
);
};
DialogTitle.defaultProps = {
currentFolder: undefined,
onChangeFolder: undefined,
};
DialogTitle.propTypes = {
currentFolder: PropTypes.number,
onChangeFolder: PropTypes.func,
};

View File

@ -160,7 +160,7 @@ export const AssetDialog = ({
return (
<ModalLayout onClose={onClose} labelledBy="asset-dialog-title" aria-busy={isLoading}>
<DialogTitle />
<DialogTitle currentFolder={queryObject?.folder} onChangeFolder={handleFolderChange} />
<TabGroup
label={formatMessage({