feat(footer): created accordion component and styles for medium,small devices

This commit is contained in:
Henrique Santos Santana 2022-12-29 01:12:43 -03:00
parent 19a6cfb8b1
commit c0a409adb3
20 changed files with 637 additions and 1 deletions

View File

@ -1,5 +1,6 @@
import { Introduction } from './pages/Introduction'
import { Footer } from './template/Footer'
import { Header } from './template/Header'
import { Introduction } from './pages/Introduction'
import './settings/styles/index.scss'
@ -11,6 +12,8 @@ export function App() {
<main>
<Introduction />
</main>
<Footer />
</>
)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/assets/brands/Elo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 B

BIN
src/assets/brands/Hiper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

BIN
src/assets/brands/Visa.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1000 B

View File

@ -0,0 +1,4 @@
<svg width="29" height="16" viewBox="0 0 29 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.0306 5.52919C16.5832 4.93578 16.0212 4.44228 15.3793 4.0792C14.7375 3.71612 14.0295 3.49118 13.2991 3.41826C12.5687 3.34535 11.8314 3.42602 11.1327 3.65528C10.4341 3.88455 9.78893 4.25754 9.23719 4.75121L8.76053 4.38166C5.48585 2.02826 0.900357 4.02671 0.471361 8.05764C0.340858 9.9996 0.307448 11.9471 0.371262 13.8925C0.360734 14.1422 0.40062 14.3914 0.488442 14.6246C0.576265 14.8579 0.71015 15.0702 0.881788 15.2485C1.05343 15.4268 1.25915 15.5672 1.4862 15.661C1.71325 15.7548 1.95677 15.7999 2.20165 15.7937C2.44131 15.7927 2.67828 15.7422 2.89833 15.6453C3.11838 15.5485 3.31697 15.4072 3.48215 15.2301C3.64733 15.053 3.77571 14.8436 3.85955 14.6146C3.9434 14.3856 3.98099 14.1416 3.97007 13.8974C3.97007 12.497 3.97007 11.0966 3.97007 9.6914C3.96621 9.27481 3.9949 8.85857 4.05587 8.44663C4.13275 8.02501 4.36328 7.64872 4.70108 7.39343C5.03889 7.13814 5.45893 7.02279 5.87672 7.07057C6.28512 7.10198 6.66826 7.28426 6.95433 7.58324C7.2404 7.88222 7.40975 8.27737 7.43064 8.69461C7.45447 9.21003 7.43064 9.72544 7.43064 10.2409C7.43064 11.4954 7.43064 12.7499 7.43064 14.0044C7.42574 14.3682 7.53183 14.7246 7.73422 15.0243C7.93661 15.324 8.22529 15.5521 8.56033 15.677C9.77582 16.1924 11.0151 15.288 11.039 13.8633C11.039 12.2053 11.039 10.5472 11.0866 8.88911C11.1027 8.48829 11.2228 8.09901 11.4346 7.76103C11.6363 7.46301 11.9286 7.24105 12.2663 7.12943C12.6041 7.01782 12.9684 7.02276 13.3031 7.14351C13.6807 7.25145 14.0107 7.48767 14.2387 7.81307C14.4667 8.13848 14.5789 8.53355 14.5567 8.93287C14.5567 10.6104 14.5567 12.2879 14.5567 13.9655C14.5567 14.2062 14.6032 14.4446 14.6935 14.667C14.7838 14.8894 14.9162 15.0914 15.0831 15.2617C15.2499 15.4319 15.4481 15.5669 15.6661 15.659C15.8841 15.7512 16.1178 15.7986 16.3538 15.7986C16.5898 15.7986 16.8234 15.7512 17.0415 15.659C17.2595 15.5669 17.4576 15.4319 17.6244 15.2617C17.7913 15.0914 17.9237 14.8894 18.014 14.667C18.1043 14.4446 18.1508 14.2062 18.1508 13.9655C18.1508 12.249 18.1508 10.5618 18.1508 8.82103C18.154 7.62594 17.7591 6.4652 17.0306 5.52919Z" fill="white"/>
<path d="M26.0349 6.50162L25.4676 6.26337C26.0301 5.81603 26.564 5.4319 27.0406 4.99428C27.4641 4.65415 27.8297 4.24508 28.1227 3.78354C28.9806 2.14978 27.7699 0.24858 25.849 0.204818C24.0758 0.180506 22.3074 0.180506 20.5342 0.180506C20.317 0.165195 20.0991 0.196902 19.8947 0.273547C19.6904 0.350191 19.5042 0.470042 19.3485 0.625235C19.1928 0.780428 19.071 0.967457 18.9911 1.17405C18.9112 1.38065 18.875 1.60214 18.8849 1.824C18.8637 2.04997 18.8909 2.27795 18.9646 2.49213C19.0384 2.70632 19.1569 2.90158 19.312 3.0644C19.467 3.22721 19.655 3.35368 19.8627 3.43504C20.0705 3.5164 20.2931 3.5507 20.5151 3.53556C21.3826 3.53556 22.2502 3.53556 23.1177 3.53556C23.2655 3.58419 23.418 3.58419 23.704 3.58419C22.5266 4.55666 21.4398 5.48052 20.3673 6.39465C19.6762 6.97814 19.4665 7.61511 19.7096 8.33961C19.8387 8.69722 20.0793 9.00173 20.3944 9.20639C20.7096 9.41105 21.0819 9.50455 21.4541 9.47255C22.3741 9.47255 23.2988 9.47255 24.2188 9.47255C24.4251 9.43364 24.6373 9.44151 24.8403 9.49562C25.0433 9.54973 25.2321 9.64874 25.3934 9.78563C25.5547 9.92253 25.6845 10.0939 25.7735 10.2877C25.8626 10.4815 25.9088 10.6929 25.9088 10.907C25.9088 11.121 25.8626 11.3324 25.7735 11.5262C25.6845 11.72 25.5547 11.8914 25.3934 12.0283C25.2321 12.1652 25.0433 12.2642 24.8403 12.3183C24.6373 12.3724 24.4251 12.3803 24.2188 12.3414C23.0271 12.3414 21.8355 12.3414 20.6438 12.3414C20.2261 12.3644 19.8329 12.5499 19.5452 12.8597C19.2575 13.1695 19.0971 13.58 19.0971 14.0067C19.0971 14.4335 19.2575 14.844 19.5452 15.1538C19.8329 15.4636 20.2261 15.6491 20.6438 15.6721C21.8879 15.6721 23.1368 15.6721 24.3808 15.6721C25.4737 15.6438 26.5238 15.2332 27.3552 14.5091C28.1866 13.7849 28.7487 12.7913 28.9473 11.6947C29.1056 10.621 28.9042 9.52429 28.3757 8.58189C27.8472 7.63949 27.0224 6.90654 26.0349 6.50162Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,7 @@
<svg width="46" height="16" viewBox="0 0 46 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M32.8807 5.99083H31.2735V11.4557C31.2735 11.558 31.185 11.6456 31.0818 11.6456H29.8433C29.7401 11.6456 29.6516 11.558 29.6516 11.4557V5.99083H28.0297C27.9855 5.99083 27.9265 5.97622 27.897 5.94699C27.8675 5.91777 27.838 5.87394 27.838 5.81549V4.8511C27.838 4.80727 27.8528 4.74882 27.897 4.7196C27.9265 4.69037 27.9855 4.66115 28.0297 4.67576H32.8807C32.9839 4.67576 33.0723 4.74882 33.0723 4.8511V5.81549C33.0723 5.91777 32.9839 5.99083 32.8807 5.99083Z" fill="white"/>
<path d="M38.0559 11.6019C37.4219 11.6896 36.7732 11.7334 36.1391 11.7188C34.9153 11.7188 33.839 11.412 33.839 9.70238V6.59005C33.839 4.88046 34.9301 4.58822 36.1539 4.58822C36.7879 4.57361 37.4219 4.61744 38.0559 4.70511C38.1886 4.71973 38.2476 4.77817 38.2476 4.89507V5.77178C38.2476 5.87406 38.1592 5.96174 38.0559 5.96174H36.0654C35.6231 5.96174 35.4609 6.10785 35.4609 6.60466V7.45215H37.9822C38.0854 7.45215 38.1739 7.53982 38.1739 7.6421V8.53343C38.1739 8.63571 38.0854 8.72338 37.9822 8.72338H35.4609V9.71699C35.4609 10.1992 35.6231 10.3599 36.0654 10.3599H38.0559C38.1592 10.3599 38.2476 10.4476 38.2476 10.5499V11.4266C38.2476 11.5289 38.1886 11.5873 38.0559 11.6019Z" fill="white"/>
<path d="M45.1925 11.6455H43.6885C43.5853 11.6601 43.4821 11.6016 43.4379 11.4993L42.1256 9.45367L40.946 11.4555C40.8871 11.5724 40.8133 11.6455 40.7101 11.6455H39.3094C39.2799 11.6455 39.2357 11.6455 39.2062 11.6162C39.1767 11.587 39.1619 11.5578 39.1619 11.5139C39.1619 11.4847 39.1767 11.4701 39.1767 11.4555L41.2262 8.06555L39.1472 4.85094C39.1324 4.83632 39.1324 4.8071 39.1324 4.79249C39.1324 4.71943 39.2062 4.66098 39.2799 4.67559H40.8281C40.9313 4.67559 41.005 4.76327 41.064 4.85094L42.273 6.75048L43.4526 4.85094C43.4969 4.74865 43.5853 4.69021 43.6885 4.67559H45.0893C45.163 4.67559 45.2367 4.71943 45.2367 4.79249C45.2367 4.8071 45.222 4.83632 45.222 4.85094L43.1577 8.09477L45.3104 11.4555C45.3252 11.4847 45.3399 11.5139 45.3399 11.5432C45.3252 11.6016 45.2662 11.6455 45.1925 11.6455Z" fill="white"/>
<path d="M25.5821 4.69043C25.5083 4.69043 25.4494 4.73427 25.4346 4.80732L24.0634 9.84842C24.0486 9.9507 24.0191 9.99454 23.9307 9.99454C23.8422 9.99454 23.8127 9.9507 23.798 9.84842L22.4267 4.80732C22.412 4.73427 22.353 4.69043 22.2793 4.69043H20.9228C20.8785 4.69043 20.8343 4.70504 20.8048 4.74888C20.7753 4.7781 20.7606 4.82194 20.7753 4.86577C20.7753 4.86577 22.4562 10.6521 22.4709 10.7105C22.6921 11.3973 23.2377 11.7333 23.9307 11.7333C24.5942 11.7626 25.1987 11.3388 25.3904 10.7105C25.4199 10.6375 27.0565 4.86577 27.0565 4.86577C27.0713 4.82194 27.0565 4.7781 27.027 4.74888C26.9975 4.71965 26.9533 4.69043 26.9091 4.69043H25.5821Z" fill="white"/>
<path d="M17.9149 0H3.80428C3.28822 0 2.81639 0.277625 2.56573 0.70137C2.30033 1.13973 2.28559 1.68037 2.5215 2.11872L3.93698 4.77808H1.37142C1.04704 4.77808 0.737403 4.93881 0.560467 5.21644C0.383532 5.49406 0.383532 5.84475 0.530978 6.13699L5.07231 14.6411C5.2345 14.9479 5.55889 15.1379 5.89801 15.1379C6.23714 15.1379 6.56152 14.9479 6.72371 14.6411L7.96225 12.3324L9.51044 15.2402C9.7611 15.7078 10.2624 16 10.7932 16C11.324 16 11.8253 15.7078 12.076 15.2402L19.1534 2.04566C19.3893 1.60731 19.3746 1.08128 19.1092 0.672146C18.8733 0.248402 18.4014 0 17.9149 0ZM11.6042 5.56712L8.5078 11.3242C8.40459 11.5288 8.19817 11.6457 7.96225 11.6457C7.72634 11.6457 7.51992 11.5142 7.4167 11.3242L4.36457 5.62557C4.27611 5.45023 4.27611 5.24566 4.37932 5.07032C4.48253 4.89498 4.67421 4.79269 4.86589 4.79269H11.1176C11.3093 4.79269 11.4862 4.88036 11.5747 5.0411C11.6926 5.20183 11.6926 5.40639 11.6042 5.56712Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,22 @@
import { HTMLAttributes, ReactNode } from 'react'
export interface MainProps
extends Omit<AccordionProps, 'setCurrentAccordion'>,
HTMLAttributes<HTMLDivElement> {
children: ReactNode | ReactNode[]
}
export interface HeaderProps
extends AccordionProps,
HTMLAttributes<HTMLDivElement> {
children: ReactNode | ReactNode[]
}
export interface ContentProps extends HTMLAttributes<HTMLDivElement> {
children: ReactNode | ReactNode[]
}
export interface AccordionProps {
customKey: string | number
setCurrentAccordion: (customKey) => void
}

