Skip to content

Commit ba8d76d

Browse files
authored
Merge pull request #10552 from marmelab/fix-button-icon-prop-type
[TypeScript] Fix buttons `icon` prop type
2 parents 2be72f4 + 2d76032 commit ba8d76d

21 files changed

+34
-39
lines changed

packages/ra-ui-materialui/src/button/BulkDeleteWithConfirmButton.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import { Fragment, ReactElement, useState } from 'react';
2+
import { Fragment, useState } from 'react';
33
import ActionDelete from '@mui/icons-material/Delete';
44

55
import { alpha, styled } from '@mui/material/styles';
@@ -159,7 +159,7 @@ export interface BulkDeleteWithConfirmButtonProps<
159159
confirmContent?: React.ReactNode;
160160
confirmTitle?: React.ReactNode;
161161
confirmColor?: 'primary' | 'warning';
162-
icon?: ReactElement;
162+
icon?: React.ReactNode;
163163
mutationMode: MutationMode;
164164
mutationOptions?: UseMutationOptions<
165165
RecordType,

packages/ra-ui-materialui/src/button/BulkDeleteWithUndoButton.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as React from 'react';
2-
import { ReactElement } from 'react';
32
import ActionDelete from '@mui/icons-material/Delete';
43
import { alpha, styled } from '@mui/material/styles';
54
import {
@@ -110,7 +109,7 @@ export interface BulkDeleteWithUndoButtonProps<
110109
RecordType extends RaRecord = any,
111110
MutationOptionsError = unknown,
112111
> extends ButtonProps {
113-
icon?: ReactElement;
112+
icon?: React.ReactNode;
114113
mutationOptions?: UseMutationOptions<
115114
RecordType,
116115
MutationOptionsError,

packages/ra-ui-materialui/src/button/BulkExportButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ const sanitizeRestProps = ({
9696

9797
interface Props {
9898
exporter?: Exporter;
99-
icon?: JSX.Element;
99+
icon?: React.ReactNode;
100100
label?: string;
101101
onClick?: (e: Event) => void;
102102
resource?: string;

packages/ra-ui-materialui/src/button/BulkUpdateWithConfirmButton.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import { Fragment, useState, ReactElement } from 'react';
2+
import { Fragment, useState } from 'react';
33
import ActionUpdate from '@mui/icons-material/Update';
44

55
import { alpha, styled } from '@mui/material/styles';
@@ -156,7 +156,7 @@ export interface BulkUpdateWithConfirmButtonProps<
156156
> extends ButtonProps {
157157
confirmContent?: React.ReactNode;
158158
confirmTitle?: React.ReactNode;
159-
icon?: ReactElement;
159+
icon?: React.ReactNode;
160160
data: any;
161161
onSuccess?: () => void;
162162
onError?: (error: any) => void;

packages/ra-ui-materialui/src/button/BulkUpdateWithUndoButton.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as React from 'react';
2-
import { ReactElement } from 'react';
32
import ActionUpdate from '@mui/icons-material/Update';
43
import { alpha, styled } from '@mui/material/styles';
54
import {
@@ -117,7 +116,7 @@ export interface BulkUpdateWithUndoButtonProps<
117116
RecordType extends RaRecord = any,
118117
MutationOptionsError = unknown,
119118
> extends ButtonProps {
120-
icon?: ReactElement;
119+
icon?: React.ReactNode;
121120
data: any;
122121
onSuccess?: () => void;
123122
onError?: (error: any) => void;

packages/ra-ui-materialui/src/button/Button.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export const Button = <RootComponent extends React.ElementType = 'button'>(
9393

9494
interface Props<RootComponent extends React.ElementType> {
9595
alignIcon?: 'left' | 'right';
96-
children?: React.ReactElement;
96+
children?: React.ReactNode;
9797
className?: string;
9898
component?: RootComponent;
9999
to?: LocationDescriptor | To;

packages/ra-ui-materialui/src/button/CloneButton.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import { memo, ReactElement } from 'react';
2+
import { memo, ReactNode } from 'react';
33
import Queue from '@mui/icons-material/Queue';
44
import { Link } from 'react-router-dom';
55
import { stringify } from 'query-string';
@@ -56,7 +56,7 @@ const sanitizeRestProps = ({
5656

5757
interface Props {
5858
record?: any;
59-
icon?: ReactElement;
59+
icon?: ReactNode;
6060
scrollToTop?: boolean;
6161
}
6262

packages/ra-ui-materialui/src/button/CreateButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ const defaultIcon = <ContentAdd />;
109109

110110
interface Props {
111111
resource?: string;
112-
icon?: React.ReactElement;
112+
icon?: React.ReactNode;
113113
scrollToTop?: boolean;
114114
to?: LocationDescriptor | To;
115115
}

packages/ra-ui-materialui/src/button/DeleteButton.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as React from 'react';
2-
import { ReactElement } from 'react';
32
import { UseMutationOptions } from '@tanstack/react-query';
43
import {
54
RaRecord,
@@ -98,7 +97,7 @@ export interface DeleteButtonProps<
9897
confirmTitle?: React.ReactNode;
9998
confirmContent?: React.ReactNode;
10099
confirmColor?: 'primary' | 'warning';
101-
icon?: ReactElement;
100+
icon?: React.ReactNode;
102101
mutationMode?: MutationMode;
103102
mutationOptions?: UseMutationOptions<
104103
RecordType,

packages/ra-ui-materialui/src/button/DeleteWithConfirmButton.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment, ReactEventHandler, ReactElement } from 'react';
1+
import React, { Fragment, ReactEventHandler } from 'react';
22
import ActionDelete from '@mui/icons-material/Delete';
33
import clsx from 'clsx';
44

@@ -104,8 +104,8 @@ export interface DeleteWithConfirmButtonProps<
104104
> extends ButtonProps {
105105
confirmTitle?: React.ReactNode;
106106
confirmContent?: React.ReactNode;
107+
icon?: React.ReactNode;
107108
confirmColor?: 'primary' | 'warning';
108-
icon?: ReactElement;
109109
mutationMode?: MutationMode;
110110
onClick?: ReactEventHandler<any>;
111111
// May be injected by Toolbar - sanitized in Button

0 commit comments

Comments
 (0)