mirror of
https://github.com/felipegcoutinho/openmonetis.git
synced 2026-05-09 02:51:46 +00:00
feat: padroniza contas e cartoes inativos
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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={
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
Reference in New Issue
Block a user