View File

@ -0,0 +1,27 @@
import { createContext, ReactNode } from 'react'
interface IAccordionItemsValues {
current: string | number | ''
}
export let AccordionContextItems = createContext<IAccordionItemsValues>({
current: '',
})
interface AccordionProviderItemsProps {
children: ReactNode | ReactNode[]
current: string | number | ''
}
export const AccordionProviderItems = ({
children,
current,
}: AccordionProviderItemsProps) => {
return (
<>
<AccordionContextItems.Provider value={{ current }}>
{children}
</AccordionContextItems.Provider>
</>
)
}

View File

@ -0,0 +1,66 @@
.accordion {
position: relative;
overflow: hidden;
z-index: 10;
&-content {
height: 0;
transform: translateY(-5%);
transition: 180ms ease-in;
}
}
.accordion.active {
overflow: unset;
.accordion-content {
height: auto;
transform: translateY(0%);
}
}
.accordion {
header {
width: 100%;
display: inline-flex;
align-items: center;
justify-content: space-between;
}
&-icon {
position: relative;
width: 7.8px;
height: 8.28px;
&::before,
&::after {
content: '';
position: absolute;
width: 100%;
background-color: var(--clr-gray-800);
}
&::before {
top: 50%;
right: 0;
transform: translateY(-50%);
height: 2px;
}
&::after {
right: 50%;
transform: translateX(50%);
height: 100%;
width: 2px;
transition: 200ms linear;
}
}
}
.accordion.active {
.accordion-icon {
&::after {
height: 0;
}
}
}

