Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PR de correção. Não precisa mergeear. #41

Open
wants to merge 111 commits into
base: correcao-projeto
Choose a base branch
from

Conversation

pedro-severo
Copy link

PR de correção. Não precisa mergeear.

RPCaetano and others added 30 commits December 7, 2020 12:18
 Parte da Criação da pagina de Restaurante
Tive que mexer aqui porque tava dando erro.
Header corrigido- esta em um componente que pode ser chamado para as …
Telas de Login e cadastro em fase de conclusão
Correção no página signup.js e router.js
Tentando fazer a requisição get
Rafaela-Quinzel and others added 23 commits December 10, 2020 17:08
Fiz mais alguns ajustes que precisava
Ajustes no coordinator e Router
tentando integrar os detalhes de restaurantes
Funções de perfil e histórico de pedidos funcionando novamente
Tentando fazer a parte de busca
Comment on lines +24 to +26
<Route exact path="/">
<HomePage />
</Route>
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Não precisava colocar a página inicial como uma página home só com o logo da rappi. Ou se for fazer isso, coloque um botão pra levar para a página de Login. Pois do jeito que tá, o usuário cai numa página com o logo, mas sem nenhuma forma de navegar até a página de Login ou Signup.

Comment on lines +13 to +18
if(response.data.user.hasAddress) {
localStorage.setItem("token", response.data.token);
alert(`Olá ${response.data.user.name}! Estou te redirecionando para o feed`)
goToBuy(history)

} else {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gostei da ideia dessa verificação para impedir que usuários sem endereço cadastrado vão para o feed!

Comment on lines +4 to +25
export function useRequestData(url, initialState) {
const [data, setData] = useState(initialState);

useEffect(() => {
const token = localStorage.getItem("token");

axios
.get(url, {
headers: {
auth: token,
},
})
.then((response) => {
setData(response.data.restaurants);
})
.catch((err) => {
console.log(err.message);
});
}, [url]);

return data;
}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nesse caso de usar o hook useRequestData, é uma boa criar uma função para pegar os dados do banco de dados sempre que vcs precisarem. Isso é bem importante para atualizar os dados de uma página sem precisar de dar refresh no site. Ficaria dessa forma o hook:


export const useRequestData = (url,initialState)=>{
    const [data,setData]=useState(initialState)

    const getData = () => {
        axios.get(url,headers).then((res)=>{
            setData(res.data)
        }).catch((err)=>{
            console.log(err.message)
        })
    }


    useEffect(()=>{
         getData()
    },[getData])


    return [data, getData]
} 

Com isso, na hora de usar a função, vcs sempre poderão chamar, além do data em si, a função que atualiza o data, para atualizar as informações na tela sempre que precisarem

Comment on lines +20 to +35
{restaurants.map((restaurant) => {
return (

<FeedCard

restaurant = {restaurant}
key={restaurant.id}
id={restaurant.id}
category={restaurant.category}
name={restaurant.name}
logoUrl={restaurant.logoUrl}
description={restaurant.description}
deliveryTime={restaurant.deliveryTime}
shipping={restaurant.shipping}

/>
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

É legal que nessas renderização de coisas que vem do banco de dados seja colocado algum componente loading, para que o usuário tenha uma melhor experiência. No caso, para usar esse componente loading, basta fazer uma renderização condicional, verificando se o array que vem do banco de dados já chegou ou não da requisição.

Comment on lines +20 to +37
useEffect (() => {
getOrdersHistory ()
},[])

const getOrdersHistory = () => {
axios.get(`${BaseUrl}/orders/history`,
{
headers:{
auth:localStorage.getItem ("token")
}
})
.then((response) => {
setOrderHistory(response.data)
})
.catch((error)=>{
console.log(error)
})
}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aqui, dava pra usar o hook useRequestData criado por vcs.


function RestaurantCard(props) {

console.log(props.Photo)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Não se esqueçam de tirar os console.log que ficam ao longo do código.

Comment on lines +5 to +18
export const useProtectPage = () => {
const history = useHistory();

useEffect(() => {
const token = localStorage.getItem("token");

if (!token) {
goToLoginPage(history) // Se não tem token, vai redirecionar para a página de login
}
else {
goToBuy(history) // Para continuar logado, caso tenha token
}
}, [history]);
};
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

É melhor separar as lógicas de proteção de páginas em dois hooks, um o useProtectPage e outro chamado useUnprotectPage

Comment on lines +41 to +44
export const logOut = (history) => {
localStorage.removeItem('token')
history.push('/login')
}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Legal terem criado essa função de logout aqui nas funções de rotas. Boa ideia!

@pedro-severo
Copy link
Author

Oi, pessoal!! Parabéns pelo trabalho!

O trabalho ficou com alguns bugzinhos de código e de UX. Mas em trabalhos complexos assim e com muita gente, e levando em conta que vcs tiveram só uma semana pra fazer (muito pouco tempo!), era esperado.

Fiz alguns comentários ao longo do código, peço que deem uma olhada.

E mesmo assim, vcs fizeram um excelente trabalho. Deu pra ver o esforço e comprometimento de vcs! Parabéns!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants