import React, { FC, useMemo } from 'react';
import { ImageUpload } from '~/components/upload/ImageUpload';
import { ImagePresets } from '~/constants/urls';
import { UploadStatus } from '~/store/uploader/UploaderStore';
import { IFile } from '~/types';
import { getURL } from '~/utils/dom';
import { SortableGrid } from '../SortableGrid';
type OnSortEnd = (newValue: IFile[]) => void;
interface SortableImageGridProps {
onSortEnd: OnSortEnd;
items: IFile[];
locked: UploadStatus[];
onDelete: (file_id: IFile['id']) => void;
className?: string;
size?: number;
}
const renderItem = ({ item, onDelete }: { item: IFile; onDelete: (fileId: number) => void }) => (
);
const renderLocked = ({
locked,
onDelete,
}: {
locked: UploadStatus;
onDelete: (fileId: number) => void;
}) => (
);
const SortableImageGrid: FC = ({
items,
locked,
onDelete,
className,
onSortEnd,
size,
}) => {
const props = useMemo(() => ({ onDelete }), [onDelete]);
return (
it.id}
getLockedID={it => it.id}
renderItem={renderItem}
renderItemProps={props}
renderLocked={renderLocked}
renderLockedProps={props}
onSortEnd={onSortEnd}
className={className}
size={size}
/>
);
};
export { SortableImageGrid };