Fix props for `<Button>` (#29780)

main-rebase-security-fix
Renaud Chaput 2024-03-28 11:06:25 +01:00 committed by GitHub
parent f2fd1da23f
commit d088964761
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 8 deletions

View File

@ -1,26 +1,26 @@
import type { PropsWithChildren } from 'react';
import { useCallback } from 'react'; import { useCallback } from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
interface BaseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> { interface BaseProps
extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
block?: boolean; block?: boolean;
secondary?: boolean; secondary?: boolean;
text?: JSX.Element;
} }
interface PropsWithChildren extends BaseProps { interface PropsChildren extends PropsWithChildren<BaseProps> {
text?: never; text?: undefined;
} }
interface PropsWithText extends BaseProps { interface PropsWithText extends BaseProps {
text: JSX.Element; text: JSX.Element | string;
children: never; children?: undefined;
} }
type Props = PropsWithText | PropsWithChildren; type Props = PropsWithText | PropsChildren;
export const Button: React.FC<Props> = ({ export const Button: React.FC<Props> = ({
text,
type = 'button', type = 'button',
onClick, onClick,
disabled, disabled,
@ -28,6 +28,7 @@ export const Button: React.FC<Props> = ({
secondary, secondary,
className, className,
title, title,
text,
children, children,
...props ...props
}) => { }) => {