diff --git a/packages/ra-core/src/dataProvider/useCreate.ts b/packages/ra-core/src/dataProvider/useCreate.ts index 3b34cb63948..4aae973adfa 100644 --- a/packages/ra-core/src/dataProvider/useCreate.ts +++ b/packages/ra-core/src/dataProvider/useCreate.ts @@ -39,9 +39,10 @@ import { RaRecord, CreateParams } from '../types'; * * @example // set params when calling the create callback * - * import { useCreate } from 'react-admin'; + * import { useCreate, useRecordContext } from 'react-admin'; * - * const LikeButton = ({ record }) => { + * const LikeButton = () => { + * const record = useRecordContext(); * const like = { postId: record.id }; * const [create, { isLoading, error }] = useCreate(); * const handleClick = () => { @@ -53,9 +54,10 @@ import { RaRecord, CreateParams } from '../types'; * * @example // set params when calling the hook * - * import { useCreate } from 'react-admin'; + * import { useCreate, useRecordContext } from 'react-admin'; * - * const LikeButton = ({ record }) => { + * const LikeButton = () => { + * const record = useRecordContext(); * const like = { postId: record.id }; * const [create, { isLoading, error }] = useCreate('likes', { data: like }); * if (error) { return
ERROR
; } diff --git a/packages/ra-core/src/dataProvider/useDelete.ts b/packages/ra-core/src/dataProvider/useDelete.ts index d881ef2c557..da72dd49fc9 100644 --- a/packages/ra-core/src/dataProvider/useDelete.ts +++ b/packages/ra-core/src/dataProvider/useDelete.ts @@ -48,9 +48,10 @@ import { * * @example // set params when calling the deleteOne callback * - * import { useDelete } from 'react-admin'; + * import { useDelete, useRecordContext } from 'react-admin'; * - * const DeleteButton = ({ record }) => { + * const DeleteButton = () => { + * const record = useRecordContext(); * const [deleteOne, { isLoading, error }] = useDelete(); * const handleClick = () => { * deleteOne('likes', { id: record.id, previousData: record }) @@ -61,9 +62,10 @@ import { * * @example // set params when calling the hook * - * import { useDelete } from 'react-admin'; + * import { useDelete, useRecordContext } from 'react-admin'; * - * const DeleteButton = ({ record }) => { + * const DeleteButton = () => { + * const record = useRecordContext(); * const [deleteOne, { isLoading, error }] = useDelete('likes', { id: record.id, previousData: record }); * if (error) { returnERROR
; } * return ; diff --git a/packages/ra-core/src/dataProvider/useGetManyAggregate.ts b/packages/ra-core/src/dataProvider/useGetManyAggregate.ts index 34c1309a744..a3efc92ff9a 100644 --- a/packages/ra-core/src/dataProvider/useGetManyAggregate.ts +++ b/packages/ra-core/src/dataProvider/useGetManyAggregate.ts @@ -49,9 +49,10 @@ import { useDataProvider } from './useDataProvider'; * * @example * - * import { useGetManyAggregate } from 'react-admin'; + * import { useGetManyAggregate, useRecordContext } from 'react-admin'; * - * const PostTags = ({ record }) => { + * const PostTags = () => { + * const record = useRecordContext(); * const { data, isLoading, error } = useGetManyAggregate('tags', { ids: record.tagIds }); * if (isLoading) { returnERROR
; } diff --git a/packages/ra-core/src/dataProvider/useGetManyReference.ts b/packages/ra-core/src/dataProvider/useGetManyReference.ts index 35131eafbd1..fb2d159c35a 100644 --- a/packages/ra-core/src/dataProvider/useGetManyReference.ts +++ b/packages/ra-core/src/dataProvider/useGetManyReference.ts @@ -39,14 +39,14 @@ import { useDataProvider } from './useDataProvider'; * @prop params.filter The request filters, e.g. { title: 'hello, world' } * @prop params.meta Optional meta parameters * - * * @returns The current request state. Destructure as { data, total, error, isLoading, refetch }. * * @example * - * import { useGetManyReference } from 'react-admin'; + * import { useGetManyReference, useRecordContext } from 'react-admin'; * - * const PostComments = ({ record }) => { + * const PostComments = () => { + * const record = useRecordContext(); * // fetch all comments related to the current record * const { data, isLoading, error } = useGetManyReference( * 'comments', diff --git a/packages/ra-core/src/dataProvider/useGetOne.ts b/packages/ra-core/src/dataProvider/useGetOne.ts index b36ab4462a0..b0eace49c38 100644 --- a/packages/ra-core/src/dataProvider/useGetOne.ts +++ b/packages/ra-core/src/dataProvider/useGetOne.ts @@ -31,9 +31,10 @@ import { useDataProvider } from './useDataProvider'; * * @example * - * import { useGetOne } from 'react-admin'; + * import { useGetOne, useRecordContext } from 'react-admin'; * - * const UserProfile = ({ record }) => { + * const UserProfile = () => { + * const record = useRecordContext(); * const { data, isLoading, error } = useGetOne('users', { id: record.id }); * if (isLoading) { returnERROR
; } diff --git a/packages/ra-core/src/dataProvider/useUpdate.ts b/packages/ra-core/src/dataProvider/useUpdate.ts index e876b9aa449..e0ea0504667 100644 --- a/packages/ra-core/src/dataProvider/useUpdate.ts +++ b/packages/ra-core/src/dataProvider/useUpdate.ts @@ -50,9 +50,10 @@ import { * * @example // set params when calling the update callback * - * import { useUpdate } from 'react-admin'; + * import { useUpdate, useRecordContext } from 'react-admin'; * - * const IncreaseLikeButton = ({ record }) => { + * const IncreaseLikeButton = () => { + * const record = useRecordContext(); * const diff = { likes: record.likes + 1 }; * const [update, { isLoading, error }] = useUpdate(); * const handleClick = () => { @@ -64,9 +65,10 @@ import { * * @example // set params when calling the hook * - * import { useUpdate } from 'react-admin'; + * import { useUpdate, useRecordContext } from 'react-admin'; * - * const IncreaseLikeButton = ({ record }) => { + * const IncreaseLikeButton = () => { + * const record = useRecordContext(); * const diff = { likes: record.likes + 1 }; * const [update, { isLoading, error }] = useUpdate('likes', { id: record.id, data: diff, previousData: record }); * if (error) { returnERROR
; } diff --git a/packages/ra-core/src/dataProvider/useUpdateMany.ts b/packages/ra-core/src/dataProvider/useUpdateMany.ts index 9d2ef8eb6d9..f1705001855 100644 --- a/packages/ra-core/src/dataProvider/useUpdateMany.ts +++ b/packages/ra-core/src/dataProvider/useUpdateMany.ts @@ -50,9 +50,10 @@ import { Identifier } from '..'; * * @example // set params when calling the updateMany callback * - * import { useUpdateMany } from 'react-admin'; + * import { useUpdateMany, useListContext } from 'react-admin'; * - * const BulkResetViewsButton = ({ selectedIds }) => { + * const BulkResetViewsButton = () => { + * const { selectedIds } = useListContext(); * const [updateMany, { isLoading, error }] = useUpdateMany(); * const handleClick = () => { * updateMany('posts', { ids: selectedIds, data: { views: 0 } }); @@ -63,9 +64,10 @@ import { Identifier } from '..'; * * @example // set params when calling the hook * - * import { useUpdateMany } from 'react-admin'; + * import { useUpdateMany, useListContext } from 'react-admin'; * - * const BulkResetViewsButton = ({ selectedIds }) => { + * const BulkResetViewsButton = () => { + * const { selectedIds } = useListContext(); * const [updateMany, { isLoading, error }] = useUpdateMany('posts', { ids: selectedIds, data: { views: 0 } }); * if (error) { returnERROR
; } * return ; diff --git a/packages/ra-ui-materialui/src/button/ShowButton.tsx b/packages/ra-ui-materialui/src/button/ShowButton.tsx index 9fa2b776a46..5b772d43c08 100644 --- a/packages/ra-ui-materialui/src/button/ShowButton.tsx +++ b/packages/ra-ui-materialui/src/button/ShowButton.tsx @@ -16,11 +16,14 @@ import { Button, ButtonProps } from './Button'; * Opens the Show view of a given record * * @example // basic usage - * import { ShowButton } from 'react-admin'; + * import { ShowButton, useRecordContext } from 'react-admin'; * - * const CommentShowButton = ({ record }) => ( - *