import React, { useState } from 'react'; import { BookOpen, Video, FileText, Download, ChevronRight, Search, Lock, Eye, EyeOff, PlayCircle } from 'lucide-react'; export default function PlataformaCursos() { const [paginaAtual, setPaginaAtual] = useState('basicos'); const [senhaDigitada, setSenhaDigitada] = useState(''); const [empresaSelecionadaLogin, setEmpresaSelecionadaLogin] = useState(''); const [empresasAutenticadas, setEmpresasAutenticadas] = useState([]); const [mostrarSenha, setMostrarSenha] = useState(false); const [abaAtiva, setAbaAtiva] = useState('Bunge'); const [cursoSelecionado, setCursoSelecionado] = useState(null); const [materialSelecionado, setMaterialSelecionado] = useState(null); const [busca, setBusca] = useState(''); const [erroSenha, setErroSenha] = useState(false); const SENHAS = { Bunge: 'bunge123', Pepsico: 'pepsi123', Alcon: 'alcon123', 'Apanha Aves': 'aves123', 'Gestão de Contratos': 'contratos123' }; const ABAS = ['Bunge', 'Pepsico', 'Alcon', 'Apanha Aves', 'Gestão de Contratos']; const criarMaterial = (tipo, titulo, info, url = "https://www.youtube.com/embed/dQw4w9WgXcQ") => { const obj = { tipo, titulo, url: tipo === 'pdf' ? '#' : url }; if (tipo === 'video') { obj.duracao = info; } else { obj.paginas = info; } return obj; }; const criarProcedimento = (id, titulo, descricao, materiais, imagem = null) => ({ id, titulo, descricao, materiais, imagem }); const PROCEDIMENTOS = { basicos: { Bunge: [ criarProcedimento( 1, "Procedimento Básico de Recepção", "Processo padrão para recepção de mercadorias", [ criarMaterial('video', "Recepção de Mercadorias", "10:30"), criarMaterial('pdf', "Checklist de Recepção", 5) ], "https://images.unsplash.com/photo-1586528116311-ad8dd3c8310d?w=800&h=600&fit=crop" ), criarProcedimento( 2, "Controle de Qualidade Inicial", "Verificações básicas de qualidade", [ criarMaterial('video', "Inspeção Visual", "8:15"), criarMaterial('pdf', "Padrões de Qualidade", 8) ], "https://images.unsplash.com/photo-1504917595217-d4dc5ebe6122?w=800&h=600&fit=crop" ) ], Pepsico: [ criarProcedimento(3, "Organização de Estoque", "Procedimentos básicos de organização", [ criarMaterial('video', "Sistema FIFO", "12:20"), criarMaterial('pdf', "Manual de Armazenagem", 12) ]) ], Alcon: [ criarProcedimento(4, "Segurança no Manuseio", "Procedimentos de segurança básicos", [ criarMaterial('video', "EPIs Obrigatórios", "7:45"), criarMaterial('pdf', "Normas de Segurança", 6) ]) ], 'Apanha Aves': [ criarProcedimento(5, "Procedimento de Captura", "Técnicas básicas de captura de aves", [ criarMaterial('video', "Técnicas de Captura", "15:00"), criarMaterial('pdf', "Guia de Bem-Estar Animal", 10) ]) ], 'Gestão de Contratos': [ criarProcedimento(6, "Introdução aos Contratos", "Conceitos básicos de gestão contratual", [ criarMaterial('video', "Tipos de Contratos", "18:30"), criarMaterial('pdf', "Glossário Jurídico", 15) ]) ] }, restritos: { Bunge: [ criarProcedimento(101, "Negociação de Preços Estratégicos", "Procedimentos avançados de negociação comercial", [ criarMaterial('video', "Estratégias de Precificação", "25:30"), criarMaterial('pdf', "Dados Confidenciais de Mercado", 30) ]) ], Pepsico: [ criarProcedimento(103, "Análise de Performance Financeira", "Relatórios e KPIs confidenciais", [ criarMaterial('video', "Dashboard Financeiro", "22:40"), criarMaterial('pdf', "Resultados Trimestrais", 25) ]) ], Alcon: [ criarProcedimento(104, "Procedimentos de Auditoria Interna", "Protocolos de compliance e auditoria", [ criarMaterial('video', "Processo de Auditoria", "28:00"), criarMaterial('pdf', "Checklist de Conformidade", 18) ]) ], 'Apanha Aves': [ criarProcedimento(105, "Gestão de Fornecedores Críticos", "Avaliação e contratos estratégicos", [ criarMaterial('video', "Avaliação de Fornecedores", "19:45"), criarMaterial('pdf', "Contratos Confidenciais", 35) ]) ], 'Gestão de Contratos': [ criarProcedimento(106, "Negociação de Cláusulas Complexas", "Estratégias avançadas de negociação contratual", [ criarMaterial('video', "Táticas de Negociação", "30:20"), criarMaterial('pdf', "Modelos de Contratos Estratégicos", 40) ]) ] } }; const procedimentosAtuais = PROCEDIMENTOS[paginaAtual][abaAtiva] || []; const procedimentosFiltrados = procedimentosAtuais.filter(p => p.titulo.toLowerCase().includes(busca.toLowerCase()) || p.descricao.toLowerCase().includes(busca.toLowerCase()) ); const tentarLogin = () => { if (senhaDigitada === SENHAS[empresaSelecionadaLogin]) { setEmpresasAutenticadas([...empresasAutenticadas, empresaSelecionadaLogin]); setAbaAtiva(empresaSelecionadaLogin); setErroSenha(false); setSenhaDigitada(''); setEmpresaSelecionadaLogin(''); } else { setErroSenha(true); setTimeout(() => setErroSenha(false), 3000); } }; const sairDaEmpresa = (empresa) => { const novasEmpresas = empresasAutenticadas.filter(e => e !== empresa); setEmpresasAutenticadas(novasEmpresas); if (abaAtiva === empresa) { setAbaAtiva(novasEmpresas[0] || 'Bunge'); if (novasEmpresas.length === 0) setPaginaAtual('basicos'); } }; const mudarAba = (aba) => { if (paginaAtual === 'restritos' && !empresasAutenticadas.includes(aba)) { setEmpresaSelecionadaLogin(aba); } else { setAbaAtiva(aba); setBusca(''); } }; const resetarVisualizacao = () => { setCursoSelecionado(null); setMaterialSelecionado(null); setBusca(''); }; const isRestrito = paginaAtual === 'restritos'; const temAcesso = !isRestrito || empresasAutenticadas.includes(abaAtiva); const TelaLogin = () => (

{empresaSelecionadaLogin}

Área de acesso restrito

setSenhaDigitada(e.target.value)} onKeyPress={(e) => e.key === 'Enter' && tentarLogin()} className={`w-full px-5 py-4 border-2 ${erroSenha ? 'border-red-400 focus:border-red-500' : 'border-gray-200 focus:border-violet-500'} rounded-xl outline-none transition-all text-gray-900 font-medium`} placeholder="Digite sua senha" />
{erroSenha &&

Senha incorreta. Tente novamente.

}
); const TelaSelecaoEmpresa = () => (

Área Restrita

Selecione sua empresa para acessar

{ABAS.map(empresa => ( ))}
); if (empresaSelecionadaLogin) return ; if (isRestrito && empresasAutenticadas.length === 0) return ; return (

MeusProcedimentos

{isRestrito ? 'Área Restrita' : 'Área Pública'} {isRestrito && empresasAutenticadas.length > 0 && ( {empresasAutenticadas.length} autenticada(s) )}

{isRestrito && empresasAutenticadas.length > 0 && ( )} Logo
{!cursoSelecionado && (
{ABAS.map(aba => (
{isRestrito && empresasAutenticadas.includes(aba) && ( )}
))}
)} {!cursoSelecionado ? (

{abaAtiva}

{!isRestrito ? 'Procedimentos básicos e informativos' : temAcesso ? 'Procedimentos confidenciais para gestores' : 'Faça login para acessar este conteúdo'}

{temAcesso ? ( <>
setBusca(e.target.value)} className="w-full pl-14 pr-5 py-4 bg-white rounded-2xl shadow-md focus:shadow-lg outline-none transition-all text-gray-900 font-medium border-2 border-transparent focus:border-violet-300" />
{procedimentosFiltrados.length > 0 ? (
{procedimentosFiltrados.map(proc => (
setCursoSelecionado(proc)}> {proc.imagem ? (
{proc.titulo}
) : (
)}

{proc.titulo}

{proc.descricao}

{proc.materiais.filter(m => m.tipo === 'pdf').length}
))}
) : (

Nenhum procedimento encontrado

)} ) : (

Conteúdo Bloqueado

Faça login para acessar os procedimentos de {abaAtiva}

)}
) : !materialSelecionado ? (

{cursoSelecionado.titulo}

{cursoSelecionado.descricao}

Materiais Disponíveis

{cursoSelecionado.materiais.map((mat, idx) => (
setMaterialSelecionado(mat)} className="bg-white rounded-xl shadow-md hover:shadow-xl transition-all cursor-pointer p-6 flex items-center gap-5 group hover:scale-105 duration-300">
{mat.tipo === 'video' ?

{mat.titulo}

{mat.tipo === 'video' ? mat.duracao : `${mat.paginas} páginas`}

))}
) : (

{materialSelecionado.titulo}

{materialSelecionado.tipo === 'video' ? `Duração: ${materialSelecionado.duracao}` : `${materialSelecionado.paginas} páginas`}

{materialSelecionado.tipo === 'video' ? (
) : (

{materialSelecionado.titulo}

Documento PDF com {materialSelecionado.paginas} páginas

)}
)}
); }