fix: content reload after import

This commit is contained in:
Emnaghz 2024-10-09 16:32:08 +01:00
parent fde4224703
commit 535b4f0f8e
6 changed files with 34 additions and 13 deletions

View File

@ -46,7 +46,7 @@ const AttachmentInput = forwardRef<HTMLDivElement, AttachmentThumbnailProps>(
ref,
) => {
const hasPermission = useHasPermission();
const handleChange = (attachment: IAttachment | null) => {
const handleChange = (attachment?: IAttachment | null) => {
onChange && onChange(attachment?.id || null, attachment?.type || null);
};

View File

@ -65,7 +65,7 @@ export type FileUploadProps = {
imageButton?: boolean;
accept: string;
enableMediaLibrary?: boolean;
onChange?: (data: IAttachment | null) => void;
onChange?: (data?: IAttachment | null) => void;
};
const AttachmentUploader: FC<FileUploadProps> = ({
@ -99,15 +99,16 @@ const AttachmentUploader: FC<FileUploadProps> = ({
const file = event.target.files.item(0);
if (file) {
const acceptedTypes = accept.split(',');
const isValidType = acceptedTypes.some((type) =>
file.type === type || file.name.endsWith(type.replace('.*', ''))
const acceptedTypes = accept.split(",");
const isValidType = acceptedTypes.some(
(type) =>
file.type === type || file.name.endsWith(type.replace(".*", "")),
);
if (!isValidType) {
toast.error(t("message.invalid_file_type"));
return;
return;
}
uploadAttachment(file);

View File

@ -43,7 +43,16 @@ export const DeleteDialog: FC<DeleteDialogProps> = ({
</Grid>
</DialogContent>
<DialogActions>
<Button variant="contained" color="error" onClick={callback} autoFocus>
<Button
variant="contained"
color="error"
onClick={() => {
if (callback) {
callback();
}
}}
autoFocus
>
{t("button.yes")}
</Button>
<Button variant="outlined" onClick={closeFunction}>

View File

@ -38,17 +38,23 @@ export const ContentImportDialog: FC<ContentImportDialogProps> = ({
const { refetch, isFetching } = useQuery(
["importContent", data?.contentType?.id, attachmentId],
async () => {
await apiClient.importContent(data?.contentType?.id!, attachmentId!)},
if (data?.contentType?.id && attachmentId) {
await apiClient.importContent(data.contentType.id, attachmentId);
}
},
{
enabled: false,
onSuccess: () => {
handleCloseDialog();
toast.success(t("message.success_save"));
if (rest.callback) {
rest.callback();
}
},
onError: () => {
toast.error(t("message.internal_server_error"));
},
}
},
);
const handleCloseDialog = () => {
closeDialog();

View File

@ -67,7 +67,7 @@ export const Contents = () => {
const { data: contentType } = useGet(String(query.id), {
entity: EntityType.CONTENT_TYPE,
});
const { dataGridProps } = useFind(
const { dataGridProps, refetch } = useFind(
{ entity: EntityType.CONTENT, format: Format.FULL },
{
params: searchPayload,
@ -161,7 +161,12 @@ export const Contents = () => {
<Paper>
<ContentDialog {...getDisplayDialogs(addDialogCtl)} />
<ContentDialog {...getDisplayDialogs(editDialogCtl)} />
<ContentImportDialog {...getDisplayDialogs(importDialogCtl)} />
<ContentImportDialog
{...getDisplayDialogs(importDialogCtl)}
callback={() => {
refetch();
}}
/>
<DeleteDialog
{...deleteDialogCtl}
callback={() => {

View File

@ -15,7 +15,7 @@ export type DialogControlProps<T, C = never> = Omit<
>;
export type DialogControl<T = null, C = never> = DialogProps & {
data?: T;
callback?: (data: C) => void;
callback?: (data?: C) => void;
openDialog: (data?: T) => void;
closeDialog: () => void;
};