Skip to content

Commit

Permalink
make homepage e cadastre-se-gratis.js tudo-pronto.js e termos-de-uso.js
Browse files Browse the repository at this point in the history
  • Loading branch information
01lexandre committed Jun 7, 2022
1 parent 63c8851 commit f9e48ef
Show file tree
Hide file tree
Showing 22 changed files with 1,150 additions and 124 deletions.
9 changes: 8 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
{
"extends": "next/core-web-vitals"
"extends": "next/core-web-vitals",
"plugins": [
"react-hooks"
],
"rules": {
"react-hooks/rules-of-hooks": "error", // Verifica as regras dos Hooks
"react-hooks/exhaustive-deps": "warn" // Verifica as dependências de effects
}
}
6 changes: 0 additions & 6 deletions .idea/inspectionProfiles/Project_Default.xml

This file was deleted.

7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
"@chakra-ui/theme-tools": "^1.3.6",
"@emotion/react": "11",
"@emotion/styled": "11",
"axios": "^0.27.2",
"chakra-react-select": "^4.0.0",
"embla-carousel-autoplay": "^6.2.0",
"embla-carousel-react": "^6.2.0",
"formik": "^2.2.9",
Expand All @@ -23,11 +25,14 @@
"next-seo": "^5.4.0",
"react": "17.0.2",
"react-dom": "17.0.2",
"react-input-mask": "^2.0.4",
"react-lottie": "^1.2.3",
"sass": "^1.49.9",
"styled-components": "^5.3.5"
},
"devDependencies": {
"eslint": "8.12.0",
"eslint-config-next": "12.1.2"
"eslint-config-next": "12.1.2",
"eslint-plugin-react-hooks": "^4.5.0"
}
}
2 changes: 1 addition & 1 deletion src/Components/Footer.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {MoonIcon, SunIcon} from "@chakra-ui/icons";
export default function Footer() {
const {colorMode, toggleColorMode} = useColorMode()
return (
<Box as={'footer'} textAlign={"center"} mt={'5rem'} pt={5} pb={5} bg={useColorModeValue('#F6F5FA', 'gray.900')}>
<Box as={'footer'} textAlign={"center"} pt={5} pb={5} bg={useColorModeValue('#F6F5FA', 'gray.900')}>
<Container maxW='container.lg'>
<Grid templateColumns='repeat(12, 1fr)' gap={6}>
<GridItem colSpan={[12, 6, 6]} textAlign={'left'}>
Expand Down
12 changes: 7 additions & 5 deletions src/Components/NavBar.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export default function NavBar() {
</NextLink>
</Box>
<Box as={'li'}>
<NextLink href="#funcionalidades" passHref>
<NextLink href="/#funcionalidades" passHref>
<a>Funcionalidades</a>
</NextLink>
</Box>
Expand All @@ -42,11 +42,13 @@ export default function NavBar() {
</GridItem>
<GridItem colSpan={[12, 12, 4]}>
<Box className={styles.navButton}>
<Button variant='ghost' mr={5}>
Entrar
</Button>
<NextLink href="https://web.naweby.com.br/" passHref>
<Button id={'bt_entrarNavTop'} variant='ghost' mr={5}>
Entrar
</Button>
</NextLink>
<NextLink href="/cadastre-se-gratis" passHref>
<Button colorScheme='primary' variant='outline'>
<Button id={'bt_RegisterNavTop'} colorScheme='primary' variant='outline'>
Cadastre-se Grátis
</Button>
</NextLink>
Expand Down
204 changes: 166 additions & 38 deletions src/Components/SlideHero.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,15 @@ import {useState, useCallback} from "react";
import styles from '../styles/css.module.scss'
import {Box, Button, Center, Flex, Grid, GridItem, Heading, Text, useColorModeValue} from "@chakra-ui/react";
import theme from "../styles/theme";
import { Image } from '@chakra-ui/react'
import { ArrowForwardIcon, ArrowBackIcon } from '@chakra-ui/icons'
import Lottie from 'react-lottie';
import animationRelatorio from '../assets/lotties/lf30_editor_wjdiwkr2';
import animationFinance from '../assets/lotties/lf30_editor_eycbdf4h';
import animationImport from '../assets/lotties/lf30_editor_obp5fveu';
import animationNota from '../assets/lotties/lf30_editor_qq66x8pg';
import animationOrca from '../assets/lotties/lf30_editor_tmglnxmq';
import NextLink from "next/link";


export default function SlideHero() {
// emblaRef will be a reference to our carousel viewport
Expand All @@ -19,50 +26,171 @@ export default function SlideHero() {
}, [emblaApi])
const [arrayObjs, setArrayObjs] = useState([
{
title: 'Nota Fiscal',
description: 'Sed nibh elit, elementum ut nunc sit amet, sagittis imperdiet dui. Nunc lorem magna, pellentesque nec mattis ut, rhoncus efficitur est. Aenean ac felis interdum leo efficitur porttitor sed eget nunc. Aenean ac felis interdum leo efficitur porttitor sed eget nunc nec mattis ut, rhoncus efficitur est nec mattis ut, rhoncus efficitur est.',
src: 'https://via.placeholder.com/500x280'
title: 'Cadastros práticos e ágeis',
description: 'Utilize a nossa transferência de arquivos instantânea para trazer todos os seus dados de clientes, fornecedores, transportadoras e muito mais em poucos cliques. Dessa maneira você desfrutará de um teste muito mais realista e agradável sentindo como será daqui pra frente com o Naweby cuidando de sua empresa.',
lottie: {
loop: true,
autoplay: true,
animationData: animationImport,
rendererSettings: {
preserveAspectRatio: ""
}
}
},
{
title: 'Financeiro',
description: 'Sed nibh elit, elementum ut nunc sit amet, sagittis imperdiet dui. Nunc lorem magna, pellentesque nec mattis ut, rhoncus efficitur est. Aenean ac felis interdum leo efficitur porttitor sed eget nunc. Aenean ac felis interdum leo efficitur porttitor sed eget nunc nec mattis ut, rhoncus efficitur est nec mattis ut, rhoncus efficitur est.',
src: 'https://via.placeholder.com/500x280'
title: 'Cuide do que realmente importa no seu financeiro',
description: 'Organize suas vendas e receba muito mais rápido com o financeiro compacto e funcional do Naweby! Nele você acompanha as pendências, recebimentos do dia, análises de faturamento e muito mais, além disso também consegue organizar suas despesas fixas e variáveis para que saiba exatamente como organizar seu caixa para os pagamentos.',
lottie: {
loop: true,
autoplay: true,
animationData: animationFinance,
rendererSettings: {
preserveAspectRatio: ""
}
}
},
{
title: 'Cadastros',
description: 'Sed nibh elit, elementum ut nunc sit amet, sagittis imperdiet dui. Nunc lorem magna, pellentesque nec mattis ut, rhoncus efficitur est. Aenean ac felis interdum leo efficitur porttitor sed eget nunc. Aenean ac felis interdum leo efficitur porttitor sed eget nunc nec mattis ut, rhoncus efficitur est nec mattis ut, rhoncus efficitur est.',
src: 'https://via.placeholder.com/500x280'
title: 'Acabaram os achismos, veja relatórios com dados reais',
description: 'Eis aqui o divisor de águas para as análises de qualquer dono(a) de negócio! Nossos relatórios trazem informações fiéis e apuradas dos processos essenciais de sua empresa, para que você não viva nos achismos mas que tenha uma decisão embasada em dados reais mês a mês e ano a ano de seu negócio.',
lottie: {
loop: true,
autoplay: true,
animationData: animationRelatorio,
rendererSettings: {
preserveAspectRatio: "xMidYMid slice"
}
}
},
]);
const colorTitle = useColorModeValue(theme.colors.primary['500'], theme.colors.primary['100'])
return (
<div className={styles.embla} ref={emblaRef}>
<Box className={styles.embla__container}>
{arrayObjs.map((obj, i) => (
<Box key={i} className={styles.embla__slide} pt={10} pb={10}>
<Grid templateColumns='repeat(5, 1fr)' gap={6}>
<GridItem colSpan={[5, 5, 3]}>
<Heading as='h3' size='lg' color={colorTitle}>
{obj.title}
</Heading>
<Text size='lg' mt={3} mb={3}>
{obj.description}
</Text>
<Button variant='link' mr={5}>
Teste gratuitamente {'->'}
</Button>
</GridItem>
<GridItem colSpan={[5, 5, 2]}>
<Image src={obj.src} alt={obj.title} />
</GridItem>
</Grid>
</Box>
))}
</Box>
<Flex justifyContent={'center'}>
<ArrowBackIcon w={6} h={6} onClick={scrollPrev} mr={2} cursor={'pointer'} />
<ArrowForwardIcon w={6} h={6} onClick={scrollNext} ml={2} cursor={'pointer'} />
</Flex>
</div>
<>
<Grid mt={'5rem'} mb={'5rem'} templateColumns='repeat(5, 1fr)' gap={6}>
<GridItem colSpan={[5, 5, 2]}>
<Lottie
options={{
loop: true,
autoplay: true,
animationData: animationImport,
rendererSettings: {
preserveAspectRatio: "xMidYMid meet"
}
}}
height={400}
width={400}
/>
</GridItem>
<GridItem colSpan={[5, 5, 3]}>
<Heading as='h3' size='lg' color={colorTitle}>
Importação de Dados.
</Heading>
<Text size='lg' mt={3} mb={3}>
Fazemos a importação de dados do seu sistema atual.
Elimine a digitação do seu cadastro de clientes e produtos, através de importação de dados de diversos* sistemas, Planilhas em Excel ou arquivos texto. As informações poderão ser enviadas para nossa equipe, em qualquer formato e tipo, para que possam ser importadas para o Naweby.
</Text>
<NextLink href="/cadastre-se-gratis" passHref>
<Button id={'bt_feature1'} variant='link' mr={5}>
Teste gratuitamente {'->'}
</Button>
</NextLink>
</GridItem>
</Grid>
<Grid mt={'5rem'} mb={'5rem'} templateColumns='repeat(5, 1fr)' gap={6}>
<GridItem colSpan={[5, 5, 3]}>
<Heading as='h3' size='lg' color={colorTitle}>
Emissão de nota fiscal em poucos cliques
</Heading>
<Text size='lg' mt={3} mb={3}>
Tudo aqui foi desenhado para sua equipe encontrar facilidade na hora de usar e agilizar o processo de vendas, livre-se da burocracia e da complexidade na hora de emitir nota fiscal e enviá-la ao seu cliente.
</Text>
<Text size='lg' mt={3} mb={3}>
Apesar de vivermos no país com o sistema tributário mais complexo do mundo, isso não significa que você precisa sofrer na hora da emissão, até porque já simplificamos tudo isso no Naweby.
</Text>
<NextLink href="/cadastre-se-gratis" passHref>
<Button id={'bt_feature1'} variant='link' mr={5}>
Teste gratuitamente {'->'}
</Button>
</NextLink>
</GridItem>
<GridItem colSpan={[5, 5, 2]}>
<Lottie
options={{
loop: true,
autoplay: true,
animationData: animationNota,
rendererSettings: {
preserveAspectRatio: ""
}
}}
height={400}
width={400}
/>
</GridItem>
</Grid>
<Grid mt={'5rem'} mb={'5rem'} templateColumns='repeat(5, 1fr)' gap={6}>
<GridItem colSpan={[5, 5, 2]}>
<Lottie
options={{
loop: true,
autoplay: true,
animationData: animationOrca,
rendererSettings: {
preserveAspectRatio: "xMidYMid meet"
}
}}
height={300}
width={400}
/>
</GridItem>
<GridItem colSpan={[5, 5, 3]}>
<Heading as='h3' size='lg' color={colorTitle}>
Orçamentos e pedidos que facilitam seu trabalho
</Heading>
<Text size='lg' mt={3} mb={3}>
Turbine sua geração de pedidos com uma pesquisa ampla e afiada!
Com a nossa busca de produtos por multicódigos, apresentação de similares e a visualização de estoque em tempo real, seus vendedores terão várias informações relevantes para negociar e vender muito mais durante o atendimento.
</Text>
<NextLink href="/cadastre-se-gratis" passHref>
<Button id={'bt_feature1'} variant='link' mr={5}>
Teste gratuitamente {'->'}
</Button>
</NextLink>
</GridItem>
</Grid>
<div className={styles.embla} ref={emblaRef}>
<Box className={styles.embla__container}>
{arrayObjs.map((obj, i) => (
<Box key={i} className={styles.embla__slide} pt={10} pb={10}>
<Grid templateColumns='repeat(5, 1fr)' gap={6}>
<GridItem colSpan={[5, 5, 3]}>
<Heading as='h3' size='lg' color={colorTitle}>
{obj.title}
</Heading>
<Text size='lg' mt={3} mb={3}>
{obj.description}
</Text>
<NextLink href="/cadastre-se-gratis" passHref>
<Button id={'bt_feature1'} variant='link' mr={5}>
Teste gratuitamente {'->'}
</Button>
</NextLink>
</GridItem>
<GridItem colSpan={[5, 5, 2]}>
<Lottie
options={obj.lottie}
height={300}
width={400}
/>
</GridItem>
</Grid>
</Box>
))}
</Box>
<Flex justifyContent={'center'}>
<ArrowBackIcon w={6} h={6} onClick={scrollPrev} mr={2} cursor={'pointer'} />
<ArrowForwardIcon w={6} h={6} onClick={scrollNext} ml={2} cursor={'pointer'} />
</Flex>
</div>
</>
)
}
1 change: 1 addition & 0 deletions src/assets/lotties/lf30_editor_eycbdf4h.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/assets/lotties/lf30_editor_obp5fveu.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/assets/lotties/lf30_editor_qq66x8pg.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/assets/lotties/lf30_editor_tmglnxmq.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/assets/lotties/lf30_editor_wjdiwkr2.json

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions src/lib/api.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
const API_URL = 'https://api.naweby.com.br/v1/'
import axios from 'axios';

export const getData = obj => obj.data
const setFormData = (obj) => {
const formData = new FormData();
Object.keys(obj).forEach(key => formData.append(key, obj[key]));
return formData;
}
const headers = {
'Content-Language': 'pt-BR',
'Content-Type': 'application/json',
'Access-Control-Allow-Headers' : 'Content-Type,Authorization,true'
}
const headersToken = {
headers: {
'Content-Language': 'pt-BR',
'Content-Type': 'application/json',
'Access-Control-Allow-Headers' : 'Content-Type,Authorization,true',
'Authorization' : `Bearer ${getTokenStorage}`,
}
}
export async function postCreateUser(form) {
const data = await axios.post(API_URL+'auth/register?include=current_account,tenants', setFormData(form), {headers}).then(getData)
return data
}
export async function postCreateAccount(form) {
axios.defaults.headers.post['Authorization'] = `Bearer ${localStorage.getItem('NUI')}`
const data = await axios.post(API_URL+'accounts', setFormData(form), {headers}).then(getData)
return data
}

export async function getSearchDocument (document) {
const data = await axios.get('https://cnpj.srvco.re/fnfv1/companies/'+document.replace(/[^\d]+/g, '')).then((x) => {return x.data.data})
return data
}

export async function getSearchCidade (payload) {
// console.log('qui', localStorage.getItem('NUI'))
axios.defaults.headers.get['Authorization'] = `Bearer ${localStorage.getItem('NUI')}`
const data = await axios.get('https://api.naweby.com.br/v1/geo/cities?search='+payload, {headers} ).then((x) => {
console.log(x)
return x.data.data
})
return data
}

export async function setTokenStorage(payload) {
localStorage.setItem('NUI', payload)
return true
}
export async function getTokenStorage() {
return localStorage.getItem('NUI');
}
14 changes: 14 additions & 0 deletions src/lib/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export const getError = (err) => {
let errorInput = err.response.data.data.error.errors
let errorI = {}
let x
for (x in errorInput) {
console.log(x, errorInput[x][0])
errorI[x] = errorInput[x][0]
}
let error = {
'errors': errorI,
'message': err.response.data.data.error.message
}
return error
}
Loading

0 comments on commit f9e48ef

Please sign in to comment.