From 513dde9aea38c81b3209de1a34a607fc063a6313 Mon Sep 17 00:00:00 2001 From: asvarcas Date: Wed, 17 Feb 2021 10:46:12 -0300 Subject: [PATCH 1/2] Fix resource propType definition in components using ResourceContext --- packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx | 2 +- .../ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx | 2 +- packages/ra-ui-materialui/src/button/BulkExportButton.tsx | 2 +- packages/ra-ui-materialui/src/detail/Edit.tsx | 2 +- packages/ra-ui-materialui/src/detail/Show.tsx | 2 +- packages/ra-ui-materialui/src/list/BulkDeleteAction.tsx | 2 +- packages/ra-ui-materialui/src/list/List.tsx | 2 +- packages/ra-ui-materialui/src/list/filter/FilterButton.tsx | 2 +- .../ra-ui-materialui/src/list/filter/FilterButtonMenuItem.tsx | 2 +- packages/ra-ui-materialui/src/list/filter/FilterForm.tsx | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx b/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx index 4317a69b443..e313b3a71d6 100644 --- a/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx @@ -25,7 +25,7 @@ export type BulkDeleteButtonProps = Props & BulkDeleteButton.propTypes = { basePath: PropTypes.string, label: PropTypes.string, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, selectedIds: PropTypes.arrayOf(PropTypes.any).isRequired, undoable: PropTypes.bool, icon: PropTypes.element, diff --git a/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx b/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx index 761b03108c9..255b1cd06ca 100644 --- a/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx @@ -164,7 +164,7 @@ BulkDeleteWithConfirmButton.propTypes = { confirmTitle: PropTypes.string, confirmContent: PropTypes.string, label: PropTypes.string, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, selectedIds: PropTypes.arrayOf(PropTypes.any).isRequired, icon: PropTypes.element, }; diff --git a/packages/ra-ui-materialui/src/button/BulkExportButton.tsx b/packages/ra-ui-materialui/src/button/BulkExportButton.tsx index bf09101352b..c5150ac338d 100644 --- a/packages/ra-ui-materialui/src/button/BulkExportButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkExportButton.tsx @@ -91,7 +91,7 @@ BulkExportButton.propTypes = { basePath: PropTypes.string, exporter: PropTypes.func, label: PropTypes.string, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, selectedIds: PropTypes.arrayOf(PropTypes.any).isRequired, icon: PropTypes.element, }; diff --git a/packages/ra-ui-materialui/src/detail/Edit.tsx b/packages/ra-ui-materialui/src/detail/Edit.tsx index 43f65f301b6..a1abe2249a8 100644 --- a/packages/ra-ui-materialui/src/detail/Edit.tsx +++ b/packages/ra-ui-materialui/src/detail/Edit.tsx @@ -90,7 +90,7 @@ Edit.propTypes = { mutationMode: PropTypes.oneOf(['pessimistic', 'optimistic', 'undoable']), onSuccess: PropTypes.func, onFailure: PropTypes.func, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, successMessage: PropTypes.string, title: PropTypes.node, transform: PropTypes.func, diff --git a/packages/ra-ui-materialui/src/detail/Show.tsx b/packages/ra-ui-materialui/src/detail/Show.tsx index 9d5512fa5cd..991f874370c 100644 --- a/packages/ra-ui-materialui/src/detail/Show.tsx +++ b/packages/ra-ui-materialui/src/detail/Show.tsx @@ -85,6 +85,6 @@ Show.propTypes = { hasList: PropTypes.bool, hasShow: PropTypes.bool, id: PropTypes.any.isRequired, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, title: PropTypes.node, }; diff --git a/packages/ra-ui-materialui/src/list/BulkDeleteAction.tsx b/packages/ra-ui-materialui/src/list/BulkDeleteAction.tsx index 9d27952bda4..4c43cea394d 100644 --- a/packages/ra-ui-materialui/src/list/BulkDeleteAction.tsx +++ b/packages/ra-ui-materialui/src/list/BulkDeleteAction.tsx @@ -35,7 +35,7 @@ BulkDeleteAction.propTypes = { basePath: PropTypes.string, label: PropTypes.string, onExit: PropTypes.func.isRequired, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, selectedIds: PropTypes.arrayOf(PropTypes.any).isRequired, translate: PropTypes.func.isRequired, undoable: PropTypes.bool, diff --git a/packages/ra-ui-materialui/src/list/List.tsx b/packages/ra-ui-materialui/src/list/List.tsx index e4830af97ef..df7f56441c7 100644 --- a/packages/ra-ui-materialui/src/list/List.tsx +++ b/packages/ra-ui-materialui/src/list/List.tsx @@ -103,7 +103,7 @@ List.propTypes = { location: PropTypes.any, match: PropTypes.any, path: PropTypes.string, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, syncWithLocation: PropTypes.bool, }; diff --git a/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx b/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx index 7931a9fb2b8..01fb7cca81d 100644 --- a/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx +++ b/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx @@ -98,7 +98,7 @@ const FilterButton = (props: FilterButtonProps): JSX.Element => { }; FilterButton.propTypes = { - resource: PropTypes.string.isRequired, + resource: PropTypes.string, filters: PropTypes.arrayOf(PropTypes.node).isRequired, displayedFilters: PropTypes.object, filterValues: PropTypes.object.isRequired, diff --git a/packages/ra-ui-materialui/src/list/filter/FilterButtonMenuItem.tsx b/packages/ra-ui-materialui/src/list/filter/FilterButtonMenuItem.tsx index 72d98de7413..1677efc6a42 100644 --- a/packages/ra-ui-materialui/src/list/filter/FilterButtonMenuItem.tsx +++ b/packages/ra-ui-materialui/src/list/filter/FilterButtonMenuItem.tsx @@ -37,7 +37,7 @@ export const FilterButtonMenuItem = forwardRef( FilterButtonMenuItem.propTypes = { filter: PropTypes.element.isRequired, onShow: PropTypes.func.isRequired, - resource: PropTypes.string.isRequired, + resource: PropTypes.string, }; export interface FilterButtonMenuItemProps { diff --git a/packages/ra-ui-materialui/src/list/filter/FilterForm.tsx b/packages/ra-ui-materialui/src/list/filter/FilterForm.tsx index 1cee687d066..9e8fefe522e 100644 --- a/packages/ra-ui-materialui/src/list/filter/FilterForm.tsx +++ b/packages/ra-ui-materialui/src/list/filter/FilterForm.tsx @@ -137,7 +137,7 @@ const handleSubmit = event => { }; FilterForm.propTypes = { - resource: PropTypes.string.isRequired, + resource: PropTypes.string, filters: PropTypes.arrayOf(PropTypes.node).isRequired, displayedFilters: PropTypes.object, hideFilter: PropTypes.func.isRequired, From 396cb3092fa0e6b5e86af256c5b270827b0436c8 Mon Sep 17 00:00:00 2001 From: asvarcas Date: Wed, 17 Feb 2021 10:50:53 -0300 Subject: [PATCH 2/2] Make FilterButton use ResourceContext --- packages/ra-ui-materialui/src/list/filter/FilterButton.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx b/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx index 01fb7cca81d..590a04db4dd 100644 --- a/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx +++ b/packages/ra-ui-materialui/src/list/filter/FilterButton.tsx @@ -16,6 +16,7 @@ import lodashGet from 'lodash/get'; import { FilterButtonMenuItem } from './FilterButtonMenuItem'; import Button from '../../button/Button'; import { ClassesOverride } from '../../types'; +import { useResourceContext } from 'ra-core'; const useStyles = makeStyles( { @@ -32,9 +33,10 @@ const FilterButton = (props: FilterButtonProps): JSX.Element => { showFilter, classes: classesOverride, className, - resource, + resource: propsResource, ...rest } = props; + const resource = useResourceContext(props); const [open, setOpen] = useState(false); const anchorEl = useRef(); const classes = useStyles(props);