teqo/src/components/PhoneInput.tsx
Francisco Ignácio Fontoura Solla cf6ae6c47c Pass 2 W2: correcoes de fronteira lib/utilities e client boundary
- helpers puros movidos utilities->lib: slug, phone, wordStartFilter, voteEstimate (9 inversoes lib->utilities zeradas)
- chaves de consent em src/lib/campaignConsentKeys.ts (client-safe); campaignInvite/campaignConsent re-exportam; onda0ConsentTexts referencia as constantes
- 'server-only' em 21 loaders Payload/cache (CLI segue com --conditions=react-server)
- ciclo de tipos supporterListFilters <-> supporterUi quebrado (SupporterListFilterInput estrutural; sqlFilters idem)
- votePledgeData dividido: votePledgeViews (puro, client-safe) + votePledgeData (loaders, server-only) - padrao contract-module
- predicados de role client-safe em src/lib/campaignRoles.ts; access/shared deriva deles (fonte unica); nav.ts para de importar o barrel campaignAccess (casts 'as CampaignUser' eliminados)
2026-07-25 14:38:41 -03:00

21 lines
515 B
TypeScript

import type { ComponentProps } from 'react'
import { formatBrazilianPhoneInput, sanitizeBrazilianPhoneInput } from '@/lib/phone'
import { FormInput } from './FormInput'
export const PhoneInput = (props: ComponentProps<'input'>) => (
<FormInput
name="phone"
id="phone"
placeholder="(71) 99999-9999"
autoComplete="tel"
inputMode="tel"
type="tel"
maxLength={19}
minLength={15}
format={formatBrazilianPhoneInput}
sanitize={sanitizeBrazilianPhoneInput}
{...props}
/>
)