feat(App): atualizar paleta de cores e status de protocolos
parent
49be6da9f7
commit
56078dc539
68
src/App.tsx
68
src/App.tsx
|
|
@ -1,16 +1,5 @@
|
|||
import {
|
||||
Card,
|
||||
CardContent,
|
||||
CardDescription,
|
||||
CardFooter,
|
||||
CardHeader,
|
||||
CardTitle,
|
||||
} from '@/views/components/ui/card';
|
||||
import {
|
||||
ChartContainer,
|
||||
ChartTooltip,
|
||||
ChartTooltipContent,
|
||||
} from '@/views/components/ui/chart';
|
||||
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/views/components/ui/card';
|
||||
import { ChartContainer, ChartTooltip, ChartTooltipContent } from '@/views/components/ui/chart';
|
||||
import { TrendingUp } from 'lucide-react';
|
||||
import { Bar, BarChart, CartesianGrid, Pie, PieChart, XAxis } from 'recharts';
|
||||
|
||||
|
|
@ -21,11 +10,25 @@ import { ProtocolsDashboard } from './views/protocols/protocols-dashboard';
|
|||
export const description =
|
||||
'Métricas de protocolos — tipos e status (gestão pública)';
|
||||
|
||||
const palette = {
|
||||
50: '#F0F9FF',
|
||||
100: '#E0F2FE',
|
||||
200: '#B9E7FE',
|
||||
300: '#7CD5FD',
|
||||
400: '#36C1FA',
|
||||
500: '#0CA9EB',
|
||||
600: '#007CB8',
|
||||
700: '#016BA3',
|
||||
800: '#065B86',
|
||||
900: '#0B4B6F',
|
||||
950: '#07304A',
|
||||
} as const;
|
||||
|
||||
const protocolsByTypeConfig = {
|
||||
licitacao: { label: 'Licitações', color: '#0b69a3' },
|
||||
contrato: { label: 'Contratos', color: '#007cb8' },
|
||||
convenio: { label: 'Convênios', color: '#36c1fa' },
|
||||
termo: { label: 'Termos Aditivos', color: '#7cd5fd' },
|
||||
licitacao: { label: 'Licitações', color: palette[700] },
|
||||
contrato: { label: 'Contratos', color: palette[600] },
|
||||
convenio: { label: 'Convênios', color: palette[400] },
|
||||
termo: { label: 'Termos Aditivos', color: palette[300] },
|
||||
} satisfies ChartConfig;
|
||||
|
||||
const protocolsByTypeData = [
|
||||
|
|
@ -36,17 +39,32 @@ const protocolsByTypeData = [
|
|||
];
|
||||
|
||||
const protocolStatusConfig = {
|
||||
andamento: { label: 'Em andamento', color: '#007cb8' },
|
||||
concluido: { label: 'Concluído', color: '#0ca9eb' },
|
||||
suspenso: { label: 'Suspenso', color: '#36c1fa' },
|
||||
cancelado: { label: 'Cancelado', color: '#7cd5fd' },
|
||||
Criado: { label: 'Criado', color: palette[950] },
|
||||
'Aguardando Trâmite': { label: 'Aguardando Trâmite', color: palette[900] },
|
||||
'Aguardando Recebimento': {
|
||||
label: 'Aguardando Recebimento',
|
||||
color: palette[800],
|
||||
},
|
||||
Enviado: { label: 'Enviado', color: palette[700] },
|
||||
Recebido: { label: 'Recebido', color: palette[600] },
|
||||
'Aguardando Entrega': { label: 'Aguardando Entrega', color: palette[500] },
|
||||
Entregue: { label: 'Entregue', color: palette[400] },
|
||||
Finalizado: { label: 'Finalizado', color: palette[300] },
|
||||
Cancelado: { label: 'Cancelado', color: palette[200] },
|
||||
Arquivado: { label: 'Arquivado', color: palette[100] },
|
||||
} satisfies ChartConfig;
|
||||
|
||||
const protocolStatusData = [
|
||||
{ status: 'andamento', count: 65, fill: '#007cb8' },
|
||||
{ status: 'concluido', count: 20, fill: '#0ca9eb' },
|
||||
{ status: 'suspenso', count: 8, fill: '#36c1fa' },
|
||||
{ status: 'cancelado', count: 7, fill: '#7cd5fd' },
|
||||
{ status: 'Criado', count: 12, fill: palette[950] },
|
||||
{ status: 'Aguardando Trâmite', count: 20, fill: palette[900] },
|
||||
{ status: 'Aguardando Recebimento', count: 10, fill: palette[800] },
|
||||
{ status: 'Enviado', count: 8, fill: palette[700] },
|
||||
{ status: 'Recebido', count: 25, fill: palette[600] },
|
||||
{ status: 'Aguardando Entrega', count: 5, fill: palette[500] },
|
||||
{ status: 'Entregue', count: 7, fill: palette[400] },
|
||||
{ status: 'Finalizado', count: 18, fill: palette[300] },
|
||||
{ status: 'Cancelado', count: 3, fill: palette[200] },
|
||||
{ status: 'Arquivado', count: 2, fill: palette[100] },
|
||||
];
|
||||
|
||||
export function App() {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
import { Dialog, DialogTrigger } from '@/views/components/ui/dialog';
|
||||
import { useMemo, useState } from 'react';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue