Taps on Jetpack Compose buttons refused because of the fake Button child node
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 78/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- react-native, typescript
Direção de pesquisa
A issue aponta o filtro de concorrentes de tap-target no arquivo minificado dist/src/runtime-factory.js; comece localizando o código-fonte legível correspondente e os testes relacionados a tap-target. Verifique como funcionam a filtragem de concorrentes e a resolução do ponto central e, em seguida, execute os testes pertinentes. O trabalho estará concluído quando um toque em um botão do Compose for resolvido sem um patch, inclusive no caso em que exatamente um concorrente atingível cobre o centro do alvo.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Purpose. agent-device refuses taps on Jetpack Compose buttons with "no parent-owned touch point".
Cause. For every merging Button, Compose's SemanticsNode.emitFakeNodes adds a fake child node with role=Button that is not clickable. The competitor filter in the tap-target check matches on type and role names and ignores whether a competitor is clickable or hittable. So the fake child counts as a competing control covering the button, and the tap is blocked.
Required behavior.
- Only count a competitor that can receive the tap (
hittable === true). - When exactly one competitor covers the target's center, tap the center.
We patch this today in the minified dist/src/runtime-factory.js. In readable form:
// competitors
.filter((e) => isOverlappingCompetitor(e, target, byIndex))
.filter((e) => e.hittable === true)
// after collecting competitors
if (competitors.length === 1 && contains(competitors[0].rect, center)) return { kind: 'resolved', point: center, strategy: 'center' };
Done when. A tap on a Compose Button resolves without a patch. Still present in 0.21.32.
Dependencies. None.
- Linguagem predominante
- TypeScript
- Estrelas
- 5.2k
- Forks
- 359
- Merge médio
- 13h 32min
- PRs com merge (30d)
- 671
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de callstack/agent-device
-
bug ready-for-agent
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
callstack/agent-device#4018 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
callstack/agent-device#1869 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 43/100
callstack/agent-device#4110 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 57/100
callstack/agent-device#4109 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
callstack/agent-device#4107 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de callstack/agent-device
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Slaymish/HealthAgent#7 ·
-
area: engine topic: math type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Get-Concord-AI/concord-mcp#310 ·
Mantenedores costumam responder em até 1 dia
-
Correct install_claude: 'marketplace add' over a different source is refused, not replaced in placeAbertatype:bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
nightgauge/nightgauge#2804 ·
Mantenedores costumam responder em até 1 dia