I’m having components like this and they work:
<code>import { formatFileNumber } from "@components";
import type { ClientCompliance } from "@types";
import { Typography } from "@mui/material";
import type { FieldProps } from "react-admin";
import { sanitizeFieldRestProps, useRecordContext } from "react-admin";
interface FileNumberFieldProps extends Omit<FieldProps, "source"> {}
const FileNumberField = (props: FileNumberFieldProps) => {
const record = useRecordContext<ClientCompliance>();
const { ...rest } = props;
if (!record) {
return <></>;
}
return (
<Typography
component="span"
variant="body2"
{...sanitizeFieldRestProps(rest)}
>
{record.fileNumber ? formatFileNumber(record.fileNumber) : ""}
</Typography>
);
};
FileNumberField.displayName = "FileNumberField";
FileNumberField.defaultProps = { sortable: true, sortBy: "fileNumber" };
export default FileNumberField;
</code>
<code>import { formatFileNumber } from "@components";
import type { ClientCompliance } from "@types";
import { Typography } from "@mui/material";
import type { FieldProps } from "react-admin";
import { sanitizeFieldRestProps, useRecordContext } from "react-admin";
interface FileNumberFieldProps extends Omit<FieldProps, "source"> {}
const FileNumberField = (props: FileNumberFieldProps) => {
const record = useRecordContext<ClientCompliance>();
const { ...rest } = props;
if (!record) {
return <></>;
}
return (
<Typography
component="span"
variant="body2"
{...sanitizeFieldRestProps(rest)}
>
{record.fileNumber ? formatFileNumber(record.fileNumber) : ""}
</Typography>
);
};
FileNumberField.displayName = "FileNumberField";
FileNumberField.defaultProps = { sortable: true, sortBy: "fileNumber" };
export default FileNumberField;
</code>
import { formatFileNumber } from "@components";
import type { ClientCompliance } from "@types";
import { Typography } from "@mui/material";
import type { FieldProps } from "react-admin";
import { sanitizeFieldRestProps, useRecordContext } from "react-admin";
interface FileNumberFieldProps extends Omit<FieldProps, "source"> {}
const FileNumberField = (props: FileNumberFieldProps) => {
const record = useRecordContext<ClientCompliance>();
const { ...rest } = props;
if (!record) {
return <></>;
}
return (
<Typography
component="span"
variant="body2"
{...sanitizeFieldRestProps(rest)}
>
{record.fileNumber ? formatFileNumber(record.fileNumber) : ""}
</Typography>
);
};
FileNumberField.displayName = "FileNumberField";
FileNumberField.defaultProps = { sortable: true, sortBy: "fileNumber" };
export default FileNumberField;
However, I see that default props are deprecated and there’s a warning:
Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.
How can I replace the default props in such a component when I don’t can destructure the props inside the function arguments?