Repository navigation
refactor(admin-frontend): fields.types.ts só com blocos genéricos - #216
evertonschuster wants to merge 1 commit into
Conversation
As props de cada campo passam a morar no arquivo do componente que as usa (TextFieldProps em text-fields, ColorFieldProps em color-field etc.); os derivados importam a base do arquivo do campo base. fields.types.ts fica com BaseFieldProps, RegisterOwnedProps, FormFieldOwnedProps, WithOptionalLabel, FieldLabelPlacement, ControlledFieldProps e FieldErrorProps, e de shared/ui importa só form-field. O barril exporta os mesmos nomes de tipo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
O quê
Refatoração sem mudança de comportamento em
apps/admin-frontend/src/shared/form/fields/.fields.types.tsmisturava blocos genéricos com props de cada campo, por isso importava componentes concretos deshared/ui(Input,Textarea,InputGroupInput,ColorSwatchPickerOption). Agora ele guarda só os blocos genéricos e importa de@/shared/uiapenasform-field(FormFieldControlProps, usado porControlledFieldProps).Onde ficou cada tipo
BaseFieldProps,RegisterOwnedProps,FormFieldOwnedProps,WithOptionalLabel,FieldLabelPlacement,ControlledFieldProps,FieldErrorPropsfields.types.ts(exportados para os componentes)TextFieldProps,TextareaFieldPropscomponents/text-fields.tsxMaskedFieldPropscomponents/masked-field.tsxDateFieldPropscomponents/date-field.tsxCpfFieldPropscomponents/cpf-field.tsx(base vem demasked-field)PhoneFieldProps,EmailFieldPropscomponents/phone-field.tsx,components/email-field.tsx(base vem detext-fields)BirthDateFieldPropscomponents/birth-date-field.tsx(base vem dedate-field)ColorFieldPropscomponents/color-field.tsxSelectFieldOption,SelectFieldPropscomponents/select-field.tsxSearchFieldPropscomponents/search-field.tsxAs definições foram movidas sem alteração. O barril
index.tsxcontinua exportando os mesmos 14 nomes de tipo, então nada emfeatures/muda. Fora deshared/form/fields, nenhum arquivo foi tocado. Dentro, sóselect-field.test.tsxtrocou a origem deSelectFieldOption.Fora do escopo
O
SearchSelectFielddo #207 (claude/multi-select-component-d9018b) ainda não está namain, entãoSearchSelectFieldPropseSearchSelectOwnedPropsnão foram mexidos aqui. Quando um dos dois PRs entrar, o outro precisa levar esses tipos paracomponents/search-select-field.tsx, seguindo a mesma regra.Validação
Em
apps/admin-frontend:npm run format:check: oknpm run lint: 0 erros e as mesmas 6 warnings dereact-refreshdamain(shared/ui/badge,button,toastesrc/test/renderRoutes.tsx). Nenhuma emshared/form/fields.npm run build: ok (tsc+vite build)npm run test:coverage -- --exclude ".claude/**": 100 arquivos e 1092 testes passando, limiares de cobertura atendidosNão há verificação no navegador porque a mudança é só de tipos e não muda nada na tela.
🤖 Generated with Claude Code
Summary by CodeRabbit