95 lines
2.5 KiB
JavaScript
Raw Normal View History

2021-10-28 11:08:58 +02:00
import PropTypes from 'prop-types';
2021-09-16 13:48:21 +02:00
export const AssetType = {
Video: 'video',
Image: 'image',
Document: 'doc',
2022-02-06 11:49:57 +01:00
Audio: 'audio',
2021-09-16 13:48:21 +02:00
};
export const AssetSource = {
Url: 'url',
Computer: 'computer',
};
2021-10-28 11:08:58 +02:00
2022-06-22 17:00:30 +02:00
const ParentFolderDefinition = PropTypes.shape({
2022-05-18 09:43:01 +02:00
id: PropTypes.number.isRequired,
createdAt: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
updatedAt: PropTypes.string.isRequired,
2022-08-23 13:50:13 +02:00
pathId: PropTypes.string.isRequired,
2022-05-18 09:43:01 +02:00
path: PropTypes.string.isRequired,
});
2022-07-31 16:39:47 +02:00
ParentFolderDefinition.parent = PropTypes.shape(ParentFolderDefinition);
2022-06-22 17:00:30 +02:00
export const FolderDefinition = PropTypes.shape({
2022-06-22 11:05:48 +02:00
id: PropTypes.number.isRequired,
2022-06-22 17:00:30 +02:00
children: PropTypes.shape({
count: PropTypes.number.isRequired,
}),
2022-06-22 11:05:48 +02:00
createdAt: PropTypes.string.isRequired,
2022-06-22 17:00:30 +02:00
createdBy: PropTypes.shape(),
files: PropTypes.shape({
count: PropTypes.number.isRequired,
}),
2022-06-22 11:05:48 +02:00
name: PropTypes.string.isRequired,
2022-07-31 16:39:47 +02:00
parent: PropTypes.oneOfType([ParentFolderDefinition, PropTypes.number]),
2022-06-22 11:05:48 +02:00
updatedAt: PropTypes.string.isRequired,
2022-06-22 17:00:30 +02:00
updatedBy: PropTypes.shape(),
2022-08-23 13:50:13 +02:00
pathId: PropTypes.string.isRequired,
2022-06-22 11:05:48 +02:00
path: PropTypes.string.isRequired,
});
2022-05-18 09:43:01 +02:00
const FolderStructure = PropTypes.shape({
value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
label: PropTypes.string.isRequired,
children: PropTypes.array,
});
FolderStructure.children = PropTypes.arrayOf(PropTypes.shape(FolderStructure));
FolderStructure.defaultProps = {
children: undefined,
};
export const FolderStructureDefinition = PropTypes.arrayOf(FolderStructure);
2021-10-28 11:08:58 +02:00
export const AssetDefinition = PropTypes.shape({
id: PropTypes.number,
height: PropTypes.number,
width: PropTypes.number,
size: PropTypes.number,
createdAt: PropTypes.string,
ext: PropTypes.string,
mime: PropTypes.string,
name: PropTypes.string,
url: PropTypes.string,
updatedAt: PropTypes.string,
alternativeText: PropTypes.string,
caption: PropTypes.string,
2022-05-18 09:43:01 +02:00
folder: PropTypes.shape(FolderDefinition),
2021-10-28 11:08:58 +02:00
formats: PropTypes.shape({
thumbnail: PropTypes.shape({
url: PropTypes.string,
}),
}),
});
2022-07-31 16:39:47 +02:00
export const CrumbDefinition = PropTypes.shape({
id: PropTypes.number,
2022-08-23 13:39:32 +02:00
label: PropTypes.oneOfType([
PropTypes.string,
PropTypes.shape({
id: PropTypes.string.isRequired,
defaultMessage: PropTypes.string.isRequired,
}),
]).isRequired,
2022-07-31 16:39:47 +02:00
href: PropTypes.string,
});
export const CrumbMenuDefinition = PropTypes.arrayOf(CrumbDefinition);
export const BreadcrumbsDefinition = PropTypes.arrayOf(
PropTypes.oneOfType([CrumbDefinition, CrumbMenuDefinition])
);