Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Desafio filtros

Boa noite, pessoal :)

Não incluíram o código dos componentes Tags e CampoTexto na resolução do desafio. Envio abaixo como ficou o meu, não sei se é a melhor forma de fazer, mas foi a forma que consegui fazer funcionar rsrs

Componente Tags (incluí a chave 'tag' no arquivo 'tags.json') :

import tags from './tags.json'
import { styled } from 'styled-components'

const BarraTags = styled.div`
    display: flex;
    align-items: center;
    gap: 64px;
    margin-top: 56px;
`
const TituloTags = styled.p`
    color: #D9D9D9;
    font-size: 24px;
    margin: 0;
`
const Tag = styled.button`
    font-size: 24px;
    color: #FFFFFF;
    background-color:rgba(217, 217, 217, 0.3);
    cursor: pointer;
    transition: background-color 0.3s ease;
    padding: 12px;
    box-sizing: border-box;
    border-radius: 10px;
    border-color: transparent;
    &:hover{
        border-color: #C98CF1;
    }
`
const Div = styled.div`
    display: flex;
    gap: 24px;
    justify-content: end;
`
const Tags = ({ setTag }) => {
    return (
        <BarraTags>
            <TituloTags>Busque por tags:</TituloTags>
            <Div>
                {tags.map(tag => <Tag key={tag.id} onClick={() => setTag(tag.tag)}>{tag.titulo}</Tag>)}
            </Div>
        </BarraTags>
    )
}

export default Tags

Componente CampoTexto:

import { styled } from "styled-components"

const InputContainerEstilizado = styled.div`
    position: relative;
    display: inline-block;
`
const InputEstilizado = styled.input`
    height: 56px;
    padding: 12px 16px;
    border-radius: 10px;
    border: 2px solid;
    border-color: #C98CF1;
    background: transparent;
    box-sizing: border-box;
    width: 566px;
    color: #D9D9D9;
    font-weight: 400;
    font-size: 20px;
    line-height: 20px;
`
const LupaEstilizada = styled.img`
    position: absolute;
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
`
const CampoTexto = ({ setFiltro }) => {

    return (
        <InputContainerEstilizado>
            <InputEstilizado onChange={(evento) => { setFiltro(evento.target.value) }} type="text" placeholder="O que você procura?" />
            <LupaEstilizada src="/icones/search.png" alt="Ícone de lupa" />
        </InputContainerEstilizado>
    )
}

export default CampoTexto

Além disso, notei que na resolução apresentada, os trechos de código relacionados às funcionalidades de favoritar e ampliar as imagens estão diferentes dos desenvolvidos em aula. Isso ficou confuso.

1 resposta
solução!

Bom dia, Thaís!

Muito obrigado pelo feedback e perdão pelo ocorrido.

Ficamos muito felizes que você conseguiu concluir o curso e abstrair o conhecimento passado. Até resolveu o desafio de uma forma diferente e elaborada. Parabéns!

Em relação aos desafios, estamos revisando e elaborando gabaritos atualizados e coerentes com os conteúdos. Em breve já estarão disponíveis no curso.

Novamente agradecemos pelo feedback e engajamento no fórum, pois é a partir de vocês, pessoas alunas, que melhoramos cada dia mais.

Abraços e bons estudos!