View File

@ -0,0 +1,64 @@
import { useContext } from 'react'
import { ContentProps, HeaderProps, MainProps } from './@types/index'
import { AccordionContextItems } from './context/Items'
import './index.scss'
const Main = ({ customKey, children, className, ...props }: MainProps) => {
const currentTargetItem = useContext(AccordionContextItems)
const isOpen = () => {
if (currentTargetItem.current === customKey) {
return 'active'
} else {
return ''
}
}
return (
<div className={`${className} accordion ${isOpen()}`} data-jsx="target" {...props}>
{children}
</div>
)
}
const Header = ({
setCurrentAccordion,
customKey,
children,
className,
...props
}: HeaderProps) => {
const currentTargetItem = useContext(AccordionContextItems)
function handleEvent() {
if (customKey === currentTargetItem.current) {
setCurrentAccordion('')
} else {
setCurrentAccordion(customKey)
}
}
return (
<header
className={`${className}`}
onClick={handleEvent}
role={'button'}
data-jsx="event"
{...props}
>
{children}
<i className="accordion-icon" role={'presentation'}></i>
</header>
)
}
const Content = ({ children, className, ...props }: ContentProps) => {
return (
<div className={`accordion-content ${className}`} {...props}>
{children}
</div>
)
}
export const Accordion = Object.assign(Main, { Header, Content })

