Files
Investidor-V2/resources/js/pages/management/content-hub.tsx
T

215 lines
9.9 KiB
TypeScript

import { Link } from '@inertiajs/react';
import { Frame, card, button } from '@/pages/investment/shared';
import { states } from './shared';
type Access = {
procurement?: { index: string; create: string };
opportunities?: {
index: string;
create: string | null;
profileWorkflow: boolean;
};
documents?: { index: string; edit: boolean };
};
export default function ContentHub({
access,
counts,
}: {
access: Access;
counts: Record<string, Record<string, number>>;
}) {
return (
<Frame title="Gestão de conteúdos e oportunidades">
<p>
Use os cadastros e a biblioteca existentes. Guardar um rascunho,
analisar um ficheiro e publicar são operações distintas. Cada
acção respeita a sua autorização actual.
</p>
<div className="grid gap-4 md:grid-cols-2">
{access.procurement && (
<section className={card}>
<h2 className="text-xl font-semibold">
Concursos e anúncios
</h2>
<p>
Cadastre o procedimento e os lotes, guarde e
recupere a preparação, reveja a prévia e publique os
actos autorizados. Esclarecimentos, prorrogações,
resultados e cancelamentos conservam versões e
histórico. Divulgação de oportunidade e abertura de
concurso são operações distintas.
</p>
<Link
className={button}
href={access.procurement.create}
>
Novo concurso/anúncio
</Link>
<Link
className="block underline"
href={access.procurement.index}
>
Gerir concursos e anúncios
</Link>
<Link className="block underline" href="/concursos">
Catálogo público
</Link>
</section>
)}
{access.opportunities && (
<section className={card}>
<h2 className="text-xl font-semibold">Oportunidades</h2>
<p>
Escolha a modalidade, o sector e a localização;
preencha, guarde o rascunho e siga as acções de
submissão, revisão e publicação disponíveis no seu
perfil.
</p>
<p>
Sector económico e modalidade são escolhas
distintas. Pode guardar preparação incompleta; o
editor identifica os campos e variantes ainda sem
suporte de submissão.
</p>
{access.opportunities.create && (
<Link
className={button}
href={access.opportunities.create}
>
Nova oportunidade
</Link>
)}
<Link
className="block underline"
href={access.opportunities.index}
>
Gerir oportunidades e histórico
</Link>
{access.opportunities.profileWorkflow && (
<Link
className="block underline"
href="/minhas-oportunidades/lotes/agronegocio"
>
Rever o lote das 34 oportunidades de Agronegócio
</Link>
)}
<p>
Para divulgar um resumo ainda em preparação, abra a
ficha e escolha{' '}
<strong>Divulgação promocional</strong>: prepare o
texto público, reveja a prévia e confirme divulgar,
actualizar ou retirar. Esta operação não conclui a
validação do investimento.
</p>
<ul>
{Object.entries(counts.opportunities ?? {}).map(
([state, total]) => (
<li key={state}>
<Link
className="underline"
href={`${access.opportunities!.index}?status=${state}`}
>
{states[state] ?? state}: {total}
</Link>
</li>
),
)}
</ul>
<p className="text-sm">
As etapas e a independência já definidas para
oportunidades mantêm-se. Esta entrada não atribui
autorização para rever ou publicar.
</p>
{!access.opportunities.profileWorkflow && (
<p>
O seu acesso actual abre o cadastro legado de
rascunhos. A submissão, revisão e publicação de
novas oportunidades utilizam os perfis
operacionais já existentes; a administração de
conteúdos não substitui essa designação. Esta
entrada não apresenta o rascunho legado como
percurso completo de publicação.
</p>
)}
</section>
)}
{access.documents && (
<section className={card}>
<h2 className="text-xl font-semibold">
Documentos e legislação
</h2>
<p>
Carregue o original ou reutilize um ficheiro
existente; acompanhe a análise, complete os
metadados e associações e defina o acesso. Depois
publique explicitamente, se autorizado.
</p>
<div className="flex flex-wrap gap-3">
<Link
className={button}
href={`${access.documents.index}?intent=document#receber`}
>
Novo documento
</Link>
{access.documents.edit && (
<Link
className={button}
href={`${access.documents.index}?intent=legislation#receber`}
>
Nova legislação
</Link>
)}
</div>
<Link
className="block underline"
href={`${access.documents.index}#conteudos`}
>
Gerir conteúdos, versões e histórico
</Link>
{!access.documents.edit && (
<p>
O seu acesso permite carregar e analisar
ficheiros próprios; não inclui cadastro
editorial nem publicação.
</p>
)}
<p>
Publicados: {counts.documents?.published ?? 0} · Não
publicados: {counts.documents?.unpublished ?? 0}. A
lista distingue rascunhos de conteúdos retirados
através do histórico.
</p>
<p className="text-sm">
Publicar legislação permite consultá-la. Não a
activa como regra executável no simulador.
</p>
</section>
)}
</div>
<section className={card}>
<h2 className="font-semibold">
Como concluir sem apoio técnico
</h2>
<ol className="list-decimal space-y-2 pl-5">
<li>
Abra a acção pretendida e use os campos do editor
existente.
</li>
<li>
Guarde a preparação. As mensagens indicam o estado e o
que precisa de corrigir.
</li>
<li>
Reabra pela gestão, pesquise o título e consulte o
histórico.
</li>
<li>
Use as acções autorizadas de publicação ou retirada. Os
originais e as revisões são preservados.
</li>
</ol>
</section>
</Frame>
);
}