docs_headless/src/content/docs/useGenerateChangeMessage.md
Automatically generates a human-readable message describing the changes made to a record by comparing the new data with the existing record.
This feature requires a valid is an Enterprise Edition subscription.
import { EditBase } from 'ra-core';
import { SimpleForm, TextInput } from 'my-react-admin-ui-library';
import { useGenerateChangeMessage } from '@react-admin/ra-core-ee';
const ProductEdit = () => {
const generateChangeMessage = useGenerateChangeMessage();
const handleSave = data => {
const message = generateChangeMessage({ data });
// message might be: "Changed name, description" or "Initial revision"
console.log(message);
};
return (
<EditBase mutationOptions={{ onSuccess: handleSave }}>
<SimpleForm>
<TextInput source="name" />
<TextInput source="description" />
</SimpleForm>
</EditBase>
);
};
Parameters:
props.resource?: The resource name (defaults to current resource context)props.record?: The original record (defaults to current record context)Returns:
A function that takes { data, record?, resource? } and returns a localized message describing the changes:
"Initial revision" for new records"No changes" when no fields were modified"Changed [field]" for single field changes"Changed [field1], [field2], ..." for multiple field changesInternationalization:
The returned message is fully internationalized using the i18n provider. The following translation keys are used:
ra-history.on_save.initial_changes: "Initial revision"ra-history.on_save.no_changes: "No changes"ra-history.on_save.one_change: "Changed %{field}"ra-history.on_save.many_changes: "Changed %{fields}"