From ac0f2334aa46a331be1c5d46d1e0f740c1e0e2bb Mon Sep 17 00:00:00 2001 From: fzaninotto Date: Sat, 10 Apr 2021 01:38:01 +0200 Subject: [PATCH] [TypeScript] Fix minor type errors in ra-ui-material-ui and validate --- examples/simple/src/comments/CommentEdit.tsx | 9 ++-- examples/simple/src/comments/CommentList.tsx | 6 +-- examples/simple/src/comments/PostPreview.tsx | 41 ++++++++++++++----- .../simple/src/comments/PostQuickCreate.tsx | 5 ++- examples/simple/src/posts/PostCreate.tsx | 2 +- examples/simple/src/posts/PostEdit.tsx | 12 ++++-- examples/simple/src/posts/PostList.tsx | 8 ++-- examples/simple/src/posts/PostShow.tsx | 5 ++- examples/simple/src/posts/PostTitle.tsx | 4 +- .../simple/src/posts/TagReferenceInput.tsx | 8 +++- examples/simple/src/users/UserCreate.tsx | 15 +++---- packages/ra-core/src/form/validate.ts | 28 +++++++++---- .../src/button/BulkExportButton.tsx | 2 +- .../ra-ui-materialui/src/detail/ShowView.tsx | 2 +- .../src/field/TranslatableFields.tsx | 6 +-- .../ra-ui-materialui/src/form/Toolbar.tsx | 7 +++- 16 files changed, 103 insertions(+), 57 deletions(-) diff --git a/examples/simple/src/comments/CommentEdit.tsx b/examples/simple/src/comments/CommentEdit.tsx index 97425b6b54f..f480054ede6 100644 --- a/examples/simple/src/comments/CommentEdit.tsx +++ b/examples/simple/src/comments/CommentEdit.tsx @@ -13,10 +13,11 @@ import { TextInput, Title, minLength, + Record, } from 'react-admin'; // eslint-disable-line import/no-unresolved -const LinkToRelatedPost = ({ record }) => ( - +const LinkToRelatedPost = ({ record }: { record?: Record }) => ( + See related post @@ -33,9 +34,9 @@ const useEditStyles = makeStyles({ }, }); -const OptionRenderer = ({ record }) => ( +const OptionRenderer = ({ record }: { record?: Record }) => ( - {record.title} - {record.id} + {record?.title} - {record?.id} ); diff --git a/examples/simple/src/comments/CommentList.tsx b/examples/simple/src/comments/CommentList.tsx index 1a0716f0fc8..a2d54edaa74 100644 --- a/examples/simple/src/comments/CommentList.tsx +++ b/examples/simple/src/comments/CommentList.tsx @@ -14,7 +14,7 @@ import { Typography, useMediaQuery, } from '@material-ui/core'; -import { makeStyles } from '@material-ui/core/styles'; +import { makeStyles, Theme } from '@material-ui/core/styles'; import jsonExport from 'jsonexport/dist'; import { ListBase, @@ -76,7 +76,7 @@ const CommentPagination = () => { const translate = useTranslate(); const nbPages = Math.ceil(total / perPage) || 1; if (!loading && (total === 0 || (ids && !ids.length))) { - return ; + return ; } return ( @@ -209,7 +209,7 @@ const CommentList = props => ( ); const ListView = () => { - const isSmall = useMediaQuery(theme => theme.breakpoints.down('sm')); + const isSmall = useMediaQuery(theme => theme.breakpoints.down('sm')); const { defaultTitle } = useListContext(); return ( <> diff --git a/examples/simple/src/comments/PostPreview.tsx b/examples/simple/src/comments/PostPreview.tsx index 89d0934c7e2..67a26212ce1 100644 --- a/examples/simple/src/comments/PostPreview.tsx +++ b/examples/simple/src/comments/PostPreview.tsx @@ -1,20 +1,39 @@ import * as React from 'react'; import { useSelector } from 'react-redux'; -import { SimpleShowLayout, TextField } from 'react-admin'; +import { + SimpleShowLayout, + TextField, + ReduxState, + Identifier, + Record, +} from 'react-admin'; -const PostPreview = props => { - const record = useSelector( - state => - state.admin.resources[props.resource] - ? state.admin.resources[props.resource].data[props.id] - : null, - [props.resource, props.id] +const PostPreview = ({ + id, + basePath, + resource, +}: { + id: Identifier; + basePath: string; + resource: string; +}) => { + const record = useSelector(state => + state.admin.resources[resource] + ? state.admin.resources[resource].data[id] + : null ); - const version = useSelector(state => state.admin.ui.viewVersion); - useSelector(state => state.admin.loading > 0); + const version = useSelector( + state => state.admin.ui.viewVersion + ); + useSelector(state => state.admin.loading > 0); return ( - + diff --git a/examples/simple/src/comments/PostQuickCreate.tsx b/examples/simple/src/comments/PostQuickCreate.tsx index fc777811a66..df4b1ca1914 100644 --- a/examples/simple/src/comments/PostQuickCreate.tsx +++ b/examples/simple/src/comments/PostQuickCreate.tsx @@ -11,6 +11,7 @@ import { Toolbar, required, showNotification, + ReduxState, } from 'react-admin'; // eslint-disable-line import/no-unresolved import CancelButton from './PostQuickCreateCancelButton'; @@ -36,7 +37,9 @@ const useStyles = makeStyles({ const PostQuickCreate = ({ onCancel, onSave, ...props }) => { const classes = useStyles(); const dispatch = useDispatch(); - const submitting = useSelector(state => state.admin.loading > 0); + const submitting = useSelector( + state => state.admin.loading > 0 + ); const handleSave = useCallback( values => { diff --git a/examples/simple/src/posts/PostCreate.tsx b/examples/simple/src/posts/PostCreate.tsx index cfc4d227c2a..f4bf3df8113 100644 --- a/examples/simple/src/posts/PostCreate.tsx +++ b/examples/simple/src/posts/PostCreate.tsx @@ -73,7 +73,7 @@ const PostCreate = ({ permissions, ...props }) => { toolbar={} initialValues={initialValues} validate={values => { - const errors = {}; + const errors = {} as any; ['title', 'teaser'].forEach(field => { if (!values[field]) { errors[field] = 'Required field'; diff --git a/examples/simple/src/posts/PostEdit.tsx b/examples/simple/src/posts/PostEdit.tsx index de8a6a5e0dc..948b25ce895 100644 --- a/examples/simple/src/posts/PostEdit.tsx +++ b/examples/simple/src/posts/PostEdit.tsx @@ -29,12 +29,12 @@ import { required, FormDataConsumer, } from 'react-admin'; // eslint-disable-line import/no-unresolved -import { Box } from '@material-ui/core'; +import { Box, BoxProps } from '@material-ui/core'; import PostTitle from './PostTitle'; import TagReferenceInput from './TagReferenceInput'; -const EditActions = ({ basePath, data, hasShow }) => ( +const EditActions = ({ basePath, data, hasShow }: any) => ( ( ); -const SanitizedBox = ({ fullWidth, basePath, ...props }) => ; +const SanitizedBox = ({ + fullWidth, + basePath, + ...props +}: BoxProps & { fullWidth?: boolean; basePath?: string }) => ; const PostEdit = ({ permissions, ...props }) => ( } actions={} {...props}> @@ -147,7 +151,7 @@ const PostEdit = ({ permissions, ...props }) => ( - + ({ marginBottom: theme.spacing(1), }, })); -const QuickFilter = ({ label }) => { +const QuickFilter = ({ label, source, defaultValue }) => { const translate = useTranslate(); const classes = useQuickFilterStyles(); return ; @@ -81,7 +81,7 @@ const useStyles = makeStyles(theme => ({ publishedAt: { fontStyle: 'italic' }, })); -const PostListBulkActions = memo(props => ( +const PostListBulkActions = memo(({ children, ...props }) => ( @@ -121,7 +121,7 @@ const PostPanel = ({ id, record, resource }) => ( const PostList = props => { const classes = useStyles(); - const isSmall = useMediaQuery(theme => theme.breakpoints.down('sm')); + const isSmall = useMediaQuery(theme => theme.breakpoints.down('sm')); return ( ( +const CreateRelatedComment = ({ record }: { record?: Record }) => (