diff --git a/docs/Buttons.md b/docs/Buttons.md index 8117b1b6588..8dda6c66299 100644 --- a/docs/Buttons.md +++ b/docs/Buttons.md @@ -352,7 +352,7 @@ The `` component displays a menu item with a label and an icon - o | Prop | Required | Type | Default | Description | | ------------- | -------- | -------------------- | ------- | ---------------------------------------- | | `to` | Required | `string | location` | - | The menu item's target. It is passed to a React Router [NavLink](https://reacttraining.com/react-router/web/api/NavLink) component. | -| `primaryText` | Required | `string | ReactNode` | - | The menu content, displayed when the menu isn't minimized. | +| `primaryText` | Required | `ReactNode` | - | The menu content, displayed when the menu isn't minimized. | | `leftIcon` | Optional | `ReactNode` | - | The menu icon | Additional props are passed down to [the underling material-ui `` component](https://material-ui.com/api/menu-item/#menuitem-api). diff --git a/docs/Inputs.md b/docs/Inputs.md index dbbf000e533..e992937b7c5 100644 --- a/docs/Inputs.md +++ b/docs/Inputs.md @@ -277,7 +277,7 @@ To override the style of all instances of `` using the [material-ui | `multiple` | Optional | `boolean` | `false` | Set to true if the input should accept a list of files, false if it should only accept one file | | `labelSingle` | Optional | `string` | 'ra.input.file. upload_single' | Invite displayed in the drop zone if the input accepts one file | | `labelMultiple` | Optional | `string` | 'ra.input.file. upload_several' | Invite displayed in the drop zone if the input accepts several files | -| `placeholder` | Optional | `string | ReactNode` | - | Invite displayed in the drop zone, overrides `labelSingle` and `labelMultiple` | +| `placeholder` | Optional | `ReactNode` | - | Invite displayed in the drop zone, overrides `labelSingle` and `labelMultiple` | | `options` | Optional | `Object` | `{}` | Additional options passed to react-dropzone's `useDropzone()` hook. See [the react-dropzone source](https://github.com/react-dropzone/react-dropzone/blob/master/src/index.js) for details . | `` also accepts the [common input props](./Inputs.md#common-input-props). diff --git a/packages/ra-ui-materialui/src/Link.tsx b/packages/ra-ui-materialui/src/Link.tsx index 39023926cf0..b5beec6313d 100644 --- a/packages/ra-ui-materialui/src/Link.tsx +++ b/packages/ra-ui-materialui/src/Link.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { FC } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { Link as RRLink, LinkProps as RRLinkProps } from 'react-router-dom'; @@ -23,7 +22,7 @@ export interface LinkProps extends RRLinkProps { className?: string; } -const Link: FC = props => { +const Link = (props: LinkProps) => { const { to, children, diff --git a/packages/ra-ui-materialui/src/auth/LoginForm.tsx b/packages/ra-ui-materialui/src/auth/LoginForm.tsx index a8cd220c546..48ff37f1c79 100644 --- a/packages/ra-ui-materialui/src/auth/LoginForm.tsx +++ b/packages/ra-ui-materialui/src/auth/LoginForm.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { FunctionComponent } from 'react'; import PropTypes from 'prop-types'; import { Field, Form } from 'react-final-form'; import { @@ -52,7 +51,7 @@ const Input = ({ /> ); -const LoginForm: FunctionComponent = props => { +const LoginForm = (props: Props) => { const { redirectTo } = props; const [loading, setLoading] = useSafeSetState(false); const login = useLogin(); diff --git a/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx b/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx index f87d72134f9..121d6f1953c 100644 --- a/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkDeleteButton.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { FC } from 'react'; import PropTypes from 'prop-types'; import BulkDeleteWithConfirmButton, { BulkDeleteWithConfirmButtonProps, @@ -31,8 +30,8 @@ import BulkDeleteWithUndoButton, { * * ); */ -const BulkDeleteButton: FC = ({ undoable, ...props }) => - undoable ? ( +const BulkDeleteButton = (props: BulkDeleteButtonProps) => + props.undoable ? ( ) : ( diff --git a/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx b/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx index 1b137d36efe..9c8fb6f63c2 100644 --- a/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, Fragment, useState, ReactElement } from 'react'; +import { Fragment, useState, ReactElement } from 'react'; import PropTypes from 'prop-types'; import ActionDelete from '@material-ui/icons/Delete'; import { fade } from '@material-ui/core/styles/colorManipulator'; @@ -37,7 +37,9 @@ const useStyles = makeStyles( const defaultIcon = ; -const BulkDeleteWithConfirmButton: FC = props => { +const BulkDeleteWithConfirmButton = ( + props: BulkDeleteWithConfirmButtonProps +) => { const { basePath, classes: classesOverride, diff --git a/packages/ra-ui-materialui/src/button/BulkDeleteWithUndoButton.tsx b/packages/ra-ui-materialui/src/button/BulkDeleteWithUndoButton.tsx index 3c51b15771f..ed2761d2c56 100644 --- a/packages/ra-ui-materialui/src/button/BulkDeleteWithUndoButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkDeleteWithUndoButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, ReactElement } from 'react'; +import { ReactElement } from 'react'; import PropTypes from 'prop-types'; import ActionDelete from '@material-ui/icons/Delete'; import { fade } from '@material-ui/core/styles/colorManipulator'; @@ -33,7 +33,7 @@ const useStyles = makeStyles( { name: 'RaBulkDeleteWithUndoButton' } ); -const BulkDeleteWithUndoButton: FC = props => { +const BulkDeleteWithUndoButton = (props: BulkDeleteWithUndoButtonProps) => { const { basePath, classes: classesOverride, diff --git a/packages/ra-ui-materialui/src/button/BulkExportButton.tsx b/packages/ra-ui-materialui/src/button/BulkExportButton.tsx index 0413f876892..216e5c76e1f 100644 --- a/packages/ra-ui-materialui/src/button/BulkExportButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkExportButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useCallback, FunctionComponent } from 'react'; +import { useCallback } from 'react'; import PropTypes from 'prop-types'; import DownloadIcon from '@material-ui/icons/GetApp'; import { @@ -36,7 +36,7 @@ import Button, { ButtonProps } from './Button'; * * ); */ -const BulkExportButton: FunctionComponent = props => { +const BulkExportButton = (props: BulkExportButtonProps) => { const { onClick, label = 'ra.action.export', diff --git a/packages/ra-ui-materialui/src/button/BulkUpdateButton.tsx b/packages/ra-ui-materialui/src/button/BulkUpdateButton.tsx index 20791dc256d..d15ab42cd8c 100644 --- a/packages/ra-ui-materialui/src/button/BulkUpdateButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkUpdateButton.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { FC } from 'react'; import PropTypes from 'prop-types'; import BulkUpdateWithConfirmButton, { BulkUpdateWithConfirmButtonProps, @@ -32,15 +31,15 @@ import { MutationMode } from 'ra-core'; * * ); */ -const BulkUpdateButton: FC = ({ - mutationMode, - ...props -}) => - mutationMode === 'undoable' ? ( - +const BulkUpdateButton = (props: BulkUpdateButtonProps) => { + const { mutationMode, ...rest } = props; + + return mutationMode === 'undoable' ? ( + ) : ( - + ); +}; interface Props { mutationMode?: MutationMode; diff --git a/packages/ra-ui-materialui/src/button/BulkUpdateWithConfirmButton.tsx b/packages/ra-ui-materialui/src/button/BulkUpdateWithConfirmButton.tsx index ebee56ce3e7..8e0154e030b 100644 --- a/packages/ra-ui-materialui/src/button/BulkUpdateWithConfirmButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkUpdateWithConfirmButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, Fragment, useState, ReactElement } from 'react'; +import { Fragment, useState, ReactElement } from 'react'; import PropTypes from 'prop-types'; import ActionUpdate from '@material-ui/icons/Update'; import { fade } from '@material-ui/core/styles/colorManipulator'; @@ -38,7 +38,9 @@ const useStyles = makeStyles( const defaultIcon = ; -const BulkUpdateWithConfirmButton: FC = props => { +const BulkUpdateWithConfirmButton = ( + props: BulkUpdateWithConfirmButtonProps +) => { const notify = useNotify(); const refresh = useRefresh(); const translate = useTranslate(); diff --git a/packages/ra-ui-materialui/src/button/BulkUpdateWithUndoButton.tsx b/packages/ra-ui-materialui/src/button/BulkUpdateWithUndoButton.tsx index 6ec704e3d83..902ad38c580 100644 --- a/packages/ra-ui-materialui/src/button/BulkUpdateWithUndoButton.tsx +++ b/packages/ra-ui-materialui/src/button/BulkUpdateWithUndoButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, ReactElement } from 'react'; +import { ReactElement } from 'react'; import PropTypes from 'prop-types'; import ActionUpdate from '@material-ui/icons/Update'; import { fade } from '@material-ui/core/styles/colorManipulator'; @@ -33,7 +33,7 @@ const useStyles = makeStyles( { name: 'RaBulkUpdateWithUndoButton' } ); -const BulkUpdateWithUndoButton: FC = props => { +const BulkUpdateWithUndoButton = (props: BulkUpdateWithUndoButtonProps) => { const { selectedIds } = useListContext(props); const classes = useStyles(props); const notify = useNotify(); diff --git a/packages/ra-ui-materialui/src/button/Button.tsx b/packages/ra-ui-materialui/src/button/Button.tsx index 2a61a2ab2d3..cf1120c5c91 100644 --- a/packages/ra-ui-materialui/src/button/Button.tsx +++ b/packages/ra-ui-materialui/src/button/Button.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, ReactElement, SyntheticEvent, ReactNode } from 'react'; +import { ReactElement, SyntheticEvent, ReactNode } from 'react'; import PropTypes from 'prop-types'; import { Button as MuiButton, @@ -28,7 +28,7 @@ import { LocationDescriptor } from 'history'; * * */ -const Button: FC = props => { +const Button = (props: ButtonProps) => { const { alignIcon = 'left', children, diff --git a/packages/ra-ui-materialui/src/button/CloneButton.tsx b/packages/ra-ui-materialui/src/button/CloneButton.tsx index 4c136f735aa..95ae01781d7 100644 --- a/packages/ra-ui-materialui/src/button/CloneButton.tsx +++ b/packages/ra-ui-materialui/src/button/CloneButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, memo, ReactElement } from 'react'; +import { memo, ReactElement } from 'react'; import PropTypes from 'prop-types'; import Queue from '@material-ui/icons/Queue'; import { Link } from 'react-router-dom'; @@ -8,14 +8,16 @@ import { Record, useResourceContext } from 'ra-core'; import Button, { ButtonProps } from './Button'; -export const CloneButton: FC = ({ - basePath = '', - label = 'ra.action.clone', - scrollToTop = true, - record, - icon = defaultIcon, - ...rest -}) => { +export const CloneButton = (props: CloneButtonProps) => { + const { + basePath = '', + label = 'ra.action.clone', + scrollToTop = true, + record, + icon = defaultIcon, + ...rest + } = props; + const resource = useResourceContext(); const pathname = basePath ? `${basePath}/create` : `/${resource}/create`; return ( diff --git a/packages/ra-ui-materialui/src/button/CreateButton.tsx b/packages/ra-ui-materialui/src/button/CreateButton.tsx index 750e071c7a6..e873db8f85d 100644 --- a/packages/ra-ui-materialui/src/button/CreateButton.tsx +++ b/packages/ra-ui-materialui/src/button/CreateButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, ReactElement, memo, useMemo } from 'react'; +import { ReactElement, memo, useMemo } from 'react'; import PropTypes from 'prop-types'; import { Fab, useMediaQuery, Theme } from '@material-ui/core'; import { makeStyles } from '@material-ui/core/styles'; @@ -23,7 +23,7 @@ import Button, { ButtonProps, sanitizeButtonRestProps } from './Button'; * * ); */ -const CreateButton: FC = props => { +const CreateButton = (props: CreateButtonProps) => { const { basePath = '', className, diff --git a/packages/ra-ui-materialui/src/button/DeleteButton.tsx b/packages/ra-ui-materialui/src/button/DeleteButton.tsx index 820db4f024a..f9fa48be254 100644 --- a/packages/ra-ui-materialui/src/button/DeleteButton.tsx +++ b/packages/ra-ui-materialui/src/button/DeleteButton.tsx @@ -49,24 +49,21 @@ import { DeleteWithConfirmButton } from './DeleteWithConfirmButton'; * return } {...props} />; * }; */ -export const DeleteButton = ({ - undoable, - mutationMode, - record, - ...props -}: DeleteButtonProps) => { +export const DeleteButton = (props: DeleteButtonProps) => { + const { undoable, mutationMode, record, ...rest } = props; const mode = getMutationMode(mutationMode, undoable); if (!record || record.id == null) { return null; } return mode === 'undoable' ? ( - + ) : ( ); }; diff --git a/packages/ra-ui-materialui/src/button/EditButton.tsx b/packages/ra-ui-materialui/src/button/EditButton.tsx index 4b16bde1053..cfccdd1f3c9 100644 --- a/packages/ra-ui-materialui/src/button/EditButton.tsx +++ b/packages/ra-ui-materialui/src/button/EditButton.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { FC, ReactElement, useMemo } from 'react'; +import { ReactElement, useMemo } from 'react'; import PropTypes from 'prop-types'; import ContentCreate from '@material-ui/icons/Create'; import { ButtonProps as MuiButtonProps } from '@material-ui/core/Button'; @@ -18,14 +18,15 @@ import Button, { ButtonProps } from './Button'; * * ); */ -const EditButton: FC = ({ - basePath = '', - icon = defaultIcon, - label = 'ra.action.edit', - record, - scrollToTop = true, - ...rest -}) => { +const EditButton = (props: EditButtonProps) => { + const { + basePath = '', + icon = defaultIcon, + label = 'ra.action.edit', + record, + scrollToTop = true, + ...rest + } = props; const resource = useResourceContext(); return (