109 lines
4.3 KiB
TypeScript
109 lines
4.3 KiB
TypeScript
import { inputText } from '../../lib/input-text.ts';
|
|
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 ??
|
|
inputText(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>
|
|
);
|
|
}
|