Files
Investidor-V2/resources/js/components/sector-entry.tsx
T
nala cf003c8623
tests / ci (push) Canceled after 0s
versao nrgocios 4
2026-10-18 15:57:06 +02:00

167 lines
6.4 KiB
TypeScript

import { Link } from '@inertiajs/react';
export type SectorEntryData = {
articles: {
title: string;
href: string;
image: { href: string; alt: string } | null;
scope: string;
}[];
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;
start_notice: string | null;
register_notice: string | null;
specialization_href: string | null;
content_notice: string | null;
};
export default function SectorEntry({ data }: { data: SectorEntryData }) {
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>
<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}
>
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>
<h2 className="text-xl font-bold">
Conteúdo e possibilidades de negócio
</h2>
{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) => (
<article
className="min-w-0 rounded border p-4"
key={a.href}
>
{a.image && (
<img
className="mb-3 h-36 w-full object-cover"
src={a.image.href}
alt={a.image.alt}
/>
)}
<Link className="font-semibold underline" href={a.href}>
{a.title}
</Link>
<p>{a.scope}</p>
</article>
))}
</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>
)}
<h2 className="text-xl font-bold">
Projetos âncora, clusters e território
</h2>
{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>
);
}