2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-28 11:36:44 +00:00

Fix for AttachmentTable (#6481)

* Fix for AttachmentTable

- Rebuild actions when permissions are recalculated

* Update examples.md
This commit is contained in:
Oliver 2024-02-15 00:45:33 +11:00 committed by GitHub
parent d86f964fb1
commit aed7754bc2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 38 additions and 34 deletions

View File

@ -4,7 +4,7 @@ import { ActionIcon } from '@mantine/core';
import { Dropzone } from '@mantine/dropzone'; import { Dropzone } from '@mantine/dropzone';
import { notifications } from '@mantine/notifications'; import { notifications } from '@mantine/notifications';
import { IconExternalLink, IconFileUpload } from '@tabler/icons-react'; import { IconExternalLink, IconFileUpload } from '@tabler/icons-react';
import { ReactNode, useEffect, useMemo, useState } from 'react'; import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';
import { api } from '../../App'; import { api } from '../../App';
import { AttachmentLink } from '../../components/items/AttachmentLink'; import { AttachmentLink } from '../../components/items/AttachmentLink';
@ -99,6 +99,7 @@ export function AttachmentTable({
setAllowEdit('POST' in actions); setAllowEdit('POST' in actions);
setAllowDelete('DELETE' in actions); setAllowDelete('DELETE' in actions);
return response; return response;
}) })
.catch((error) => { .catch((error) => {
@ -107,41 +108,44 @@ export function AttachmentTable({
}, []); }, []);
// Construct row actions for the attachment table // Construct row actions for the attachment table
function rowActions(record: any): RowAction[] { const rowActions = useCallback(
let actions: RowAction[] = []; (record: any) => {
let actions: RowAction[] = [];
if (allowEdit) { if (allowEdit) {
actions.push( actions.push(
RowEditAction({ RowEditAction({
onClick: () => { onClick: () => {
editAttachment({ editAttachment({
endpoint: endpoint, endpoint: endpoint,
model: model, model: model,
pk: record.pk, pk: record.pk,
attachmentType: record.attachment ? 'file' : 'link', attachmentType: record.attachment ? 'file' : 'link',
callback: table.refreshTable callback: table.refreshTable
}); });
} }
}) })
); );
} }
if (allowDelete) { if (allowDelete) {
actions.push( actions.push(
RowDeleteAction({ RowDeleteAction({
onClick: () => { onClick: () => {
deleteAttachment({ deleteAttachment({
endpoint: endpoint, endpoint: endpoint,
pk: record.pk, pk: record.pk,
callback: table.refreshTable callback: table.refreshTable
}); });
} }
}) })
); );
} }
return actions; return actions;
} },
[allowEdit, allowDelete]
);
// Callback to upload file attachment(s) // Callback to upload file attachment(s)
function uploadFiles(files: File[]) { function uploadFiles(files: File[]) {