Boa noite! Eu tive um tempo agora e analisei seu código, creio que eu achei o problema:
Pelo que entendi, seu problema era quando adicionava um item no carrinho, no estado do carrinho estava correto mas no console.log dentro do componente do dropdown estava errado, né? então, no arquivo src/hooks/use-cart/index.js, pelo que entendi ele iria fazer a requisição passando os ids que estavam no carrinho, o backend iria retornar os itens que você queria porém filtrados pelos ids de itens que estavam no carrinho. Bem, na linha 5 deste arquivo aqui você tá passando "$ids", mas no arquivo src/hooks/use-cart/index.js onde você chama o useQuery você tá passando o nome da variável como "id", isso é assim mesmo? pelo que entendo o nome da variavel deveria ser igual, talvez você nem precise colocar ela dentro do filter também, algo tipo isso:
const { loading, error, data } = useQuery(GET_IDS_CARDS, {
skip: !cartItem?.length,
variables: {
ids: cartItem
}
})
Você pode tentar fazer um teste dos dois casos, tenta com ele dentro e fora do filter e ver qual funciona.