Files
Investidor-V2/resources/js/pages/procurement/manage.tsx
T

107 lines
4.3 KiB
TypeScript

import { Link } from '@inertiajs/react';
import { Frame, card, button } from '@/pages/investment/shared';
import { states, type Publication } from './shared';
export default function Manage({
items,
watched = false,
}: {
items: {
id: string;
title?: string;
version?: number;
published?: boolean;
publication?: Publication;
state?: string;
changed?: boolean;
}[];
watched?: boolean;
}) {
return (
<Frame
title={
watched
? 'Concursos que acompanho'
: 'Gestão de concursos e anúncios'
}
>
<Link className="underline" href="/concursos">
Catálogo público
</Link>
{!watched && (
<>
<Link className={button} href="/management/concursos/novo">
Novo concurso/anúncio
</Link>
<Link className="ml-3 underline" href="/gestao-conteudos">
Entrada única de gestão
</Link>
<p>
Guardar → recuperar → pré-visualizar → publicar →
actualizar/prorrogar → publicar resultado ou
cancelamento. Carregue documentos na biblioteca
existente, acompanhe o scan e autorize separadamente os
anexos públicos. O rascunho pode ficar incompleto.
</p>
<p>
Para actualizar, reabra o concurso, guarde as
alterações, escolha o acto e confira a prévia. A data de
publicação no portal não substitui a data de origem.
Acompanhar não apresenta proposta.
</p>
</>
)}
{!items.length && <p>Sem registos.</p>}
{items.map((item) => (
<article key={item.id} className={`${card} my-3`}>
<h2 className="font-semibold">
{item.title ?? String(item.publication?.payload.title)}
</h2>
{watched ? (
<>
<p>
{states[item.state ?? '']} ·{' '}
{item.changed
? 'Há novos actos desde que começou a acompanhar'
: 'Sem novos actos desde o registo de acompanhamento'}
</p>
<p>
O acompanhamento é consultado nesta área; não
afirma envio de alertas por email.
</p>
<Link
className="underline"
href={`/concursos/${item.id}`}
>
Consultar concurso
</Link>
</>
) : (
<>
<p>
Versão {item.version} ·{' '}
{item.published
? 'Com acto publicado; alterações em preparação são separadas'
: 'Rascunho privado'}
</p>
<Link
className="underline"
href={`/management/concursos/${item.id}`}
>
Recuperar e editar
</Link>
{item.published && (
<Link
className="ml-3 underline"
href={`/concursos/${item.id}`}
>
Consultar publicação
</Link>
)}
</>
)}
</article>
))}
</Frame>
);
}