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
Senha de Acesso
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"
/>
setMostrarSenha(!mostrarSenha)} className="absolute right-4 top-4 text-gray-400 hover:text-gray-600">
{mostrarSenha ? : }
{erroSenha &&
Senha incorreta. Tente novamente.
}
Entrar no Sistema
{ setEmpresaSelecionadaLogin(''); setSenhaDigitada(''); setErroSenha(false); }} className="w-full text-gray-600 py-3 hover:text-gray-900 transition-colors font-medium">
Cancelar
);
const TelaSelecaoEmpresa = () => (
Área Restrita
Selecione sua empresa para acessar
{ABAS.map(empresa => (
setEmpresaSelecionadaLogin(empresa)} className="bg-white/10 backdrop-blur-md border border-white/20 p-8 rounded-2xl hover:bg-white/20 transition-all group shadow-xl hover:shadow-2xl hover:scale-105">
{empresa}
Clique para fazer login
))}
setPaginaAtual('basicos')} className="w-full text-white hover:text-violet-100 transition-colors text-sm font-medium">
Voltar para Procedimentos Básicos
);
if (empresaSelecionadaLogin) return ;
if (isRestrito && empresasAutenticadas.length === 0) return ;
return (
{!cursoSelecionado && (
{ABAS.map(aba => (
mudarAba(aba)} className={`px-5 py-2.5 rounded-xl font-semibold transition-all whitespace-nowrap ${abaAtiva === aba ? 'bg-white shadow-lg text-violet-600 scale-105' : 'bg-white/50 text-gray-600 hover:bg-white hover:shadow'}`}>
{isRestrito && !empresasAutenticadas.includes(aba) && }
{aba}
{isRestrito && empresasAutenticadas.includes(aba) && (
{ e.stopPropagation(); sairDaEmpresa(aba); }} className="absolute -top-2 -right-2 bg-red-500 text-white rounded-full w-6 h-6 flex items-center justify-center text-xs hover:bg-red-600 shadow-lg">×
)}
))}
)}
{!cursoSelecionado ? (
{abaAtiva}
{!isRestrito ? 'Procedimentos básicos e informativos' : temAcesso ? 'Procedimentos confidenciais para gestores' : 'Faça login para acessar este conteúdo'}
{temAcesso ? (
<>
{procedimentosFiltrados.length > 0 ? (
{procedimentosFiltrados.map(proc => (
setCursoSelecionado(proc)}>
{proc.imagem ? (
) : (
)}
{proc.titulo}
{proc.descricao}
{proc.materiais.filter(m => m.tipo === 'video').length}
{proc.materiais.filter(m => m.tipo === 'pdf').length}
))}
) : (
Nenhum procedimento encontrado
)}
>
) : (
Conteúdo Bloqueado
Faça login para acessar os procedimentos de {abaAtiva}
setEmpresaSelecionadaLogin(abaAtiva)} className="bg-gradient-to-r from-violet-600 to-indigo-600 text-white px-8 py-4 rounded-xl text-lg font-semibold hover:from-violet-700 hover:to-indigo-700 transition-all inline-flex items-center gap-3 shadow-lg hover:shadow-xl">
Fazer Login
)}
) : !materialSelecionado ? (
setCursoSelecionado(null)} className="text-violet-600 hover:text-violet-700 mb-8 flex items-center gap-2 font-semibold text-lg">
Voltar
{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`}
))}
) : (
setMaterialSelecionado(null)} className="text-violet-600 hover:text-violet-700 mb-8 flex items-center gap-2 font-semibold text-lg">
Voltar
{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
Baixar PDF
)}
)}
);
}