2023-03-06 15:03:48 +00:00
|
|
|
import React from "react";
|
|
|
|
|
|
|
|
|
|
const baseClass = "upload-list";
|
|
|
|
|
|
|
|
|
|
interface IUploadListProps {
|
|
|
|
|
listItems: any[]; // TODO: typings
|
2023-04-27 15:10:41 +00:00
|
|
|
HeadingComponent?: (props: any) => JSX.Element; // TODO: Typings
|
2023-03-06 15:03:48 +00:00
|
|
|
ListItemComponent: (props: { listItem: any }) => JSX.Element; // TODO: types
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const UploadList = ({
|
|
|
|
|
listItems,
|
|
|
|
|
HeadingComponent,
|
|
|
|
|
ListItemComponent,
|
|
|
|
|
}: IUploadListProps) => {
|
|
|
|
|
const items = listItems.map((listItem) => {
|
|
|
|
|
return (
|
|
|
|
|
<li key={`${listItem.id}`} className={`${baseClass}__list-item`}>
|
|
|
|
|
<ListItemComponent listItem={listItem} />
|
|
|
|
|
</li>
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className={baseClass}>
|
2023-04-27 15:10:41 +00:00
|
|
|
{HeadingComponent && (
|
|
|
|
|
<div className={`${baseClass}__header`}>
|
|
|
|
|
<HeadingComponent />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
2023-03-06 15:03:48 +00:00
|
|
|
<ul className={`${baseClass}__list`}>{items}</ul>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default UploadList;
|