feat: created new component button#2
Conversation
|
|
||
| export interface ButtonProps { | ||
| label: string; | ||
| onClick: () => void; |
There was a problem hiding this comment.
Eu considero declarar os event handlers manualmente como um anti pattern, a gente perde a tipagem de coisas importantes. Eu prefiro fazer dessa forma (usando type e union):
import { ButtonHTMLAttributes } from "react"
export type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
// Props personalizadas aqui
label: string;
}| export const Button = ({label, onClick}:ButtonProps) => { | ||
| return <S.Button onClick={onClick}>{label}</S.Button> |
There was a problem hiding this comment.
Com as mudanças que propus na tipagem, você terá que utilizar todas as props default do botão e repassar para o componente. Dessa forma:
| export const Button = ({label, onClick}:ButtonProps) => { | |
| return <S.Button onClick={onClick}>{label}</S.Button> | |
| export const Button = ({label, ...props}:ButtonProps) => { | |
| return <S.Button {...props}>{label}</S.Button> |
There was a problem hiding this comment.
Entendi! Eu e o Mov conversamos na hora essa possibilidade e decidimos optar por uma forma mais simples e clara pra explicar pra eles. Vale depois a gente precisa trocar uma ideia e chegar em um concenso sobre aprofundamos mais (com isso aumenta a complexidade e abaixa a compreenção do conhecimento) pra aumentar a qualidade.
https://app.pipefy.com/open-cards/657556564