Merge pull request 'Feature/Footer' (#3) from Feature/Footer into develop

Reviewed-on: #3
This commit is contained in:
Rhayllon Daudt 2023-01-13 06:37:24 +00:00
commit af0f4d992f
8 changed files with 646 additions and 34 deletions

View File

@ -15,12 +15,15 @@
"@types/node": "^16.18.11",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
"formik": "^2.2.9",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-headless-accordion": "^1.0.2",
"react-scripts": "5.0.1",
"sass": "^1.57.1",
"typescript": "^4.9.4",
"web-vitals": "^2.1.4"
"web-vitals": "^2.1.4",
"yup": "^0.32.11"
}
},
"node_modules/@adobe/css-tools": {
@ -3802,6 +3805,11 @@
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
},
"node_modules/@types/lodash": {
"version": "4.14.191",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz",
"integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
},
"node_modules/@types/mime": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
@ -7953,6 +7961,42 @@
"node": ">= 6"
}
},
"node_modules/formik": {
"version": "2.2.9",
"resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz",
"integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==",
"funding": [
{
"type": "individual",
"url": "https://opencollective.com/formik"
}
],
"dependencies": {
"deepmerge": "^2.1.1",
"hoist-non-react-statics": "^3.3.0",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"react-fast-compare": "^2.0.1",
"tiny-warning": "^1.0.2",
"tslib": "^1.10.0"
},
"peerDependencies": {
"react": ">=16.8.0"
}
},
"node_modules/formik/node_modules/deepmerge": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
"integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/formik/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@ -8328,6 +8372,19 @@
"he": "bin/he"
}
},
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dependencies": {
"react-is": "^16.7.0"
}
},
"node_modules/hoist-non-react-statics/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
@ -11398,6 +11455,11 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@ -11723,6 +11785,11 @@
"multicast-dns": "cli.js"
}
},
"node_modules/nanoclone": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
"integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
},
"node_modules/nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@ -13625,6 +13692,11 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/property-expr": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz",
"integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA=="
},
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@ -13934,6 +14006,19 @@
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
"integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
},
"node_modules/react-fast-compare": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz",
"integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw=="
},
"node_modules/react-headless-accordion": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/react-headless-accordion/-/react-headless-accordion-1.0.2.tgz",
"integrity": "sha512-wKBTB/+aAr9MGX5RYi3sdmKOSzevKdmbGRw9JTe7XONiHlTo+pC1OiggL9NUxp5QeQcTnX0rryhuySeGsqBfBg==",
"peerDependencies": {
"react": "^18.2.0"
}
},
"node_modules/react-is": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
@ -15477,6 +15562,11 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
},
"node_modules/tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@ -15509,6 +15599,11 @@
"node": ">=0.6"
}
},
"node_modules/toposort": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
"integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="
},
"node_modules/tough-cookie": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
@ -16809,6 +16904,23 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/yup": {
"version": "0.32.11",
"resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz",
"integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==",
"dependencies": {
"@babel/runtime": "^7.15.4",
"@types/lodash": "^4.14.175",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"nanoclone": "^0.2.1",
"property-expr": "^2.0.4",
"toposort": "^2.0.2"
},
"engines": {
"node": ">=10"
}
}
},
"dependencies": {
@ -19395,6 +19507,11 @@
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
},
"@types/lodash": {
"version": "4.14.191",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz",
"integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
},
"@types/mime": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
@ -22468,6 +22585,32 @@
"mime-types": "^2.1.12"
}
},
"formik": {
"version": "2.2.9",
"resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz",
"integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==",
"requires": {
"deepmerge": "^2.1.1",
"hoist-non-react-statics": "^3.3.0",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"react-fast-compare": "^2.0.1",
"tiny-warning": "^1.0.2",
"tslib": "^1.10.0"
},
"dependencies": {
"deepmerge": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
"integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA=="
},
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@ -22726,6 +22869,21 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
"hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"requires": {
"react-is": "^16.7.0"
},
"dependencies": {
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
}
}
},
"hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
@ -24939,6 +25097,11 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@ -25184,6 +25347,11 @@
"thunky": "^1.0.2"
}
},
"nanoclone": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
"integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
},
"nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@ -26368,6 +26536,11 @@
}
}
},
"property-expr": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz",
"integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA=="
},
"proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@ -26590,6 +26763,17 @@
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
"integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
},
"react-fast-compare": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz",
"integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw=="
},
"react-headless-accordion": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/react-headless-accordion/-/react-headless-accordion-1.0.2.tgz",
"integrity": "sha512-wKBTB/+aAr9MGX5RYi3sdmKOSzevKdmbGRw9JTe7XONiHlTo+pC1OiggL9NUxp5QeQcTnX0rryhuySeGsqBfBg==",
"requires": {}
},
"react-is": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
@ -27726,6 +27910,11 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
},
"tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@ -27749,6 +27938,11 @@
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"toposort": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
"integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="
},
"tough-cookie": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
@ -28742,6 +28936,20 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
},
"yup": {
"version": "0.32.11",
"resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz",
"integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==",
"requires": {
"@babel/runtime": "^7.15.4",
"@types/lodash": "^4.14.175",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"nanoclone": "^0.2.1",
"property-expr": "^2.0.4",
"toposort": "^2.0.2"
}
}
}
}

