feat: padroniza contas e cartoes inativos

This commit is contained in:
Felipe Coutinho
2026-05-05 17:17:13 +00:00
parent b2d4b29cb5
commit 9c0669a152
5 changed files with 18 additions and 9 deletions

View File

@@ -15,6 +15,7 @@ import {
TooltipContent,
TooltipTrigger,
} from "@/shared/components/ui/tooltip";
import { isAccountInactive } from "@/shared/lib/accounts/constants";
import { cn } from "@/shared/utils/ui";
interface AccountCardProps {
@@ -46,7 +47,7 @@ export function AccountCard({
onTransfer,
className,
}: AccountCardProps) {
const isInactive = status?.toLowerCase() === "inativa";
const isInactive = isAccountInactive(status);
const balanceColor =
balance > 0
@@ -145,6 +146,7 @@ export function AccountCard({
<span className="text-xs text-muted-foreground">Saldo</span>
<MoneyValues
amount={balance}
showPositiveSign
className={cn("text-2xl font-semibold", balanceColor)}
/>
</div>

View File

@@ -186,14 +186,14 @@ export function AccountsPage({
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
<TabsList>
<TabsTrigger value="ativos">Ativas</TabsTrigger>
<TabsTrigger value="arquivados">Arquivadas</TabsTrigger>
<TabsTrigger value="inativas">Inativas</TabsTrigger>
</TabsList>
<TabsContent value="ativos" className="mt-4">
{renderAccountList(orderedAccounts, false)}
</TabsContent>
<TabsContent value="arquivados" className="mt-4">
<TabsContent value="inativas" className="mt-4">
{renderAccountList(orderedArchivedAccounts, true)}
</TabsContent>
</Tabs>

View File

@@ -174,14 +174,14 @@ export function CardsPage({
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
<TabsList>
<TabsTrigger value="ativos">Ativos</TabsTrigger>
<TabsTrigger value="arquivados">Arquivados</TabsTrigger>
<TabsTrigger value="inativos">Inativos</TabsTrigger>
</TabsList>
<TabsContent value="ativos" className="mt-4">
{renderCardList(orderedCards, false)}
</TabsContent>
<TabsContent value="arquivados" className="mt-4">
<TabsContent value="inativos" className="mt-4">
{renderCardList(orderedArchivedCards, true)}
</TabsContent>
</Tabs>

View File

@@ -22,6 +22,7 @@ import {
TooltipTrigger,
} from "@/shared/components/ui/tooltip";
import { WidgetEmptyState } from "@/shared/components/widget-empty-state";
import { isAccountInactive } from "@/shared/lib/accounts/constants";
import { resolveLogoSrc } from "@/shared/lib/logo";
import { formatPeriodForUrl } from "@/shared/utils/period";
@@ -42,12 +43,15 @@ export function MyAccountsWidget({
}: MyAccountsWidgetProps) {
const [isPending, startTransition] = useTransition();
const excludedAccountsCount = accounts.filter(
const activeAccounts = accounts.filter(
(account) => !isAccountInactive(account.status),
);
const excludedAccountsCount = activeAccounts.filter(
(account) => account.excludeFromBalance,
).length;
const visibleAccounts = showExcludedAccounts
? accounts
: accounts.filter((account) => !account.excludeFromBalance);
? activeAccounts
: activeAccounts.filter((account) => !account.excludeFromBalance);
const displayedAccounts = visibleAccounts.slice(0, 5);
const remainingCount = visibleAccounts.length - displayedAccounts.length;
const hiddenExcludedAccountsCount = showExcludedAccounts
@@ -117,7 +121,7 @@ export function MyAccountsWidget({
) : null}
<div>
{accounts.length === 0 ? (
{activeAccounts.length === 0 ? (
<div className="-mt-10">
<WidgetEmptyState
icon={

View File

@@ -31,3 +31,6 @@ export const buildRefundNote = (originalTransactionId: string) =>
export const isRefundNote = (note: string | null | undefined) =>
note?.startsWith(REFUND_NOTE_PREFIX) ?? false;
export const isAccountInactive = (status: string | null | undefined) =>
status?.toLowerCase() === "inativa";