View File

@ -27,6 +27,7 @@ button {
background-color: transparent;
}
[role='button'],
.btn-ref,
button {
cursor: pointer;

View File

@ -0,0 +1,163 @@
import { AnchorHTMLAttributes, HTMLAttributes, ReactNode } from 'react'
import { Accordion } from '../../../components/Accordion'
import { AccordionProps } from '../../../components/Accordion/@types'
import BoletoImg from '../../../assets/brands/Boleto.png'
import DinersBrandImg from '../../../assets/brands/Diners.png'
import EloBrandImg from '../../../assets/brands/Elo.png'
import HiperBrandImg from '../../../assets/brands/Hiper.png'
import PaypalBrandImg from '../../../assets/brands/Paypal.png'
import MasterCardBrandImg from '../../../assets/brands/Master.png'
import VisaBrandImg from '../../../assets/brands/Visa.png'
import VtexPCIImg from '../../../assets/brands/vtex-pci-200.png'
import css from '../index.module.scss'
export function PaymentsList() {
let images = [
MasterCardBrandImg,
VisaBrandImg,
DinersBrandImg,
EloBrandImg,
HiperBrandImg,
PaypalBrandImg,
BoletoImg,
]
return (
<ul className={css.payments}>
{images.map((image, index) => {
return (
<li key={index}>
<img src={image} alt="" />
</li>
)
})}
<div className={css.divider}></div>
<li>
<img src={VtexPCIImg} alt="" />
</li>
</ul>
)
}
interface InstitutionalListProps extends AccordionProps {}
export function InstitutionalList({
setCurrentAccordion,
customKey,
}: InstitutionalListProps) {
return (
<Accordion customKey={customKey}>
<Accordion.Header
customKey={customKey}
className={`${css['list-header']}`}
setCurrentAccordion={setCurrentAccordion}
>
<h4>Institucional</h4>
</Accordion.Header>
<Accordion.Content className={`${css.content}`}>
<ul className={css.institutional}>
<Item $container={{ className: 'k' }} href="/">
Quem somos nós
</Item>
<Item $container={{ className: '' }} href="/">
Política de Privacidade
</Item>
<Item $container={{ className: '' }} href="/">
Segurança
</Item>
<Item $container={{ className: '' }} href="/">
Seja um Revendedor
</Item>
</ul>
</Accordion.Content>
</Accordion>
)
}
interface QuestionsListProps extends AccordionProps {}
export function QuestionsList({
setCurrentAccordion,
customKey,
}: QuestionsListProps) {
return (
<Accordion customKey={customKey}>
<Accordion.Header
customKey={customKey}
className={`${css['list-header']}`}
setCurrentAccordion={setCurrentAccordion}
>
<h4>Dúvidas</h4>
</Accordion.Header>
<Accordion.Content className={`${css.content}`}>
<ul className={`${css['quesitons-list']}`}>
<Item $container={{ className: '' }} href="/">
Entrega
</Item>
<Item $container={{ className: '' }} href="/">
Pagamento
</Item>
<Item $container={{ className: '' }} href="/">
Trocas e Devoluções
</Item>
<Item $container={{ className: '' }} href="/">
Dúvidas Frequentes
</Item>
</ul>
</Accordion.Content>
</Accordion>
)
}
interface ContactListProps extends AccordionProps {}
export function ContactList({
setCurrentAccordion,
customKey,
}: ContactListProps) {
return (
<Accordion className={css.accordion} customKey={customKey}>
<Accordion.Header
customKey={customKey}
className={`${css['list-header']}`}
setCurrentAccordion={setCurrentAccordion}
>
<h4>Fale Conosco</h4>
</Accordion.Header>
<Accordion.Content className={`${css.content}`}>
<ul className={css.list}>
<Item $container={{ className: '' }} href="/">
Atendimento ao Consumidor
</Item>
<Item $container={{ className: '' }} href="/">
(11) 4159 9504
</Item>
<Item $container={{ className: '' }} href="/">
Atendimento Online
</Item>
<Item $container={{ className: '' }} href="/">
(11) 99433-8825
</Item>
</ul>
</Accordion.Content>
</Accordion>
)
}
interface ItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
children: ReactNode | ReactNode[]
$container?: HTMLAttributes<HTMLLIElement>
}
function Item({ children, $container, ...props }: ItemProps) {
return (
<li {...$container}>
<a {...props}>{children}</a>
</li>
)
}

