"use client"; import { CurrencyInput } from "@/components/ui/currency-input"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Textarea } from "@/components/ui/textarea"; import { AccountSelectContent, BrandSelectContent, StatusSelectContent, } from "./card-select-items"; import { DAYS_IN_MONTH, DEFAULT_CARD_BRANDS, DEFAULT_CARD_STATUS, } from "./constants"; import type { CardFormValues } from "./types"; interface AccountOption { id: string; name: string; logo: string | null; } interface CardFormFieldsProps { values: CardFormValues; accountOptions: AccountOption[]; onChange: (field: keyof CardFormValues, value: string) => void; } const ensureOption = (options: string[], value: string) => { if (!value) { return options; } return options.includes(value) ? options : [value, ...options]; }; export function CardFormFields({ values, accountOptions, onChange, }: CardFormFieldsProps) { const brands = ensureOption( DEFAULT_CARD_BRANDS as unknown as string[], values.brand, ); const statuses = ensureOption( DEFAULT_CARD_STATUS as unknown as string[], values.status, ); return (
onChange("name", event.target.value)} placeholder="Ex.: Nubank Platinum" required />
onChange("limit", value)} placeholder="R$ 0,00" />