Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rest props sanitizer for Fields and Inputs #5392

Merged
merged 1 commit into from
Oct 13, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/BooleanField.tsx
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ import { TypographyProps } from '@material-ui/core/Typography';
import { useTranslate } from 'ra-core';

import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';
import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';

const useStyles = makeStyles(
{
@@ -55,7 +55,7 @@ export const BooleanField: FC<BooleanFieldProps> = memo<BooleanFieldProps>(
component="span"
variant="body2"
className={classnames(classes.root, className)}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
<Tooltip title={translate(ariaLabel, { _: ariaLabel })}>
{value === true ? (
@@ -73,7 +73,7 @@ export const BooleanField: FC<BooleanFieldProps> = memo<BooleanFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/ChipField.tsx
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ import Typography from '@material-ui/core/Typography';
import { makeStyles } from '@material-ui/core/styles';
import classnames from 'classnames';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

const useStyles = makeStyles(
@@ -34,7 +34,7 @@ export const ChipField: FC<ChipFieldProps> = memo<ChipFieldProps>(props => {
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
@@ -45,7 +45,7 @@ export const ChipField: FC<ChipFieldProps> = memo<ChipFieldProps>(props => {
<Chip
className={classnames(classes.chip, className)}
label={value}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
/>
);
});
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/DateField.tsx
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
import get from 'lodash/get';
import Typography, { TypographyProps } from '@material-ui/core/Typography';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

const toLocaleStringSupportsLocales = (() => {
@@ -62,7 +62,7 @@ export const DateField: FC<DateFieldProps> = memo<DateFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
@@ -83,7 +83,7 @@ export const DateField: FC<DateFieldProps> = memo<DateFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{dateString}
</Typography>
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/EmailField.tsx
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ import { FC, HtmlHTMLAttributes, memo } from 'react';
import get from 'lodash/get';
import Typography from '@material-ui/core/Typography';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';
import { Link } from '@material-ui/core';

@@ -20,7 +20,7 @@ const EmailField: FC<EmailFieldProps> = memo<EmailFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
@@ -32,7 +32,7 @@ const EmailField: FC<EmailFieldProps> = memo<EmailFieldProps>(
className={className}
href={`mailto:${value}`}
onClick={stopPropagation}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{value}
</Link>
10 changes: 5 additions & 5 deletions packages/ra-ui-materialui/src/field/FileField.tsx
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ import { makeStyles } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography';
import classnames from 'classnames';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

/**
@@ -46,14 +46,14 @@ const FileField: FC<FileFieldProps> = props => {
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
) : (
<div
className={classnames(classes.root, className)}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
/>
);
}
@@ -62,7 +62,7 @@ const FileField: FC<FileFieldProps> = props => {
return (
<ul
className={classnames(classes.root, className)}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{sourceValue.map((file, index) => {
const fileTitleValue = get(file, title) || title;
@@ -92,7 +92,7 @@ const FileField: FC<FileFieldProps> = props => {
return (
<div
className={classnames(classes.root, className)}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
<a
href={sourceValue}
4 changes: 2 additions & 2 deletions packages/ra-ui-materialui/src/field/FunctionField.tsx
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ import { useMemo } from 'react';
import { Record } from 'ra-core';
import Typography, { TypographyProps } from '@material-ui/core/Typography';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

/**
@@ -30,7 +30,7 @@ const FunctionField = <RecordType extends Record = Record>({
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{render(record, source)}
</Typography>
10 changes: 5 additions & 5 deletions packages/ra-ui-materialui/src/field/ImageField.tsx
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ import { makeStyles } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography';
import classnames from 'classnames';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

const useStyles = makeStyles(
@@ -48,20 +48,20 @@ const ImageField: FC<ImageFieldProps> = props => {
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
) : (
<div className={className} {...sanitizeRestProps(rest)} />
<div className={className} {...sanitizeFieldRestProps(rest)} />
);
}

if (Array.isArray(sourceValue)) {
return (
<ul
className={classnames(classes.list, className)}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{sourceValue.map((file, index) => {
const fileTitleValue = get(file, title) || title;
@@ -85,7 +85,7 @@ const ImageField: FC<ImageFieldProps> = props => {
const titleValue = get(record, title) || title;

return (
<div className={className} {...sanitizeRestProps(rest)}>
<div className={className} {...sanitizeFieldRestProps(rest)}>
<img
title={titleValue}
alt={titleValue}
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/NumberField.tsx
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
import get from 'lodash/get';
import Typography, { TypographyProps } from '@material-ui/core/Typography';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

const hasNumberFormat = !!(
@@ -62,7 +62,7 @@ export const NumberField: FC<NumberFieldProps> = memo<NumberFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
@@ -74,7 +74,7 @@ export const NumberField: FC<NumberFieldProps> = memo<NumberFieldProps>(
variant="body2"
component="span"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{hasNumberFormat
? value.toLocaleString(locales, options)
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/ReferenceArrayField.tsx
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ import {

import { fieldPropTypes, PublicFieldProps, InjectedFieldProps } from './types';
import { ClassesOverride } from '../types';
import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';

/**
* A container component that fetches records from another resource specified
@@ -169,13 +169,13 @@ export const ReferenceArrayFieldView: FC<ReferenceArrayFieldViewProps> = props =
return (
<>
{cloneElement(Children.only(children), {
...sanitizeRestProps(rest),
...sanitizeFieldRestProps(rest),
className,
resource: reference,
})}{' '}
{pagination &&
props.total !== undefined &&
cloneElement(pagination, sanitizeRestProps(rest))}
cloneElement(pagination, sanitizeFieldRestProps(rest))}
</>
);
};
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/ReferenceField.tsx
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ import {

import LinearProgress from '../layout/LinearProgress';
import Link from '../Link';
import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, fieldPropTypes, InjectedFieldProps } from './types';
import { ClassesOverride } from '../types';

@@ -206,7 +206,7 @@ export const ReferenceFieldView: FC<ReferenceFieldViewProps> = props => {
resource: reference,
basePath,
translateChoice,
...sanitizeRestProps(rest),
...sanitizeFieldRestProps(rest),
})}
</Link>
);
@@ -217,7 +217,7 @@ export const ReferenceFieldView: FC<ReferenceFieldViewProps> = props => {
resource: reference,
basePath,
translateChoice,
...sanitizeRestProps(rest),
...sanitizeFieldRestProps(rest),
});
};

4 changes: 2 additions & 2 deletions packages/ra-ui-materialui/src/field/ReferenceManyField.tsx
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ import {
} from 'ra-core';

import { PublicFieldProps, fieldPropTypes, InjectedFieldProps } from './types';
import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';

/**
* Render related records to the current one.
@@ -145,7 +145,7 @@ export const ReferenceManyFieldView: FC<ReferenceManyFieldViewProps> = props =>
return (
<>
{cloneElement(Children.only(children), {
...sanitizeRestProps(rest),
...sanitizeFieldRestProps(rest),
basePath,
resource: reference,
})}
4 changes: 2 additions & 2 deletions packages/ra-ui-materialui/src/field/RichTextField.tsx
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ import { FC, memo } from 'react';
import PropTypes from 'prop-types';
import get from 'lodash/get';
import Typography, { TypographyProps } from '@material-ui/core/Typography';
import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { InjectedFieldProps, PublicFieldProps, fieldPropTypes } from './types';

export const removeTags = (input: string) =>
@@ -18,7 +18,7 @@ const RichTextField: FC<RichTextFieldProps> = memo<RichTextFieldProps>(
className={className}
variant="body2"
component="span"
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{value == null && emptyText ? (
emptyText
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/SelectField.tsx
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ import get from 'lodash/get';
import { ChoicesProps, useChoices } from 'ra-core';
import Typography from '@material-ui/core/Typography';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

/**
@@ -94,7 +94,7 @@ export const SelectField: FC<SelectFieldProps> = memo<SelectFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
@@ -108,7 +108,7 @@ export const SelectField: FC<SelectFieldProps> = memo<SelectFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{choiceText}
</Typography>
4 changes: 2 additions & 2 deletions packages/ra-ui-materialui/src/field/TextField.tsx
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ import { FC, memo, ElementType } from 'react';
import get from 'lodash/get';
import Typography, { TypographyProps } from '@material-ui/core/Typography';

import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

const TextField: FC<TextFieldProps> = memo<TextFieldProps>(
@@ -15,7 +15,7 @@ const TextField: FC<TextFieldProps> = memo<TextFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{value != null && typeof value !== 'string'
? JSON.stringify(value)
6 changes: 3 additions & 3 deletions packages/ra-ui-materialui/src/field/UrlField.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import { FC, HtmlHTMLAttributes, memo } from 'react';
import get from 'lodash/get';
import sanitizeRestProps from './sanitizeRestProps';
import sanitizeFieldRestProps from './sanitizeFieldRestProps';
import { Typography, Link } from '@material-ui/core';
import { PublicFieldProps, InjectedFieldProps, fieldPropTypes } from './types';

@@ -15,7 +15,7 @@ const UrlField: FC<UrlFieldProps> = memo<UrlFieldProps>(
component="span"
variant="body2"
className={className}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{emptyText}
</Typography>
@@ -26,7 +26,7 @@ const UrlField: FC<UrlFieldProps> = memo<UrlFieldProps>(
<Link
className={className}
href={value}
{...sanitizeRestProps(rest)}
{...sanitizeFieldRestProps(rest)}
>
{value}
</Link>
Loading