View File

@ -0,0 +1,203 @@
@use '../../settings/styles/utils/helpers/functions' as function;
.footer {
border-top: 1px solid var(--clr-common-black);
}
.container-top,
.container-bottom {
padding: 0 16px;
@media screen and (min-width: 1025px) {
padding: 0;
}
}
.container-top {
padding-top: 17px;
padding-bottom: 24px;
@media screen and (min-width: 1025px) {
width: function.fluid(1080px, 1280px);
margin: 0 auto;
}
}
.container-bottom {
width: 100%;
padding-top: 15px;
padding-bottom: 15px;
background-color: var(--clr-common-black);
.phrase {
font-size: var(--txt-xxs);
}
* p,
* li {
color: var(--clr-common-white);
}
}
.container-bottom {
.phrase,
.actions-bottom .credits li p {
font-size: var(--txt-xxs);
}
}
.actions-bottom {
.credits {
gap: 12.73px;
&,
li {
display: inline-flex;
align-items: center;
}
@each $index, $value in ('1': 12.12px, '2': 12.97px) {
li:nth-child(#{$index}) {
gap: #{$value};
}
}
}
}
// moved container bottom actions footer for large, medium devices
.container-bottom {
.actions-bottom {
width: 100%;
height: 100%;
display: flex;
align-items: flex-start;
justify-content: center;
flex-direction: column;
gap: 15px;
@media screen and (min-width: 1025px) {
flex-direction: row;
justify-content: space-between;
align-items: center;
gap: 0;
width: function.fluid(1080px, 1280px);
padding: 15px 0;
margin: 0 auto;
}
}
}
.lists {
display: flex;
align-items: stretch;
flex-direction: column;
gap: 5px;
@media screen and (min-width: 1025px) {
flex-direction: row;
.content {
height: auto;
overflow: unset;
transform: translate(0, 0);
}
}
.content {
margin-top: 7px;
ul {
display: flex;
align-items: flex-start;
flex-direction: column;
gap: 12px;
}
li,
a {
font-weight: 400;
font-size: var(--txt-xs);
color: var(--clr-gray-800);
}
}
}
.list-header {
padding: 7px 0;
@media screen and (min-width: 1025px) {
i {
display: none;
}
}
h4 {
font-weight: 500;
font-size: var(--txt-normal);
text-transform: uppercase;
color: var(--clr-gray-800);
}
}
.payments {
display: flex;
align-items: center;
.divider {
border-left: 1px solid var(--clr-gray-400);
height: 20.36px;
}
@each $index,
$value
in(
'1': 11.33px,
'2': 11.22px,
'3': 11.22px,
'4': 11.44px,
'5': 11.22px,
'6': 11.33px,
'7': 10.33px
)
{
li:nth-child(#{$index}) {
margin-right: #{$value};
}
}
li:last-child {
margin-left: 10.49px;
}
}
.container-bottom {
.phrase {
order: 2;
}
.payments {
order: 1;
}
.credits {
order: 3;
}
@media screen and (min-width: 1025px) {
.phrase {
order: initial;
}
.payments {
order: initial;
}
.credits {
order: initial;
}
}
}

