import { useEffect, useMemo, useState } from 'react'; import { Link, useOutletContext } from 'react-router-dom'; import { BriefcaseBusiness, Eye, Search } from 'lucide-react'; import DateRangePicker from '../components/DateRangePicker'; import PaginationControls from '../components/PaginationControls'; import RefreshStatus from '../components/RefreshStatus'; import { fetchSellerAnalytics } from '../dataService'; import { formatDisplayName, removeTrailingSellerId } from '../displayFormatters'; import type { DateRange, SellerAnalyticsItem } from '../types'; const formatNumber = (value: number) => new Intl.NumberFormat('pt-BR', { maximumFractionDigits: 0 }).format(value); const formatCurrency = (value: number) => new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(value); const SellersTableSkeleton = () => (
Performance comercial, carteira e produtos vendidos por responsável.
Selecione um vendedor para ver carteira, produtos e evolução.
| Posição | Nome do vendedor | Receita | Pedidos | Clientes | Ticket médio | Produtos vendidos | Ações |
|---|---|---|---|---|---|---|---|
| {startIndex + index + 1} | {formatDisplayName(removeTrailingSellerId(seller.name))} {seller.id.startsWith('name:') ? 'Sem ID Tiny' : `ID ${seller.id}`} |
{formatCurrency(seller.revenue)} | {formatNumber(seller.orderCount)} | {formatNumber(seller.customerCount)} | {formatCurrency(seller.averageTicket)} | {formatNumber(seller.quantitySold)} un. ({formatNumber(seller.orderCount)} {seller.orderCount === 1 ? 'pedido' : 'pedidos'}) |
Nenhum vendedor encontrado.
Ajuste a busca ou o período selecionado.