@greatapps/common 1.1.797 → 1.1.798

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,7 @@ import { useUpdateBillingData } from "../../../modules/accounts/hooks/useAccount
16
16
  import { COUNTRIES } from "../../../utils/countries";
17
17
  import { readGeoCountry } from "../../../utils/geo-country";
18
18
  import { BR_STATE_OPTIONS } from "../../../utils/constants/br-states";
19
- import { formatCNPJ, formatCPF, formatPostalCode } from "../../../utils/format/masks";
19
+ import { formatCPFCNPJ, formatPostalCode } from "../../../utils/format/masks";
20
20
  import { isValidCNPJ, isValidCPF } from "../../../utils/validators/common";
21
21
  const COUNTRY_OPTIONS = COUNTRIES.map((country) => ({
22
22
  value: country.iso,
@@ -29,9 +29,11 @@ const BR_REQUIRED_ADDRESS_FIELDS = [
29
29
  "city",
30
30
  "state"
31
31
  ];
32
+ function isCompanyDocument(document) {
33
+ return document.replace(/\D/g, "").length > 11;
34
+ }
32
35
  function buildBillingDataSchema(translate) {
33
36
  const base = z.object({
34
- personType: z.enum(["pf", "pj"]),
35
37
  document: z.string().trim(),
36
38
  financialName: z.string().trim().min(1, translate("common.billing.requiredData.requiredField")),
37
39
  financialEmail: z.string().trim().min(1, translate("common.billing.requiredData.requiredField")).email(translate("common.billing.requiredData.invalidEmail")),
@@ -62,7 +64,7 @@ function buildBillingDataSchema(translate) {
62
64
  message: translate("common.billing.requiredData.invalidCep")
63
65
  });
64
66
  }
65
- const isCompany = data.personType === "pj";
67
+ const isCompany = isCompanyDocument(data.document);
66
68
  const digits = data.document.replace(/\D/g, "");
67
69
  if (digits.length !== (isCompany ? 14 : 11)) {
68
70
  ctx.addIssue({
@@ -82,10 +84,6 @@ function buildBillingDataSchema(translate) {
82
84
  }
83
85
  });
84
86
  }
85
- function formatDocument(document, isCompany) {
86
- if (!document) return "";
87
- return isCompany ? formatCNPJ(document) : formatCPF(document);
88
- }
89
87
  function BillingDataForm({ account, onSaved, country, submitLabel }) {
90
88
  const translate = useTranslations();
91
89
  const { user } = useAuth();
@@ -100,7 +98,6 @@ function BillingDataForm({ account, onSaved, country, submitLabel }) {
100
98
  resolver: zodResolver(schema),
101
99
  mode: "onChange",
102
100
  defaultValues: {
103
- personType: "pf",
104
101
  document: "",
105
102
  financialName: "",
106
103
  financialEmail: "",
@@ -123,16 +120,13 @@ function BillingDataForm({ account, onSaved, country, submitLabel }) {
123
120
  watch,
124
121
  formState: { errors, isSubmitting, isValid }
125
122
  } = form;
126
- const personType = watch("personType");
127
- const isCompany = personType === "pj";
123
+ const isCompany = isCompanyDocument(watch("document"));
128
124
  const isBrazil = watch("country") === "BR";
129
125
  useEffect(() => {
130
126
  if (!account || isPrefilled.current) return;
131
127
  isPrefilled.current = true;
132
- const accountIsCompany = account.financial_document_type === 2;
133
128
  reset({
134
- personType: accountIsCompany ? "pj" : "pf",
135
- document: formatDocument(account.financial_document, accountIsCompany),
129
+ document: formatCPFCNPJ(account.financial_document ?? ""),
136
130
  financialName: account.financial_name ?? "",
137
131
  financialEmail: account.financial_email || user?.email || "",
138
132
  cep: account.zipcode ?? "",
@@ -146,14 +140,7 @@ function BillingDataForm({ account, onSaved, country, submitLabel }) {
146
140
  });
147
141
  }, [account, country, reset, user?.email]);
148
142
  const handleDocumentChange = (rawValue) => {
149
- setValue("document", isCompany ? formatCNPJ(rawValue) : formatCPF(rawValue), {
150
- shouldValidate: true
151
- });
152
- };
153
- const handlePersonTypeChange = (value) => {
154
- if (value === personType) return;
155
- setValue("document", "");
156
- setValue("personType", value, { shouldValidate: true });
143
+ setValue("document", formatCPFCNPJ(rawValue), { shouldValidate: true });
157
144
  };
158
145
  const handleCepChange = (rawValue) => {
159
146
  setValue("cep", formatPostalCode(rawValue), { shouldValidate: true });
@@ -169,7 +156,7 @@ function BillingDataForm({ account, onSaved, country, submitLabel }) {
169
156
  };
170
157
  async function onSubmit(data) {
171
158
  const payload = data.country === "BR" ? {
172
- financial_document_type: data.personType === "pf" ? 1 : 2,
159
+ financial_document_type: isCompanyDocument(data.document) ? 2 : 1,
173
160
  financial_document: data.document,
174
161
  financial_name: data.financialName,
175
162
  financial_email: data.financialEmail,
@@ -232,47 +219,6 @@ function BillingDataForm({ account, onSaved, country, submitLabel }) {
232
219
  }
233
220
  )
234
221
  ] }),
235
- isBrazil && /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
236
- /* @__PURE__ */ jsx(
237
- Controller,
238
- {
239
- name: "personType",
240
- control,
241
- render: ({ field }) => /* @__PURE__ */ jsx(
242
- SelectField,
243
- {
244
- label: translate("common.billing.requiredData.personType"),
245
- placeholder: translate("common.billing.requiredData.select"),
246
- value: field.value,
247
- onChange: (value) => handlePersonTypeChange(value),
248
- options: [
249
- {
250
- value: "pf",
251
- label: translate("common.billing.requiredData.personTypePf")
252
- },
253
- {
254
- value: "pj",
255
- label: translate("common.billing.requiredData.personTypePj")
256
- }
257
- ],
258
- containerClassName: "flex-1"
259
- }
260
- )
261
- }
262
- ),
263
- /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
264
- FormField,
265
- {
266
- label: isCompany ? translate("common.billing.requiredData.cnpj") : translate("common.billing.requiredData.cpf"),
267
- placeholder: isCompany ? "__.___.___/____-__" : "___.___.___-__",
268
- error: !!errors.document,
269
- errorMessage: errors.document?.message,
270
- ...register("document", {
271
- onChange: (event) => handleDocumentChange(event.target.value)
272
- })
273
- }
274
- ) })
275
- ] }),
276
222
  /* @__PURE__ */ jsx(
277
223
  FormField,
278
224
  {
@@ -283,6 +229,18 @@ function BillingDataForm({ account, onSaved, country, submitLabel }) {
283
229
  ...register("financialName")
284
230
  }
285
231
  ),
232
+ isBrazil && /* @__PURE__ */ jsx(
233
+ FormField,
234
+ {
235
+ label: translate("common.billing.requiredData.document"),
236
+ placeholder: translate("common.billing.requiredData.documentPlaceholder"),
237
+ error: !!errors.document,
238
+ errorMessage: errors.document?.message,
239
+ ...register("document", {
240
+ onChange: (event) => handleDocumentChange(event.target.value)
241
+ })
242
+ }
243
+ ),
286
244
  /* @__PURE__ */ jsx(
287
245
  FormField,
288
246
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/modals/billing/BillingDataForm.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any -- o generic Translator do next-intl não é\n expressável estruturalmente; o `any` do TranslateFn é intencional e está contido neste arquivo\n (mesmo padrão de modules/plans/utils/map-api-plan-to-ui.ts). */\n'use client';\n\nimport { useEffect, useMemo, useRef } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useTranslations } from 'next-intl';\nimport { toast } from 'sonner';\nimport z from 'zod';\n\nimport { Button } from '../../ui/buttons/Button';\nimport { FormField } from '../../ui/form/FormField';\nimport { SelectField } from '../../ui/form/SelectField';\nimport { Toast } from '../../ui/feedback/Toast';\nimport { useAuth } from '../../../providers/auth.provider';\nimport { useViaCep } from '../../../modules/accounts/hooks/useViaCep';\nimport { useUpdateBillingData } from '../../../modules/accounts/hooks/useAccountManagement';\nimport { COUNTRIES } from '../../../utils/countries';\nimport { readGeoCountry } from '../../../utils/geo-country';\nimport { BR_STATE_OPTIONS } from '../../../utils/constants/br-states';\nimport { formatCNPJ, formatCPF, formatPostalCode } from '../../../utils/format/masks';\nimport { isValidCNPJ, isValidCPF } from '../../../utils/validators/common';\nimport type { Account } from '../../../modules/accounts/types';\nimport type { UpdateBillingDataRequest } from '../../../modules/accounts/types';\n\ntype TranslateFn = (key: any, values?: Record<string, string | number>) => string;\n\ntype BillingDataFormValues = {\n personType: 'pf' | 'pj';\n document: string;\n financialName: string;\n financialEmail: string;\n cep: string;\n street: string;\n streetNumber: string;\n complement?: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n};\n\nconst COUNTRY_OPTIONS = COUNTRIES.map((country: { iso: string; name: string }) => ({\n value: country.iso,\n label: country.name,\n}));\n\nconst BR_REQUIRED_ADDRESS_FIELDS: readonly (keyof BillingDataFormValues)[] = [\n 'street',\n 'streetNumber',\n 'neighborhood',\n 'city',\n 'state',\n];\n\nfunction buildBillingDataSchema(translate: TranslateFn) {\n const base = z.object({\n personType: z.enum(['pf', 'pj']),\n document: z.string().trim(),\n financialName: z\n .string()\n .trim()\n .min(1, translate('common.billing.requiredData.requiredField')),\n financialEmail: z\n .string()\n .trim()\n .min(1, translate('common.billing.requiredData.requiredField'))\n .email(translate('common.billing.requiredData.invalidEmail')),\n cep: z.string().trim(),\n street: z.string().trim(),\n streetNumber: z.string().trim(),\n complement: z.string().trim().optional(),\n neighborhood: z.string().trim(),\n city: z.string().trim(),\n state: z.string().trim(),\n country: z.string().trim().min(1, translate('common.billing.requiredData.requiredField')),\n });\n\n return base.superRefine((data, ctx) => {\n if (data.country !== 'BR') return;\n\n for (const field of BR_REQUIRED_ADDRESS_FIELDS) {\n if (!data[field]) {\n ctx.addIssue({\n code: 'custom',\n path: [field],\n message: translate('common.billing.requiredData.requiredField'),\n });\n }\n }\n\n if (data.cep.replace(/\\D/g, '').length !== 8) {\n ctx.addIssue({\n code: 'custom',\n path: ['cep'],\n message: translate('common.billing.requiredData.invalidCep'),\n });\n }\n\n const isCompany = data.personType === 'pj';\n const digits = data.document.replace(/\\D/g, '');\n\n if (digits.length !== (isCompany ? 14 : 11)) {\n ctx.addIssue({\n code: 'custom',\n path: ['document'],\n message: isCompany\n ? translate('common.billing.requiredData.invalidCnpj')\n : translate('common.billing.requiredData.invalidCpf'),\n });\n return;\n }\n\n const isValid = isCompany ? isValidCNPJ(digits) : isValidCPF(digits);\n if (!isValid) {\n ctx.addIssue({\n code: 'custom',\n path: ['document'],\n message: isCompany\n ? translate('common.billing.requiredData.invalidCnpjChecksum')\n : translate('common.billing.requiredData.invalidCpfChecksum'),\n });\n }\n });\n}\n\nfunction formatDocument(document: string | null | undefined, isCompany: boolean) {\n if (!document) return '';\n return isCompany ? formatCNPJ(document) : formatCPF(document);\n}\n\nexport interface BillingDataFormProps {\n account: Account | undefined;\n onSaved: () => void;\n country?: 'BR';\n submitLabel?: string;\n}\n\nexport function BillingDataForm({ account, onSaved, country, submitLabel }: BillingDataFormProps) {\n const translate = useTranslations();\n const { user } = useAuth();\n const { mutateAsync: updateBillingData } = useUpdateBillingData();\n const { mutateAsync: lookupCep } = useViaCep();\n\n const isPrefilled = useRef(false);\n\n const schema = useMemo(\n () => buildBillingDataSchema(translate),\n [translate],\n );\n\n const form = useForm<BillingDataFormValues>({\n resolver: zodResolver(schema),\n mode: 'onChange',\n defaultValues: {\n personType: 'pf',\n document: '',\n financialName: '',\n financialEmail: '',\n cep: '',\n street: '',\n streetNumber: '',\n complement: '',\n neighborhood: '',\n city: '',\n state: '',\n country: country ?? 'BR',\n },\n });\n\n const {\n register,\n control,\n handleSubmit,\n reset,\n setValue,\n watch,\n formState: { errors, isSubmitting, isValid },\n } = form;\n\n const personType = watch('personType');\n const isCompany = personType === 'pj';\n const isBrazil = watch('country') === 'BR';\n\n useEffect(() => {\n if (!account || isPrefilled.current) return;\n isPrefilled.current = true;\n\n const accountIsCompany = account.financial_document_type === 2;\n reset({\n personType: accountIsCompany ? 'pj' : 'pf',\n document: formatDocument(account.financial_document, accountIsCompany),\n financialName: account.financial_name ?? '',\n financialEmail: account.financial_email || user?.email || '',\n cep: account.zipcode ?? '',\n street: account.address ?? '',\n streetNumber: account.address_number ?? '',\n complement: account.address_complement ?? '',\n neighborhood: account.neighborhood ?? '',\n city: account.city ?? '',\n state: account.state ?? '',\n country: country ?? (account.country || readGeoCountry() || 'BR'),\n });\n }, [account, country, reset, user?.email]);\n\n const handleDocumentChange = (rawValue: string) => {\n setValue('document', isCompany ? formatCNPJ(rawValue) : formatCPF(rawValue), {\n shouldValidate: true,\n });\n };\n\n const handlePersonTypeChange = (value: 'pf' | 'pj') => {\n if (value === personType) return;\n setValue('document', '');\n setValue('personType', value, { shouldValidate: true });\n };\n\n const handleCepChange = (rawValue: string) => {\n setValue('cep', formatPostalCode(rawValue), { shouldValidate: true });\n\n const digits = rawValue.replace(/\\D/g, '');\n if (digits.length !== 8) return;\n\n lookupCep(digits)\n .then((data) => {\n setValue('street', data.logradouro, { shouldValidate: true });\n setValue('neighborhood', data.bairro, { shouldValidate: true });\n setValue('city', data.localidade, { shouldValidate: true });\n setValue('state', data.uf, { shouldValidate: true });\n })\n .catch(() => {});\n };\n\n async function onSubmit(data: BillingDataFormValues) {\n const payload: UpdateBillingDataRequest =\n data.country === 'BR'\n ? {\n financial_document_type: data.personType === 'pf' ? 1 : 2,\n financial_document: data.document,\n financial_name: data.financialName,\n financial_email: data.financialEmail,\n zipcode: data.cep,\n address: data.street,\n address_number: data.streetNumber,\n address_complement: data.complement ?? '',\n neighborhood: data.neighborhood,\n city: data.city,\n state: data.state,\n country: data.country,\n }\n : {\n financial_name: data.financialName,\n financial_email: data.financialEmail,\n country: data.country,\n };\n\n try {\n await updateBillingData(payload);\n toast.custom(\n (t) => (\n <Toast\n variant=\"success\"\n message={translate('common.billing.requiredData.successToast')}\n toastId={t}\n />\n ),\n { duration: 5000 },\n );\n onSaved();\n } catch (error) {\n const message =\n error instanceof Error && error.message\n ? error.message\n : translate('common.billing.requiredData.errorToast');\n toast.custom((t) => <Toast variant=\"error\" message={message} toastId={t} />, {\n duration: 5000,\n });\n }\n }\n\n return (\n <form onSubmit={handleSubmit(onSubmit)} className=\"flex flex-col flex-1 min-h-0\" noValidate>\n <div className=\"flex flex-col gap-6 p-4 lg:p-5 flex-1 overflow-y-auto\">\n <div className=\"flex flex-col gap-5\">\n {!country && (\n <>\n <span className=\"paragraph-small-regular text-zinc-600\">\n {isBrazil\n ? translate('common.billing.requiredData.description')\n : translate('common.billing.requiredData.descriptionInternational')}\n </span>\n\n <Controller\n name=\"country\"\n control={control}\n render={({ field }) => (\n <SelectField\n label={translate('common.billing.requiredData.country')}\n placeholder={translate('common.billing.requiredData.select')}\n value={field.value || undefined}\n onChange={(value) =>\n setValue('country', String(value), { shouldValidate: true })\n }\n options={COUNTRY_OPTIONS}\n error={!!errors.country}\n errorMessage={errors.country?.message}\n />\n )}\n />\n </>\n )}\n\n {isBrazil && (\n <div className=\"flex gap-4\">\n <Controller\n name=\"personType\"\n control={control}\n render={({ field }) => (\n <SelectField\n label={translate('common.billing.requiredData.personType')}\n placeholder={translate('common.billing.requiredData.select')}\n value={field.value}\n onChange={(value) => handlePersonTypeChange(value as 'pf' | 'pj')}\n options={[\n {\n value: 'pf',\n label: translate('common.billing.requiredData.personTypePf'),\n },\n {\n value: 'pj',\n label: translate('common.billing.requiredData.personTypePj'),\n },\n ]}\n containerClassName=\"flex-1\"\n />\n )}\n />\n <div className=\"flex-1\">\n <FormField\n label={\n isCompany\n ? translate('common.billing.requiredData.cnpj')\n : translate('common.billing.requiredData.cpf')\n }\n placeholder={isCompany ? '__.___.___/____-__' : '___.___.___-__'}\n error={!!errors.document}\n errorMessage={errors.document?.message}\n {...register('document', {\n onChange: (event) => handleDocumentChange(event.target.value),\n })}\n />\n </div>\n </div>\n )}\n\n <FormField\n label={\n isBrazil && isCompany\n ? translate('common.billing.requiredData.companyName')\n : translate('common.billing.requiredData.fullName')\n }\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.financialName}\n errorMessage={errors.financialName?.message}\n {...register('financialName')}\n />\n\n <FormField\n label={translate('common.billing.requiredData.financialEmail')}\n placeholder={translate('common.billing.requiredData.financialEmailPlaceholder')}\n type=\"email\"\n error={!!errors.financialEmail}\n errorMessage={errors.financialEmail?.message}\n {...register('financialEmail')}\n />\n </div>\n\n {isBrazil && (\n <>\n <div className=\"h-px bg-zinc-200\" />\n\n <div className=\"flex flex-col gap-5\">\n <span className=\"paragraph-small-semibold text-zinc-950\">\n {translate('common.billing.requiredData.addressHeading')}\n </span>\n\n <FormField\n label={translate('common.billing.requiredData.cep')}\n placeholder=\"_____-___\"\n error={!!errors.cep}\n errorMessage={errors.cep?.message}\n {...register('cep', {\n onChange: (event) => handleCepChange(event.target.value),\n })}\n />\n\n <div className=\"flex gap-4\">\n <div className=\"flex-[3]\">\n <FormField\n label={translate('common.billing.requiredData.street')}\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.street}\n errorMessage={errors.street?.message}\n {...register('street')}\n />\n </div>\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.streetNumber')}\n placeholder=\"000\"\n error={!!errors.streetNumber}\n errorMessage={errors.streetNumber?.message}\n {...register('streetNumber')}\n />\n </div>\n </div>\n\n <div className=\"flex gap-4\">\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.neighborhood')}\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.neighborhood}\n errorMessage={errors.neighborhood?.message}\n {...register('neighborhood')}\n />\n </div>\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.complement')}\n optional\n placeholder={translate('common.billing.requiredData.typeHere')}\n {...register('complement')}\n />\n </div>\n </div>\n\n <div className=\"flex gap-4\">\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.city')}\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.city}\n errorMessage={errors.city?.message}\n {...register('city')}\n />\n </div>\n <div className=\"flex-1\">\n <Controller\n name=\"state\"\n control={control}\n render={({ field }) => (\n <SelectField\n label={translate('common.billing.requiredData.state')}\n placeholder={translate('common.billing.requiredData.select')}\n value={field.value || undefined}\n onChange={(value) =>\n setValue('state', String(value), { shouldValidate: true })\n }\n options={BR_STATE_OPTIONS}\n error={!!errors.state}\n errorMessage={errors.state?.message}\n />\n )}\n />\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n\n <div className=\"flex items-center justify-end p-4 lg:p-5 border-t border-zinc-200 shrink-0\">\n <Button\n type=\"submit\"\n className=\"h-10! w-full lg:w-fit\"\n disabled={!isValid || isSubmitting}\n loading={isSubmitting}\n >\n {isSubmitting\n ? translate('common.billing.requiredData.submitting')\n : submitLabel ?? translate('common.billing.requiredData.submit')}\n </Button>\n </div>\n </form>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/modals/billing/BillingDataForm.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any -- o generic Translator do next-intl não é\n expressável estruturalmente; o `any` do TranslateFn é intencional e está contido neste arquivo\n (mesmo padrão de modules/plans/utils/map-api-plan-to-ui.ts). */\n'use client';\n\nimport { useEffect, useMemo, useRef } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useTranslations } from 'next-intl';\nimport { toast } from 'sonner';\nimport z from 'zod';\n\nimport { Button } from '../../ui/buttons/Button';\nimport { FormField } from '../../ui/form/FormField';\nimport { SelectField } from '../../ui/form/SelectField';\nimport { Toast } from '../../ui/feedback/Toast';\nimport { useAuth } from '../../../providers/auth.provider';\nimport { useViaCep } from '../../../modules/accounts/hooks/useViaCep';\nimport { useUpdateBillingData } from '../../../modules/accounts/hooks/useAccountManagement';\nimport { COUNTRIES } from '../../../utils/countries';\nimport { readGeoCountry } from '../../../utils/geo-country';\nimport { BR_STATE_OPTIONS } from '../../../utils/constants/br-states';\nimport { formatCPFCNPJ, formatPostalCode } from '../../../utils/format/masks';\nimport { isValidCNPJ, isValidCPF } from '../../../utils/validators/common';\nimport type { Account } from '../../../modules/accounts/types';\nimport type { UpdateBillingDataRequest } from '../../../modules/accounts/types';\n\ntype TranslateFn = (key: any, values?: Record<string, string | number>) => string;\n\ntype BillingDataFormValues = {\n document: string;\n financialName: string;\n financialEmail: string;\n cep: string;\n street: string;\n streetNumber: string;\n complement?: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n};\n\nconst COUNTRY_OPTIONS = COUNTRIES.map((country: { iso: string; name: string }) => ({\n value: country.iso,\n label: country.name,\n}));\n\nconst BR_REQUIRED_ADDRESS_FIELDS: readonly (keyof BillingDataFormValues)[] = [\n 'street',\n 'streetNumber',\n 'neighborhood',\n 'city',\n 'state',\n];\n\nfunction isCompanyDocument(document: string): boolean {\n return document.replace(/\\D/g, '').length > 11;\n}\n\nfunction buildBillingDataSchema(translate: TranslateFn) {\n const base = z.object({\n document: z.string().trim(),\n financialName: z\n .string()\n .trim()\n .min(1, translate('common.billing.requiredData.requiredField')),\n financialEmail: z\n .string()\n .trim()\n .min(1, translate('common.billing.requiredData.requiredField'))\n .email(translate('common.billing.requiredData.invalidEmail')),\n cep: z.string().trim(),\n street: z.string().trim(),\n streetNumber: z.string().trim(),\n complement: z.string().trim().optional(),\n neighborhood: z.string().trim(),\n city: z.string().trim(),\n state: z.string().trim(),\n country: z.string().trim().min(1, translate('common.billing.requiredData.requiredField')),\n });\n\n return base.superRefine((data, ctx) => {\n if (data.country !== 'BR') return;\n\n for (const field of BR_REQUIRED_ADDRESS_FIELDS) {\n if (!data[field]) {\n ctx.addIssue({\n code: 'custom',\n path: [field],\n message: translate('common.billing.requiredData.requiredField'),\n });\n }\n }\n\n if (data.cep.replace(/\\D/g, '').length !== 8) {\n ctx.addIssue({\n code: 'custom',\n path: ['cep'],\n message: translate('common.billing.requiredData.invalidCep'),\n });\n }\n\n const isCompany = isCompanyDocument(data.document);\n const digits = data.document.replace(/\\D/g, '');\n\n if (digits.length !== (isCompany ? 14 : 11)) {\n ctx.addIssue({\n code: 'custom',\n path: ['document'],\n message: isCompany\n ? translate('common.billing.requiredData.invalidCnpj')\n : translate('common.billing.requiredData.invalidCpf'),\n });\n return;\n }\n\n const isValid = isCompany ? isValidCNPJ(digits) : isValidCPF(digits);\n if (!isValid) {\n ctx.addIssue({\n code: 'custom',\n path: ['document'],\n message: isCompany\n ? translate('common.billing.requiredData.invalidCnpjChecksum')\n : translate('common.billing.requiredData.invalidCpfChecksum'),\n });\n }\n });\n}\n\nexport interface BillingDataFormProps {\n account: Account | undefined;\n onSaved: () => void;\n country?: 'BR';\n submitLabel?: string;\n}\n\nexport function BillingDataForm({ account, onSaved, country, submitLabel }: BillingDataFormProps) {\n const translate = useTranslations();\n const { user } = useAuth();\n const { mutateAsync: updateBillingData } = useUpdateBillingData();\n const { mutateAsync: lookupCep } = useViaCep();\n\n const isPrefilled = useRef(false);\n\n const schema = useMemo(\n () => buildBillingDataSchema(translate),\n [translate],\n );\n\n const form = useForm<BillingDataFormValues>({\n resolver: zodResolver(schema),\n mode: 'onChange',\n defaultValues: {\n document: '',\n financialName: '',\n financialEmail: '',\n cep: '',\n street: '',\n streetNumber: '',\n complement: '',\n neighborhood: '',\n city: '',\n state: '',\n country: country ?? 'BR',\n },\n });\n\n const {\n register,\n control,\n handleSubmit,\n reset,\n setValue,\n watch,\n formState: { errors, isSubmitting, isValid },\n } = form;\n\n const isCompany = isCompanyDocument(watch('document'));\n const isBrazil = watch('country') === 'BR';\n\n useEffect(() => {\n if (!account || isPrefilled.current) return;\n isPrefilled.current = true;\n\n reset({\n document: formatCPFCNPJ(account.financial_document ?? ''),\n financialName: account.financial_name ?? '',\n financialEmail: account.financial_email || user?.email || '',\n cep: account.zipcode ?? '',\n street: account.address ?? '',\n streetNumber: account.address_number ?? '',\n complement: account.address_complement ?? '',\n neighborhood: account.neighborhood ?? '',\n city: account.city ?? '',\n state: account.state ?? '',\n country: country ?? (account.country || readGeoCountry() || 'BR'),\n });\n }, [account, country, reset, user?.email]);\n\n const handleDocumentChange = (rawValue: string) => {\n setValue('document', formatCPFCNPJ(rawValue), { shouldValidate: true });\n };\n\n const handleCepChange = (rawValue: string) => {\n setValue('cep', formatPostalCode(rawValue), { shouldValidate: true });\n\n const digits = rawValue.replace(/\\D/g, '');\n if (digits.length !== 8) return;\n\n lookupCep(digits)\n .then((data) => {\n setValue('street', data.logradouro, { shouldValidate: true });\n setValue('neighborhood', data.bairro, { shouldValidate: true });\n setValue('city', data.localidade, { shouldValidate: true });\n setValue('state', data.uf, { shouldValidate: true });\n })\n .catch(() => {});\n };\n\n async function onSubmit(data: BillingDataFormValues) {\n const payload: UpdateBillingDataRequest =\n data.country === 'BR'\n ? {\n financial_document_type: isCompanyDocument(data.document) ? 2 : 1,\n financial_document: data.document,\n financial_name: data.financialName,\n financial_email: data.financialEmail,\n zipcode: data.cep,\n address: data.street,\n address_number: data.streetNumber,\n address_complement: data.complement ?? '',\n neighborhood: data.neighborhood,\n city: data.city,\n state: data.state,\n country: data.country,\n }\n : {\n financial_name: data.financialName,\n financial_email: data.financialEmail,\n country: data.country,\n };\n\n try {\n await updateBillingData(payload);\n toast.custom(\n (t) => (\n <Toast\n variant=\"success\"\n message={translate('common.billing.requiredData.successToast')}\n toastId={t}\n />\n ),\n { duration: 5000 },\n );\n onSaved();\n } catch (error) {\n const message =\n error instanceof Error && error.message\n ? error.message\n : translate('common.billing.requiredData.errorToast');\n toast.custom((t) => <Toast variant=\"error\" message={message} toastId={t} />, {\n duration: 5000,\n });\n }\n }\n\n return (\n <form onSubmit={handleSubmit(onSubmit)} className=\"flex flex-col flex-1 min-h-0\" noValidate>\n <div className=\"flex flex-col gap-6 p-4 lg:p-5 flex-1 overflow-y-auto\">\n <div className=\"flex flex-col gap-5\">\n {!country && (\n <>\n <span className=\"paragraph-small-regular text-zinc-600\">\n {isBrazil\n ? translate('common.billing.requiredData.description')\n : translate('common.billing.requiredData.descriptionInternational')}\n </span>\n\n <Controller\n name=\"country\"\n control={control}\n render={({ field }) => (\n <SelectField\n label={translate('common.billing.requiredData.country')}\n placeholder={translate('common.billing.requiredData.select')}\n value={field.value || undefined}\n onChange={(value) =>\n setValue('country', String(value), { shouldValidate: true })\n }\n options={COUNTRY_OPTIONS}\n error={!!errors.country}\n errorMessage={errors.country?.message}\n />\n )}\n />\n </>\n )}\n\n <FormField\n label={\n isBrazil && isCompany\n ? translate('common.billing.requiredData.companyName')\n : translate('common.billing.requiredData.fullName')\n }\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.financialName}\n errorMessage={errors.financialName?.message}\n {...register('financialName')}\n />\n\n {isBrazil && (\n <FormField\n label={translate('common.billing.requiredData.document')}\n placeholder={translate('common.billing.requiredData.documentPlaceholder')}\n error={!!errors.document}\n errorMessage={errors.document?.message}\n {...register('document', {\n onChange: (event) => handleDocumentChange(event.target.value),\n })}\n />\n )}\n\n <FormField\n label={translate('common.billing.requiredData.financialEmail')}\n placeholder={translate('common.billing.requiredData.financialEmailPlaceholder')}\n type=\"email\"\n error={!!errors.financialEmail}\n errorMessage={errors.financialEmail?.message}\n {...register('financialEmail')}\n />\n </div>\n\n {isBrazil && (\n <>\n <div className=\"h-px bg-zinc-200\" />\n\n <div className=\"flex flex-col gap-5\">\n <span className=\"paragraph-small-semibold text-zinc-950\">\n {translate('common.billing.requiredData.addressHeading')}\n </span>\n\n <FormField\n label={translate('common.billing.requiredData.cep')}\n placeholder=\"_____-___\"\n error={!!errors.cep}\n errorMessage={errors.cep?.message}\n {...register('cep', {\n onChange: (event) => handleCepChange(event.target.value),\n })}\n />\n\n <div className=\"flex gap-4\">\n <div className=\"flex-[3]\">\n <FormField\n label={translate('common.billing.requiredData.street')}\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.street}\n errorMessage={errors.street?.message}\n {...register('street')}\n />\n </div>\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.streetNumber')}\n placeholder=\"000\"\n error={!!errors.streetNumber}\n errorMessage={errors.streetNumber?.message}\n {...register('streetNumber')}\n />\n </div>\n </div>\n\n <div className=\"flex gap-4\">\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.neighborhood')}\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.neighborhood}\n errorMessage={errors.neighborhood?.message}\n {...register('neighborhood')}\n />\n </div>\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.complement')}\n optional\n placeholder={translate('common.billing.requiredData.typeHere')}\n {...register('complement')}\n />\n </div>\n </div>\n\n <div className=\"flex gap-4\">\n <div className=\"flex-1\">\n <FormField\n label={translate('common.billing.requiredData.city')}\n placeholder={translate('common.billing.requiredData.typeHere')}\n error={!!errors.city}\n errorMessage={errors.city?.message}\n {...register('city')}\n />\n </div>\n <div className=\"flex-1\">\n <Controller\n name=\"state\"\n control={control}\n render={({ field }) => (\n <SelectField\n label={translate('common.billing.requiredData.state')}\n placeholder={translate('common.billing.requiredData.select')}\n value={field.value || undefined}\n onChange={(value) =>\n setValue('state', String(value), { shouldValidate: true })\n }\n options={BR_STATE_OPTIONS}\n error={!!errors.state}\n errorMessage={errors.state?.message}\n />\n )}\n />\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n\n <div className=\"flex items-center justify-end p-4 lg:p-5 border-t border-zinc-200 shrink-0\">\n <Button\n type=\"submit\"\n className=\"h-10! w-full lg:w-fit\"\n disabled={!isValid || isSubmitting}\n loading={isSubmitting}\n >\n {isSubmitting\n ? translate('common.billing.requiredData.submitting')\n : submitLabel ?? translate('common.billing.requiredData.submit')}\n </Button>\n </div>\n </form>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1162,11 +1162,8 @@ const messages = {
1162
1162
  addressHeading: "Billing address",
1163
1163
  select: "Select",
1164
1164
  typeHere: "Type here",
1165
- personType: "Entity type",
1166
- personTypePf: "Individual",
1167
- personTypePj: "Company",
1168
- cpf: "CPF",
1169
- cnpj: "CNPJ",
1165
+ document: "CPF or CNPJ",
1166
+ documentPlaceholder: "Enter your CPF or CNPJ",
1170
1167
  fullName: "Full name",
1171
1168
  companyName: "Legal name",
1172
1169
  financialEmail: "Billing email",
@@ -1190,8 +1187,8 @@ const messages = {
1190
1187
  invalidCep: "Invalid ZIP code",
1191
1188
  invalidCpf: "Invalid CPF",
1192
1189
  invalidCnpj: "Invalid CNPJ",
1193
- invalidCpfChecksum: "Invalid CPF \u2014 check the verification digits",
1194
- invalidCnpjChecksum: "Invalid CNPJ \u2014 check the verification digits"
1190
+ invalidCpfChecksum: "Invalid CPF, check the verification digits",
1191
+ invalidCnpjChecksum: "Invalid CNPJ, check the verification digits"
1195
1192
  }
1196
1193
  },
1197
1194
  navigation: {