"use client";
import {
RiCheckboxBlankCircleLine,
RiCheckboxCircleFill,
} from "@remixicon/react";
import { useState } from "react";
import { PAYMENT_METHODS } from "@/features/transactions/constants";
import { Button } from "@/shared/components/ui/button";
import { Label } from "@/shared/components/ui/label";
import { MonthPicker } from "@/shared/components/ui/month-picker";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/shared/components/ui/popover";
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/shared/components/ui/select";
import {
dateToPeriod,
displayPeriod,
periodToDate,
} from "@/shared/utils/period";
import { cn } from "@/shared/utils/ui";
import {
AccountCardSelectContent,
PaymentMethodSelectContent,
} from "../../select-items";
import type { PaymentMethodSectionProps } from "./transaction-dialog-types";
function InlinePeriodPicker({
period,
onPeriodChange,
}: {
period: string;
onPeriodChange: (value: string) => void;
}) {
const [open, setOpen] = useState(false);
return (
Fatura de
{
onPeriodChange(dateToPeriod(date));
setOpen(false);
}}
/>
);
}
export function PaymentMethodSection({
formState,
onFieldChange,
accountOptions,
cardOptions,
isUpdateMode,
disablePaymentMethod,
disableCardSelect,
showSettledToggle,
}: PaymentMethodSectionProps) {
const isCartaoSelected = formState.paymentMethod === "Cartão de crédito";
const showContaSelect = [
"Pix",
"Dinheiro",
"Boleto",
"Cartão de débito",
"Pré-Pago | VR/VA",
"Transferência bancária",
].includes(formState.paymentMethod);
const filteredContaOptions =
formState.paymentMethod === "Pré-Pago | VR/VA"
? accountOptions.filter(
(option) => option.accountType === "Pré-Pago | VR/VA",
)
: formState.paymentMethod === "Dinheiro"
? accountOptions.filter((option) => option.accountType === "Dinheiro")
: accountOptions;
const hasSecondaryColumn = isCartaoSelected || showContaSelect;
return (
{!isUpdateMode ? (
) : null}
{isCartaoSelected ? (
{formState.cardId ? (
onFieldChange("period", value)}
/>
) : null}
) : null}
{!isCartaoSelected && showContaSelect ? (
) : null}
{showSettledToggle ? (
Marcar como pago
Indica que o valor já foi pago.
) : null}
);
}