View File

@ -10,12 +10,15 @@
"@types/node": "^16.18.11",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
"formik": "^2.2.9",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-headless-accordion": "^1.0.2",
"react-scripts": "5.0.1",
"sass": "^1.57.1",
"typescript": "^4.9.4",
"web-vitals": "^2.1.4"
"web-vitals": "^2.1.4",
"yup": "^0.32.11"
},
"scripts": {
"start": "react-scripts start",

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang="pt-br">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
@ -11,35 +11,12 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
<title>React App</title>
<title>Pagina</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

View File

@ -0,0 +1,3 @@
<svg width="8" height="9" viewBox="0 0 8 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.625 3.32031H7.79688V4.6875H4.625V8.28125H3.17188V4.6875H0V3.32031H3.17188V0H4.625V3.32031Z" fill="#303030"/>
</svg>

After

Width:  |  Height:  |  Size: 220 B

View File

@ -0,0 +1,30 @@
import React from "react";
import {Formik, Form, Field, ErrorMessage, FormikHelpers} from "formik"
interface IFormikValuesNews {
email: string;
}
interface IFormcss{
classNameForm: string;
classNameInput: string;
classNameButton: string;
}
const initialValuesNews = {
email: ""
}
const FormNews = (props:IFormcss) => {
const handleFormikSubmitNews = (values:IFormikValuesNews) => {};
const {classNameInput, classNameButton, classNameForm} = props
return <Formik onSubmit={handleFormikSubmitNews} initialValues={initialValuesNews}>
<Form className={classNameForm}>
<Field type="email" id="email" name="email" placeholder="E-mail" className={classNameInput}/>
<button className={classNameButton} type="submit">Enviar</button>
</Form>
</Formik>
}
export {FormNews};

View File

@ -1,4 +1,7 @@
import React from "react";
import {Accordion, AccordionBody, AccordionHeader, AccordionItem} from "react-headless-accordion";
import {Formik, Form, Field, ErrorMessage, FormikHelpers} from "formik"
import { FormNews } from "../components/CustomFormNews"
import styles from "../scss/partials/footer.module.scss"
@ -13,6 +16,7 @@ import VtexPci from "../assets/imgs/vtex-pci-200.png"
import LogoM3 from "../assets/imgs/LogoM3.png"
import LogoVtex from "../assets/imgs/LogoVtex.png"
import MaisIcon from "../assets/svgs/mais.svg"
import facebookIcon from "../assets/svgs/facebookIcon.svg"
import instagramIcon from "../assets/svgs/instagramIcon.svg"
@ -23,11 +27,31 @@ import linkedinIcon from "../assets/svgs/linkedinIcon.svg"
const Footer = () => {
return <footer className={styles["page-footer"]}>
<FooterMidle/>
<FooterBottom/>
<FooterDesk/>
</footer>
}
const FooterDesk : any = () => {
if (window.innerWidth > 1024){
return <>
<FooterNewslleter/>
<FooterMidle/>
<FooterBottom/>
</>
}else if (window.innerWidth <= 1024){
return <>
<FooterNewslleter/>
<FooterMidleMobile/>
<FooterBottom/>
</>
}
}
const FooterNewslleter = () => {
return <section className={styles["page-footer__fN-wrapper"]}>
<h3 className={styles["page-footer__fN-wrapper__Title"]}>Assine nossa Newsletter</h3>
<FormNews classNameForm={styles["page-footer__fN-wrapper__Form"]} classNameInput={styles["page-footer__fN-wrapper__Form__Input"]} classNameButton={styles["page-footer__fN-wrapper__Form__Button"]} />
</section>
}
const FooterMidle = () => {
return <section className={styles["page-footer__fM-wrapper"]}>
@ -97,6 +121,130 @@ const FooterMidle = () => {
<div className={styles["page-footer__fM-colum-wrapper__colum-social"]}>
<ul className={styles["page-footer__fM-colum-wrapper__links-social"]}>
<li className={styles["page-footer__fM-colum-wrapper__links-social__link"]}>
<a href=""><img src= { facebookIcon } alt="facebookIcon" /></a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links-social__link"]}>
<a href=""><img src= { instagramIcon } alt="instagramIcon" /></a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links-social__link"]}>
<a href=""><img src= { twitterIcon } alt="twitterIcon" /></a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links-social__link"]}>
<a href=""><img src= { youtubeIcon } alt="youtubeIcon" /></a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links-social__link"]}>
<a href=""><img src= { linkedinIcon } alt="linkedinIcon" /></a>
</li>
</ul>
<a href="">www.loremipsum.com</a>
</div>
</div>
</section>
}
const FooterMidleMobile = () => {
return <section className={styles["page-footer__fM-wrapper-mobile"]}>
<Accordion className={styles["page-footer__accordion-wrapper"]}>
<AccordionItem >
<AccordionHeader className={styles["page-footer__accordion-wrapper__title-wrapper"]} >
<h4 className={styles["page-footer__accordion-wrapper__title-wrapper__title"]}>Institucional</h4>
<img className={styles["page-footer__accordion-wrapper__title-wrapper__title-icone"]} src={ MaisIcon } alt="MaisIcon" />
</AccordionHeader>
<AccordionBody className={styles["page-footer__accordion-wrapper__description-wrapper"]}>
<div className={styles["page-footer__accordion-wrapper__description-wrapper__description"]}>
<ul className={styles["page-footer__fM-colum-wrapper__links"]}>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Quem Somos</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Política de Privacidade</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Segurança</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Seja um Revendedor</a>
</li>
</ul>
</div>
</AccordionBody>
</AccordionItem>
<AccordionItem >
<AccordionHeader className={styles["page-footer__accordion-wrapper__title-wrapper"]} >
<h4 className={styles["page-footer__accordion-wrapper__title-wrapper__title"]}>Dúvidas</h4>
<img className={styles["page-footer__accordion-wrapper__title-wrapper__title-icone"]} src={ MaisIcon } alt="MaisIcon" />
</AccordionHeader>
<AccordionBody className={styles["page-footer__accordion-wrapper__description-wrapper"]}>
<div className={styles["page-footer__accordion-wrapper__description-wrapper__description"]}>
<ul className={styles["page-footer__fM-colum-wrapper__links"]}>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Quem Somos</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Política de Privacidade</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Segurança</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Seja um Revendedor</a>
</li>
</ul>
</div>
</AccordionBody>
</AccordionItem>
<AccordionItem >
<AccordionHeader className={styles["page-footer__accordion-wrapper__title-wrapper"]} >
<h4 className={styles["page-footer__accordion-wrapper__title-wrapper__title"]}>Fale Conosco</h4>
<img className={styles["page-footer__accordion-wrapper__title-wrapper__title-icone"]} src={ MaisIcon } alt="MaisIcon" />
</AccordionHeader>
<AccordionBody className={styles["page-footer__accordion-wrapper__description-wrapper"]}>
<div className={styles["page-footer__accordion-wrapper__description-wrapper__description"]}>
<ul className={styles["page-footer__fM-colum-wrapper__links"]}>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Quem Somos</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Política de Privacidade</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Segurança</a>
</li>
<li className={styles["page-footer__fM-colum-wrapper__links__link"]}>
<a href="">Seja um Revendedor</a>
</li>
</ul>
</div>
</AccordionBody>
</AccordionItem>
</Accordion>
<div className={styles["page-footer__fM-colum-wrapper__colum-social"]}>
<ul className={styles["page-footer__fM-colum-wrapper__links-social"]}>
<li className={styles["page-footer__fM-colum-wrapper__links-social__link"]}>
@ -121,12 +269,11 @@ const FooterMidle = () => {
</ul>
<a href="">www.loremipsum.com</a>
</div>
</div>
</div>
</section>
}
const FooterBottom = () => {
return <section className={styles["page-footer__fB-wrapper"]}>
<div className={styles["page-footer__wrapper-content"]}>

View File

@ -7,17 +7,187 @@
display: flex;
}
&__fM-wrapper-mobile{
padding: 18px 16px 0 16px;
}
&__fN-wrapper{
justify-content: center;
border: 1px solid var(--black1);
border-width: 1px 0;
@media screen and (max-width: 1024px) {
padding: 0 16px;
}
&__Title{
display: flex;
justify-content: center;
font-family: var(--font-roboto);
font-style: normal;
font-weight: 500;
font-size: 18px;
line-height: 21px;
letter-spacing: 0.05em;
font-variant: small-caps;
color: var(--black2);
margin: 0 0 0 31.48%;
width: max-content;
padding: 16px 0 8px 0;
@media screen and (min-width: 2500px) {
font-size: 36px;
line-height: 42px;
}
@media screen and (max-width: 1024px) {
margin: 0;
padding: 16px 0;
justify-content: normal;
width: 100%;
font-size: 14px;
line-height: 16px;
}
}
&__Form{
display: flex;
height: 42px;
margin: 0 auto 16px auto;
width: 37.03%;
@media screen and (min-width: 2500px) {
height: 59px;
}
@media screen and (max-width: 1024px) {
width: 100%;
display: block;
height: auto;
}
&__Input{
width: 71.31%;
padding: 0 16px;
background: #FFFFFF;
border: 1px solid var(--grey3);
border-radius: 4px;
box-sizing: border-box;
font-size: 14px;
line-height: 16px;
outline: 0;
@media screen and (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
}
@media screen and (max-width: 1024px) {
width: 100%;
height: 50px;
margin-bottom: 16px;
border-radius: 0;
}
&::placeholder{
font-family: var(--font-roboto);
font-weight: 400;
font-size: 14px;
line-height: 16px;
color: var(--grey2);
@media screen and (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
}
}
}
&__Button{
width: 26.58%;
border: none;
border-radius: 4px;
padding: 0;
background-color: var(--black1);
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
font-family: var(--font-roboto);
font-weight: 700;
font-size: 12px;
line-height: 14px;
letter-spacing: 0.05em;
color: var(--white1);
text-transform: uppercase;
margin-left: 8px;
@media screen and (min-width: 2500px) {
font-size: 24px;
line-height: 28px;
}
@media screen and (max-width: 1024px) {
width: 100%;
padding: 0;
margin: 0;
height: 50px;
font-size: 14px;
line-height: 16px;
border-radius: 0;
}
}
}
}
&__accordion-wrapper{
&__title-wrapper{
width: 100%;
border: none;
display: flex;
align-items: center;
padding: 6px 0;
background-color: var(--white1);
&__title{
display: flex;
margin: 0;
flex: 1;
font-family: var(--font-roboto);
font-weight: 500;
font-size: 14px;
line-height: 16px;
color: var(--black2);
}
&__title-icone{
display: flex;
margin: 0;
}
}
&__description-wrapper{
&__description{
padding: 0 0 0 8px;
}
}
}
&__wrapper-content{
width: 84.38%;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
@media screen and (max-width: 1024px) {
width: 100%;
box-sizing: border-box;
padding: 0 16px;
grid-template-columns: 1fr;
}
}
&__fM-wrapper{
padding: 50px 0;
}
&__fM-colum-wrapper{
width: 84.38%;
margin: 0 auto;
@ -26,6 +196,11 @@
gap: 121px;
justify-content: center;
}
&__fM-colum-wrapper,
&__fM-wrapper-mobile{
a{
text-decoration: none;
font-family: var(--font-roboto);
@ -33,12 +208,26 @@
font-size: 12px;
line-height: 14px;
color: var(--black2);
@media screen and (min-width: 2500px) {
font-size: 24px;
line-height: 28px;
}
@media screen and (max-width: 1024px) {
font-size: 14px;
line-height: 16px;
}
}
&__colum{
max-width: 155px;
@media screen and (min-width: 2500px) {
max-width: 315px;
}
a{
text-transform: capitalize;
}
@ -53,6 +242,11 @@
text-transform: capitalize;
color: var(--black2);
padding-bottom: 12px;
@media screen and (min-width: 2500px) {
font-size: 24px;
line-height: 28px;
}
}
}
@ -68,6 +262,27 @@
color: var(--black2);
padding-bottom: 12px;
@media screen and (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
}
}
&__colum-social{
@media screen and (max-width: 1024px) {
padding: 6px 0 24px 0;
}
a{
font-size: 14px;
line-height: 16px;
@media screen and (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
}
}
}
&__links,
@ -116,6 +331,10 @@
align-items: center;
padding: 20px 0;
@media screen and (max-width: 1024px) {
padding: 0;
}
&__text{
color: var(--white1);
margin: 0;
@ -125,6 +344,14 @@
line-height: 12px;
text-transform: capitalize;
width: 69.64%;
@media screen and (min-width: 2500px) {
font-size: 20px;
line-height: 23px;
}
@media screen and (max-width: 1024px) {
width: 23.59%;
}
}
}
@ -134,6 +361,12 @@
align-items: center;
padding: 15px 0;
@media screen and (max-width: 1024px) {
justify-content: normal;
grid-area: 1 / 1 / 1 / 1;
}
&__cards-wrapper{
list-style-type: none;
@ -163,6 +396,11 @@
align-items: center;
padding: 24px 0;
@media screen and (max-width: 1024px) {
justify-content: normal;
padding: 15px 0;
}
&__wrapper{
list-style-type: none;
@ -185,6 +423,11 @@
font-size: 10px;
line-height: 12px;
text-transform: capitalize;
@media screen and (min-width: 2500px) {
font-size: 20px;
line-height: 23px;
}
}
&__image{

View File

@ -9,4 +9,5 @@
--grey1: #c6c6c6;
--grey2: #c4c4c4;
--grey3: #E5E5E5;
}