View File

@ -0,0 +1,75 @@
import vtexIcon from '../../assets/brands/svgs/Vtex.svg'
import m3Icon from '../../assets/brands/svgs/M3.svg'
import { AccordionProviderItems } from '../../components/Accordion/context/Items'
import {
ContactList,
InstitutionalList,
PaymentsList,
QuestionsList,
} from './fragments/Lists'
import css from './index.module.scss'
import { useState } from 'react'
export function Footer() {
const [AccordionCurrentIsOpen, setAccordionCurrentIsOpen] = useState<
string | number | ''
>('')
function handleSetCurrentAccordion(customkey: string | number | '') {
if (window.innerWidth < 1024) setAccordionCurrentIsOpen(customkey)
}
return (
<footer className={css.footer}>
<div></div>
<div className={css['container-top']}>
<AccordionProviderItems current={AccordionCurrentIsOpen}>
<ul className={css.lists}>
<li>
<InstitutionalList
customKey={'1'}
setCurrentAccordion={handleSetCurrentAccordion}
/>
</li>
<li>
<QuestionsList
customKey={'2'}
setCurrentAccordion={handleSetCurrentAccordion}
/>
</li>
<li>
<ContactList
customKey={'3'}
setCurrentAccordion={handleSetCurrentAccordion}
/>
</li>
</ul>
</AccordionProviderItems>
</div>
<div className={css['container-bottom']}>
<div className={css['actions-bottom']}>
<p className={css.phrase}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor
</p>
<PaymentsList />
<ul className={css.credits}>
<li>
<p>Powered by</p>
<img src={vtexIcon} alt="" />
</li>
<li>
<p>Developed by</p>
<img src={m3Icon} alt="" />
</li>
</ul>
</div>
</div>
</footer>
)
}

View File

@ -4,6 +4,7 @@
position: sticky;
top: 0;
left: 0;
z-index: 1000;
padding: 25px 0;