-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
add update #721
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
Open
GenioDiferenteDND
wants to merge
62
commits into
evershopcommerce:main
Choose a base branch
from
GenioDiferenteDND:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
add update #721
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Parece que o problema está relacionado com a forma como as operações de filtro estão sendo mapeadas e utilizadas no código. A nova versão do Evershop requer que as operações de filtro sejam especificadas usando os valores do enum FilterOperation em vez de valores literais como =. Vou sugerir como você pode modificar o código para utilizar as novas operações de filtro corretamente. Primeiro, vamos atualizar as operações de filtro no código para usar as operações enumeradas como eq, neq, etc., em vez de =. As principais alterações foram: Substituir todas as ocorrências de = para eq nas operações de filtro. Para os filtros de preço, use gteq para minPrice (maior ou igual) e lteq para maxPrice (menor ou igual). Use in para filtros que aceitam múltiplos valores (arrays).
Corrigir a função query.and não reconhecida: A função query.and pode ter sido substituída ou removida na nova versão do Evershop. Substitua query.and pela sintaxe correta da nova versão. Como a documentação sugere que query.and não é mais uma função válida, substitua-a por uma condição de where adicional usando where novamente. Aqui está uma revisão do seu código com and substituído:
Revisão do filters.js (com enumeração de operações)
Alterações importantes: Retirei o mapeamento OPERATION_MAP: Como os valores de operação enviados precisam estar no formato aceito pelo enum FilterOperation no GraphQL (eq, neq, gt, etc.), os valores são usados diretamente sem mapeamento para operadores SQL. Uso correto das operações no URL: As operações de filtro (eq, neq, gt, gteq, etc.) são adicionadas diretamente aos parâmetros do URL. Essas alterações devem assegurar que as operações de filtro sejam compatíveis com a enumeração GraphQL e evitar o erro mencionado.
= para eq
Mudanças realizadas: Enums FilterOperation: Certifiquei-me de que as operações de filtro utilizam os valores corretos, como EQ em vez de =. PropTypes: Adicionei isRequired onde necessário para garantir que as propriedades obrigatórias sejam passadas corretamente. Miscellaneous: Pequenas correções e formatações para garantir que o código esteja coeso e correto. Agora, o código deve funcionar corretamente com os valores de enumeração do GraphQL. Certifique-se de testar as mudanças para garantir que todos os filtros estejam funcionando conforme o esperado.
Parece que o arquivo indexFilters.js é responsável por lidar com os filtros e parâmetros da URL para a página de produtos. Vamos revisar o código e verificar se há algum problema: Filtragem de preço: O código está verificando se os parâmetros minPrice e maxPrice estão presentes na consulta. No entanto, a operação de comparação para minPrice está definida como eq, o que parece estar incorreto. Deveria ser >= para minPrice e <= para maxPrice. Filtragem de categoria: Está sendo feita corretamente, usando a operação = para comparar com o valor do parâmetro cat. Filtragem de atributos: O código está buscando atributos filtráveis no banco de dados e, em seguida, aplicando a operação = para os valores correspondentes. Ordenação e paginação: A ordenação está sendo definida corretamente, mas para a página e o limite, parece que a operação = está sendo usada, o que deve ser adequado para o valor exato da página e do limite, mas poderia ser mais útil com >= para a página e o limite.
Parece que a exceção ocorreu porque a propriedade eq não foi exportada corretamente. Vamos corrigir isso e garantir que as operações necessárias sejam exportadas. Aqui está o código atualizado para indexFilters.js: Com esta correção, o código deve agora exportar corretamente a operação de igualdade (eq) do módulo de operações e evitar a exceção que você encontrou. Certifique-se de testar novamente para garantir que tudo funcione como esperado
Alterações principais: Importação do Mapa de Operações: Importa o OPERATION_MAP do módulo correspondente. Uso do Mapa de Operações: Substitui as operações hardcoded ('=', etc.) pelas correspondentes do OPERATION_MAP. Com essas mudanças, o código agora pode lidar corretamente com os diferentes tipos de operações de filtragem definidos no seu mapa de operações. Certifique-se de ajustar o caminho para a importação do OPERATION_MAP conforme necessário para corresponder à estrutura do seu projeto.
Alterações principais: Atualização da lógica de updateFilter: Agora o método reconhece e preserva todas as operações de filtragem. Validação das propriedades com PropTypes: Adicionadas as novas operações (eq, neq, gt, gteq, lt, lteq, like, nlike, in, nin). Atualização da URL: Ajustes no updateFilter para garantir que a URL seja corretamente atualizada com os novos filtros. Certifique-se de ajustar o caminho para a importação do OPERATION_MAP conforme necessário para corresponder à estrutura do seu projeto.
Ajustes Realizados: Substituição de "=": Substituímos todas as ocorrências de "=" pelas operações corretas do OPERATION_MAP, como OPERATION_MAP.eq, OPERATION_MAP.gteq, e OPERATION_MAP.lteq. Benefícios: Agora, o código utiliza as operações válidas definidas no OPERATION_MAP, evitando erros relacionados ao uso de operações inválidas no enum FilterOperation. Com essas mudanças, o código deve funcionar corretamente dentro do ambiente do EverShop. Se ainda houver algum erro, pode ser necessário verificar quais operações são exatamente válidas no FilterOperation e ajustar o OPERATION_MAP conforme necessário.
Ajustes Realizados: Adição do Enum FilterOperation: Incluímos um enum em PropTypes para definir operações válidas: 'eq', 'neq', 'gt', 'gteq', 'lt', 'lteq', 'like', 'nlike', 'in', 'nin'. Atualização das PropTypes: Atualizamos PropTypes em Filter para refletir essas operações válidas. Com essas alterações, o código do componente Filter deve agora trabalhar corretamente com operações válidas e evitar o erro inicial.
Direitos Autorais © 2024 E-Moio, E.I
Logo
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?
Other information