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

View File

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

View File

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

View File

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

View File

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