Files
Investidor-V2/resources/js/components/sector-entry.tsx
T

166 lines
6.3 KiB
TypeScript

import SectorResourceReference, { type SectorResourceData } from './sector-resource-reference';
import { Link } from '@inertiajs/react';
import EducationalArticleCard, {
type EducationalArticle,
} from './educational-article-card';
export type SectorEntryData = {
resource_reference?: SectorResourceData | null;
articles: EducationalArticle[];
relations: {
id: string;
title: string;
href: string;
kind: string;
basis: string;
source: string | null;
}[];
locations: {
opportunity_title: string;
href: string;
location: Record<string, unknown>;
}[];
start_href: string | null;
register_href: string | null;
register_label?: string;
start_notice: string | null;
register_notice: string | null;
specialization_href: string | null;
content_notice: string | null;
};
export default function SectorEntry({
data,
headingLevel = 2,
}: {
data: SectorEntryData;
headingLevel?: 2 | 3;
}) {
const Heading = headingLevel === 2 ? 'h2' : 'h3';
return (
<section
className="space-y-5"
aria-label="Explorar e desenvolver negócios"
>
<p>
Explore o setor, prepare uma ideia e apresente um negócio na
modalidade adequada. Cada oportunidade tem promotor, objetivo e
dados próprios.
</p>
{data.resource_reference && <SectorResourceReference data={data.resource_reference} />}
<nav aria-label="Ações no setor" className="flex flex-wrap gap-3">
{data.start_href ? (
<Link
className="rounded bg-emerald-800 px-4 py-3 text-white"
href={data.start_href}
>
Iniciar ou continuar uma ideia neste setor
</Link>
) : (
<p role="status">{data.start_notice}</p>
)}
{data.register_href ? (
<Link
className="rounded border px-4 py-3"
href={data.register_href}
>
{data.register_label ??
'Cadastrar oportunidade — escolher modalidade'}
</Link>
) : (
<p role="status">{data.register_notice}</p>
)}
</nav>
<p>
Projeto de investimento, parceria, venda de negócio e franquia
seguem os formulários e workflows existentes. Autentique-se
quando for necessário guardar ou cadastrar. O cadastro usa o
perfil e a modalidade já autorizados; se ainda não tem perfil,
pode preparar a ideia e pedir o perfil de promotor.
</p>
<Heading className="text-xl font-bold">
Descubra onde investir
</Heading>
{data.content_notice && <p>{data.content_notice}</p>}
{!data.articles.length && (
<p>
Conteúdo educativo setorial ainda não disponível. Pode
iniciar uma ideia e consultar oportunidades.
</p>
)}
<div className="grid gap-4 md:grid-cols-2">
{data.articles.map((a) => (
<EducationalArticleCard
key={a.href}
article={a}
headingLevel={headingLevel === 2 ? 3 : 4}
/>
))}
</div>
{data.specialization_href && (
<p>
<Link className="underline" href={data.specialization_href}>
Preparar um investimento Fintech
</Link>{' '}
— especialização do Mercado Financeiro, relacionada com
Tecnologias de Informação; o modelo concreto determina as
dependências.
</p>
)}
<Heading className="text-xl font-bold">
Projetos âncora, clusters e território
</Heading>
{data.relations.length ? (
<ul>
{data.relations.map((r) => (
<li className="mb-3" key={r.id}>
<Link className="underline" href={r.href}>
{r.title}
</Link>
<p>{r.basis}</p>
{r.source && (
<p className="text-sm break-words">
Fonte: {r.source}
</p>
)}
</li>
))}
</ul>
) : (
<p>
Sem fichas publicadas com associação cadastrada às
oportunidades públicas deste setor. A ausência de ligação
não impede a preparação da ideia.
</p>
)}
<p>
<Link className="underline" href="/carteira">
Explorar projetos, corredores e clusters
</Link>{' '}
·{' '}
<Link className="underline" href="/zonas">
Consultar localizações
</Link>{' '}
·{' '}
<Link className="underline" href="/parcerias">
Explorar parceiros e propostas
</Link>
</p>
<p>
<Link className="underline" href="/perfil/promotor">
Consultar ou pedir perfil de promotor
</Link>
</p>
<p>
As ligações acima representam cadastros existentes. Menções em
artigos não demonstram implantação, disponibilidade de terreno
ou parceria. Relações e parceiros específicos por confirmar
permanecem identificados nas fichas.
</p>
<p>
Ao guardar a ideia, continue nas cinco fases e 19 etapas e
prepare o apoio no mesmo dossier, com documentos e ferramentas
contextualizados.
</p>
</section>
);
}