use JSX.IntrinsicElements for pass-through props (#545)
				
					
				
			This commit is contained in:
		
							parent
							
								
									995f8eea26
								
							
						
					
					
						commit
						f63c9311e5
					
				
					 1 changed files with 6 additions and 8 deletions
				
			
		|  | @ -2,20 +2,18 @@ import classNames from "@lib/classNames"; | |||
| import Link, { LinkProps } from "next/link"; | ||||
| import React from "react"; | ||||
| 
 | ||||
| type HTMLAnchorProps = React.AnchorHTMLAttributes<HTMLAnchorElement>; | ||||
| type HTMLButtonProps = React.ButtonHTMLAttributes<HTMLButtonProps>; | ||||
| 
 | ||||
| type SVGComponent = React.FunctionComponent<React.SVGProps<SVGSVGElement>>; | ||||
| 
 | ||||
| export type ButtonProps = { | ||||
|   color?: "primary" | "secondary" | "minimal"; | ||||
|   size?: "base" | "sm" | "lg" | "fab"; | ||||
|   loading?: boolean; | ||||
|   disabled?: boolean; | ||||
|   onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void; | ||||
|   StartIcon?: SVGComponent; | ||||
|   EndIcon?: SVGComponent; | ||||
| } & ((Omit<HTMLAnchorProps, "href"> & { href: LinkProps["href"] }) | (HTMLButtonProps & { href?: never })); | ||||
|   StartIcon?: JSX.IntrinsicElements["svg"]; | ||||
|   EndIcon?: JSX.IntrinsicElements["svg"]; | ||||
| } & ( | ||||
|   | (Omit<JSX.IntrinsicElements["a"], "href"> & { href: LinkProps["href"] }) | ||||
|   | (JSX.IntrinsicElements["button"] & { href?: never }) | ||||
| ); | ||||
| 
 | ||||
| export const Button = function Button(props: ButtonProps) { | ||||
|   const { | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Alex Johansson
						Alex Johansson