next()}\n />\n >\n )}\n \n previous()}\n />\n next()}\n />\n \n \n \n \n previous()}\n >\n \n \n \n \n \n \n next()}\n >\n \n \n \n \n \n \n \n >\n );\n };\n\n const CustomDot = ({ onMove, index, onClick, active }) => {\n return (\n onClick()}\n >\n );\n };\n\n const responsive = {\n desktop: {\n breakpoint: { max: 3000, min: 1025 },\n items: 4,\n slidesToSlide: 1,\n },\n tablet: {\n breakpoint: { max: 1024, min: 465 },\n items: 2,\n slidesToSlide: 1,\n },\n mobile: {\n breakpoint: { max: 464, min: 0 },\n items: 1,\n slidesToSlide: 1,\n },\n };\n\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 464 && curso.length > 1);\n };\n\n window.addEventListener('resize', handleResize);\n handleResize(); // Call the function on initial load\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [curso]);\n\n if (curso != null && curso.length > 0) {\n return (\n \n \n COM QUEM VOCÊ IRÁ APRENDER
\n \n \n 3 || isMobile}\n responsive={responsive}\n ssr={true}\n infinite={curso.length > 3 || isMobile}\n autoPlay={isMobile}\n autoPlaySpeed={3000}\n keyBoardControl={true}\n transitionDuration={500}\n arrows={false}\n renderDotsOutside={false}\n renderButtonGroupOutside={true}\n customButtonGroup={}\n customDot={}\n containerClass='carousel-container pb-5 pt-1'\n dotListClass='carousel-indicators'\n >\n {curso?.map((item) => (\n \n \n
\n ))}\n \n \n \n );\n }\n\n return <>>;\n}\n","import React, { useEffect, useState } from \"react\"\nimport { MDBRow, MDBCol,MDBIcon} from 'mdb-react-ui-kit';\n\nimport Layout from \"../components/Layout/layout\"\nimport Seo from \"../components/seo\"\nimport \"../components/Css/curso.css\"\n\nimport { format } from 'date-fns';\nimport { ptBR } from 'date-fns/locale';\n\nimport 'mdb-react-ui-kit/dist/css/mdb.min.css';\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\n\nimport PropTypes from \"prop-types\";\n\nimport Accordion from \"../components/Accordion/accordion\";\n\nimport Form from \"../components/FormInscricao/FormInscricao\";\n\nimport CarrosselCorpo from \"../templates/CarrosselCorpo/carrosselcorpo\";\n\nexport default function Curso ({pageContext: { slugtotal,corpoDocente }}) {\n\n Curso.propTypes = {\n slugtotal: PropTypes.arrayOf(PropTypes.string),\n };\n\n const [cursotituloArray, setCursotituloArray] = useState([])\n const [jsonLoaded, setJsonLoaded] = useState(false);\n \n useEffect(() => {\n const storedData = slugtotal\n if (storedData) {\n setCursotituloArray(storedData);\n setJsonLoaded(true);\n }\n }, [])\n\n let corpodoc = \"\";\n \n let title = \"\";\n let infor = \"\";\n let periodo = \"\";\n let carga = \"\";\n let horario = \"\";\n let local = \"\";\n let certificacao = \"\";\n let inscricao = \"\";\n let link = \"\";\n let logosPatro = \"\";\n\n let invesvista = \"\";\n let invesparcecheack = \"\";\n let invesparce = \"\";\n let invesparcevalor = \"\";\n let desgra = \"\";\n let desgraavista = \"\";\n let desgraparcecheack = \"\";\n let desgraparcepar = \"\";\n let desgraparcevalor = \"\";\n let desidade = \"\";\n let desidadevista = \"\";\n let desidadeparcecheack= \"\";\n let desidadeparcepar = \"\";\n let desidadeparcevalor = \"\";\n let utf16Text = \"\";\n let desalunocheack = \"\";\n let desalunoparcelas = \"\"\n let desalunonumparcelas = \"\";\n let desfunccheack = \"\";\n let desfuncparcelas = \"\";\n let desfuncnumparelas = \"\";\n\n let aprender = \"\";\n let indicado = \"\";\n let palestrante = \"\";\n let conteudo = \"\";\n \n let modalidade = \"\";\n let presencial = \"\";\n let ead = \"\";\n let experiencia = \"\";\n let online = \"\";\n\n let area = \"\";\n let duplacert = \"\";\n let internacional = \"\";\n let viagem = \"\";\n let masterclass = \"\";\n let comcul = \"\";\n let healthcare = \"\";\n let tecino = \"\";\n let business = \"\";\n let criatividade = \"\";\n let ensapren = \"\";\n\n let tipo = \"\";\n let curso = \"\";\n let evento = \"\";\n let minilink = \"\";\n\n let periodoinicio = \"\";\n let periodoinicioformatado = \"\";\n let periodofinalativo = \"\";\n let periodofinal = \"\";\n let periodofinalformatado = \"\";\n\n if (jsonLoaded) {\n corpodoc = cursotituloArray.Info.CorpoDocente.Value;\n\n title = cursotituloArray.Title;\n infor = cursotituloArray.Tipo.SubTitulo.Value;\n\n periodo = cursotituloArray.Info.DataInicioCurso.Value;\n carga = cursotituloArray.Info.CargaHoraria.Value;\n horario = cursotituloArray.Info.Horario.Value;\n local = cursotituloArray.Info.Local.Value;\n certificacao = cursotituloArray.Info.Certificacao.Value;\n inscricao = cursotituloArray.Info.Inscricao.Value;\n link = cursotituloArray.EscolhasFinais.LinkInscricao.Value;\n logosPatro = cursotituloArray.Info.LogosPatrocinador.Value;\n\n aprender = cursotituloArray.Info.Aprender.Value;\n indicado = cursotituloArray.Info.Indicado.Value;\n palestrante = cursotituloArray.Info.Palestrante.Value;\n conteudo = cursotituloArray.Info.Conteudo.Value;\n\n invesvista = cursotituloArray.Financeiro.InvestimentoAvista.Value;\n invesparcecheack = cursotituloArray.Financeiro.InvestimentoParceladoCheack.Value;\n invesparce = cursotituloArray.Financeiro.InvestimentoParceladoParcela.Value;\n invesparcevalor = cursotituloArray.Financeiro.InvestimentoParceladoValor.Value;\n desgra = cursotituloArray.Financeiro.DesGraduado.Value;\n desgraavista = cursotituloArray.Financeiro.DesGraduadoAvista.Value;\n desgraparcecheack = cursotituloArray.Financeiro.DesGraduadoParceladoCheack.Value;\n desgraparcepar = cursotituloArray.Financeiro.DesGraduadoParceladoParcela.Value;\n desgraparcevalor = cursotituloArray.Financeiro.DesGraduadoParceladoValor.Value;\n desidade = cursotituloArray.Financeiro.DesIdade.Value;\n desidadevista = cursotituloArray.Financeiro.DesIdadeAvista.Value;\n desidadeparcecheack = cursotituloArray.Financeiro.DesIdadeParceladoCheack.Value;\n desidadeparcepar = cursotituloArray.Financeiro.DesIdadeParceladoParcela.Value;\n desidadeparcevalor = cursotituloArray.Financeiro.DesIdadeParceladoValor.Value;\n desalunocheack = \"\";\n desalunoparcelas = \"\";\n desalunonumparcelas = \"\";\n desfunccheack = cursotituloArray.Financeiro.DesFuncionariosCheack.Value;\n desfuncparcelas = cursotituloArray.Financeiro.DesFuncionariosParcelas.Value;\n desfuncnumparelas = cursotituloArray.Financeiro.DesFuncionariosNumParcelas.Value;\n\n presencial = cursotituloArray.Tipo.Presencial.Value;\n ead = cursotituloArray.Tipo.EAD.Value;\n experiencia = cursotituloArray.Tipo.Experiencia.Value;\n online = cursotituloArray.Tipo.Online.Value;\n\n duplacert = cursotituloArray.Tipo.DuplaCertificacao.Value;\n internacional = cursotituloArray.Tipo.Internacional.Value;\n viagem = cursotituloArray.Tipo.Viagem.Value;\n masterclass = cursotituloArray.Tipo.Masterclass.Value;\n comcul = cursotituloArray.Tipo.ComidaCultura.Value;\n healthcare = cursotituloArray.Tipo.HealthAndCare.Value;\n tecino = cursotituloArray.Tipo.TecnologiaInovacao.Value;\n business = cursotituloArray.Tipo.Business.Value;\n criatividade = cursotituloArray.Tipo.Criatividade.Value;\n ensapren = cursotituloArray.Tipo.EnsinoAprendizagem.Value;\n\n evento = cursotituloArray.Tipo.Eventos.Value;\n curso = cursotituloArray.Tipo.Cursos.Value;\n minilink = cursotituloArray.EscolhasFinais.MiniLinkInscricao.Value;\n\n periodoinicio = cursotituloArray.Info.DataInicioCurso.Value;\n periodoinicioformatado = format(new Date(periodoinicio), 'dd MMMM yyyy', { locale: ptBR });\n periodofinalativo = cursotituloArray.Info.DataCheckFinal.Value;\n periodofinal = cursotituloArray.Info.DataInicioFinal.Value;\n periodofinalformatado = format(new Date(periodofinal), 'dd MMMM yyyy', { locale: ptBR });\n\n }\n\n modalidade = () =>{\n if (presencial === true){\n return \"Presencial\"\n } else if(ead === true) {\n return \"EAD\"\n } else if(experiencia === true) {\n return \"Experiência\"\n } else if(online === true) {\n return \"Online\"\n } else{\n return \"Híbrido\"\n }\n }\n\n area = () =>{\n if (duplacert === true){\n return \"Dupla Certificação\"\n } else if(internacional === true) {\n return \"Internacional\"\n } else if(viagem === true) {\n return \"Viagem\"\n } else if(masterclass === true) {\n return \"Masterclass\"\n } else if(comcul === true) {\n return \"Comida & Cultura\"\n } else if(healthcare === true) {\n return \"Health & Care\"\n } else if(tecino === true) {\n return \"Tecnologia & Inovação\"\n } else if(business === true) {\n return \"Business\"\n } else if(criatividade === true) {\n return \"Criatividade\"\n } else if(ensapren === true) {\n return \"Ensino e Aprendizagem\"\n }\n else{\n return \"Não Encontrado\"\n }\n }\n\n tipo = () =>{\n if (evento === true){\n return \"Evento\"\n } else if(curso === true) {\n return \"Curso\"\n } else{\n return \"Não Encontrado\"\n }\n }\n\n const areasArray = area().split(',');\n const modalidadeArray = String(modalidade());\n\n \n \n let periododata = () =>{\n if (periodofinalativo){\n return \"De \" + periodoinicioformatado + \" até \" + periodofinalformatado;\n } else {\n return \"No dia \" + periodoinicioformatado;\n }\n }\n\n let i = true;\n\n let cor = () =>{\n if (presencial === true){\n return \"#83BEBA\"\n } else if(ead === true) {\n return \"#6ea3d7\"\n } else if(experiencia === true) {\n return \"#F99A53\"\n } else if(online === true) {\n return \"#E47AB6\"\n } else{\n return \"#6F6E96\"\n }\n }\n\n let corcontraste = () =>{\n if (presencial === true){\n return \"#47938C\"\n } else if(ead === true) {\n return \"#486F96\"\n } else if(experiencia === true) {\n return \"#BC5917\"\n } else if(online === true) {\n return \"#B74F90\"\n } else{\n return \"#4A4A77\"\n }\n }\n\n let icon = \"\";\n\n icon = () =>{\n if (duplacert === true){\n return \"https://www.feevale.br/s/conteudo/5b0e02e5-74fc-490c-a3f1-63858a8395c3/Dupla_Certifica%c3%a7%c3%a3o_(Cursos_em_parceria_com_outras_IES).svg\"\n } else if(internacional === true) {\n return \"https://www.feevale.br/s/conteudo/380e6697-8828-4cf3-bc64-6617ba552c26/Internacional_(Viagem,_Idiomas,_cursos_DRII).svg\"\n } else if(viagem === true) {\n return \"https://www.feevale.br/s/conteudo/380e6697-8828-4cf3-bc64-6617ba552c26/Internacional_(Viagem,_Idiomas,_cursos_DRII).svg\"\n } else if(masterclass === true) {\n return \"https://www.feevale.br/s/conteudo/2429a9f4-fd66-446a-9933-30a77d4f9528/Masterclass_(Cursos_gratuitos).svg\"\n } else if(comcul === true) {\n return \"https://www.feevale.br/s/conteudo/d1bd8a77-6a8e-4355-bc61-9cdd538b69cb/Comida&Cultura_(cursos_de_gastronomia,_idiomas,_etc).svg\"\n } else if(healthcare === true) {\n return \"https://www.feevale.br/s/conteudo/0f50b1d3-d7f8-40c1-b7dc-41503fe6113b/Health_and_Care_(cursos_da_%c3%a1rea_da_sa%c3%bade).svg\"\n } else if(tecino === true) {\n return \"https://www.feevale.br/s/conteudo/f7edf8bf-c0a1-467b-b356-8b59fdedbaf4/Tecnologia&Inova%c3%a7%c3%a3o_(Ti,_Empreendedorismo,_etc).svg\"\n } else if(business === true) {\n return \"https://www.feevale.br/s/conteudo/b716fb9b-aebb-47e3-8546-863e03d9f9ee/business.svg\"\n } else if(criatividade === true) {\n return \"https://www.feevale.br/s/conteudo/3ad95c14-ac3a-4657-8412-46ab96573fff/Criatividade_(Design,_comunica%c3%a7%c3%a3o,_artes,_etc).svg\"\n } else if(ensapren === true) {\n return \"https://www.feevale.br/s/conteudo/f78215f3-bed6-4494-82be-561f9c720c80/Ensino_&_Aprendizagem_(cursos_na_%c3%a1rea_da_educa%c3%a7%c3%a3o).svg\"\n }\n else{\n return \"Não Encontrado\"\n }\n }\n\n const descontograduado = () => {\n if (desgra === true) {\n return (\n \n
\n
\n \n
\n Alunos acadêmicos de graduação ou pós-graduação, graduados, pós-graduados da Feevale
20% de desconto
\n \n
\n R$ {desgraavista} à vista
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const descontoidade = () => {\n if (desidade === true) {\n return (\n \n
\n
\n \n
\n Alunos e acadêmicos de graduação da Feevale\n com 55 anos ou mais
\n \n
\n R$ {desidadevista} à vista
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const descontotitle = () => {\n if (desidade || desgra === true) {\n return (\n \n
\n Descontos especiais
\n \n
\n Conheça as condições especiais que a Universidade Feevale oferece para você nos cursos e eventos promovidos pelo Feevale Up
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const descontoline = () => {\n if (desidade && desgra === true) {\n return (\n \n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n \n const descontotext = () => {\n if (desidade && desgra || desidade && desfunccheack || desgra && desfunccheack === true) {\n return (\n \n
\n Obs.: os descontos não são cumulativos entre si e serão\n aplicados sobre o valor integral do investimento.
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const investpar = () => {\n if (invesparcecheack === true) {\n return (\n \n \n {invesparce}x R$ {invesparcevalor}
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const desgrapar = () => {\n if (desgraparcecheack === true) {\n return (\n \n \n CONDIÇÕES DE PARCELAMENTO
\n \n \n {desgraparcepar}x de R$ {desgraparcevalor}
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const desidadepar = () => {\n if (desidadeparcecheack === true) {\n return (\n \n \n CONDIÇÕES DE PARCELAMENTO
\n \n \n {desidadeparcepar}x de R$ {desidadeparcevalor}
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const desfuncnum = (parseFloat(invesvista) * 0.5).toFixed(2);\n\n const desfunc = () => {\n if (desfunccheack === true) {\n return (\n \n
\n \n \n
\n Funcionários da Feevale
50% de desconto
\n \n
\n R$ {desfuncnum.replace('.',',')} à vista
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const desfuncpar = () => {\n if (desfuncparcelas === true) {\n return (\n \n \n \n CONDIÇÕES DE PARCELAMENTO
\n \n \n {desfuncnumparelas}x de R$ {(desfuncnum / desfuncnumparelas).toFixed(2).replace('.',',')}
\n \n
\n );\n } else {\n return null; // Retorna null ou outra coisa adequada quando a condição não for atendida.\n }\n };\n\n const inscreform = () => {\n if (!link) {\n return (\n \n