Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

iOS 27: `_UIFloatingBarContainerView` still marks content "covered" when the container matches its parent or sits a few points below the viewport top

Aperta
#3,883 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@jonstuebe ci sta già lavorando.

Dal 22/10/2026.

  • #3912 di @jonstuebe — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
ios, react-native, typescript
Ambito
mobile, testing-qa

Direzione di ricerca

Start with packages/capture-kit/src/snapshot-occlusion.ts and the tests in snapshot-occlusion-sibling-sized-chrome.test.ts; compare the two snapshot shapes described in the issue with the existing sibling-sized and full-viewport checks. Add coverage for parent-sized containers beside an enclosing branch and containers whose top is within 0–4pt of the viewport top. Done means the new cases pass while the stated non-enclosing and smaller-than-parent cases remain covering.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

On iOS 27, taps on normal screen content fail with Ref @eN is covered by another visible element. The node reported as covering is the UIKit floating-bar container (_UIFloatingBarContainerView, type Toolbar, label/identifier Toolbar, hittable: true). This looks like the same family of bugs as #2996 and #3628. The fixes in #3097 and #3162 don't cover the two tree shapes below.

Environment

  • agent-device 0.21.25 (through @e2e-dev/mobile 0.12.0). The captured snapshots below also come out covered with the 0.21.30 occlusion code.
  • iPhone 18 Pro Max simulator, iOS 27.0, Xcode 27.1
  • React Native app (Expo SDK 58). The same build passes on iOS 26.5.

Shape 1: XCTest tree. The container matches its parent, not a sibling.

In the raw tree, the container has a sibling with the same rect, so #3097's sibling-sized exemption would apply. After group pruning, that sibling is gone. The container ends up next to a larger content branch that encloses it:

Other            0,2  440x954         ← content branch (sibling)
Other            0,64 440x892         ← parent
  Toolbar        0,64 440x892         ← _UIFloatingBarContainerView, hittable

No sibling has the same rect, so isSiblingSizedChromeContainer returns false. The container is not full-viewport, so the toolbar is treated as an overlay over the content.

Shape 2: flat / interactive projection. The container is 2pt short of full-viewport.

Application      0,0  440x956   (viewport 440x956)
  Other          0,62 440x2
  ScrollView     0,112 440x782
  ...
  Toolbar        0,2  440x954   role=_UIFloatingBarContainerView
  Toolbar        0,64 440x892   role=_UIFloatingBarContainerView

The 0,2 container misses isFullViewportChromeContainer because its top is 2pt below the viewport top. Our app keeps a 2pt status strip pinned at the top, and the window content starts below it. The container still spans the full width and reaches the bottom of the viewport.

Proposed fix

I have two narrow rules in packages/capture-kit/src/snapshot-occlusion.ts, with 3 new tests in snapshot-occlusion-sibling-sized-chrome.test.ts. All 1013 capture-kit tests pass:

  1. Parent-sized beside an enclosing branch: a tabbar/toolbar/navigationbar container is not an overlay when its rect equals its parent's rect and a sibling of it fully encloses it. The tests also show it still counts as covering when no sibling encloses it, or when it is smaller than its parent.
  2. Viewport footprint tolerance: the full-viewport chrome check accepts a container that matches the viewport's x, width and bottom edge, with its top 0–4pt below the viewport top.

With the same change applied as a local patch to 0.21.25, our suite goes from 1/4 to 4/4 on iOS 27.

Would you like a PR for this? I can open one with the change and the tests.

Snapshots

Both snapshots are from the same screen. App text is replaced with <label> / <identifier> / <value>. Nodes that agent-device marked covered have their hittable: true restored, so this is the input to occlusion, not its output. Run through snapshot-occlusion from 0.21.30, the interactive snapshot marks 18 of 26 nodes covered.

Interactive snapshot (shape 2)
{
 "viewport": {"width":440,"height":956},
 "nodes": [
  {"index":0,"depth":0,"type":"Application","role":"UIApplication","rect":{"x":0,"y":0,"width":440,"height":956},"enabled":true,"hittable":false,"kind":"application","label":"<label>"},
  {"index":1,"parentIndex":0,"depth":1,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":0,"y":62,"width":440,"height":2},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":2,"parentIndex":0,"depth":1,"type":"StaticText","role":"RCTParagraphComponentView","subrole":"UIView","rect":{"x":16,"y":78,"width":58.333335876464844,"height":20.333335876464844},"enabled":true,"hittable":true,"kind":"text","label":"<label>"},
  {"index":3,"parentIndex":0,"depth":1,"type":"ScrollView","role":"RCTEnhancedScrollView","subrole":"UIScrollView","rect":{"x":0,"y":112,"width":440,"height":782},"enabled":true,"hittable":true,"kind":"scroll-area"},
  {"index":4,"parentIndex":3,"depth":2,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":0,"y":128,"width":440,"height":16.333328247070312},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":5,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":152.3333339691162,"width":408,"height":64.66667175292969},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":6,"parentIndex":3,"depth":2,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":0,"y":241,"width":440,"height":16.333343505859375},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":7,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":265.3333339691162,"width":408,"height":46.666656494140625},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":8,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":313.00000190734863,"width":408,"height":46.666656494140625},"enabled":true,"hittable":true,"kind":"cell","label":"<label>","identifier":"<identifier>"},
  {"index":9,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":360.66666984558105,"width":408,"height":46.66668701171875},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":10,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":408.3333339691162,"width":408,"height":46.666656494140625},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":11,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":456.0000057220459,"width":408,"height":46.666656494140625},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":12,"parentIndex":3,"depth":2,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":0,"y":526.6666564941406,"width":440,"height":16.33331298828125},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":13,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":550.9999904632568,"width":408,"height":46.66668701171875},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":14,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":598.6666584014893,"width":408,"height":46.6666259765625},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":15,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":669.3333129882812,"width":408,"height":46.66668701171875},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":16,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":716.9999809265137,"width":408,"height":64.66668701171875},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":17,"parentIndex":3,"depth":2,"type":"Cell","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":16,"y":782.6666488647461,"width":408,"height":64.6666259765625},"enabled":true,"hittable":true,"kind":"cell","label":"<label>"},
  {"index":18,"parentIndex":3,"depth":2,"type":"Button","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":0,"y":871.3333129882812,"width":440,"height":16.3333740234375},"enabled":true,"hittable":true,"kind":"button","label":"<label>"},
  {"index":19,"parentIndex":0,"depth":1,"type":"Toolbar","role":"_UIFloatingBarContainerView","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"toolbar","label":"Toolbar","identifier":"Toolbar"},
  {"index":20,"parentIndex":0,"depth":1,"type":"Toolbar","role":"_UIFloatingBarContainerView","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"toolbar","label":"Toolbar","identifier":"Toolbar"},
  {"index":21,"parentIndex":0,"depth":1,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":24,"y":870,"width":98,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":22,"parentIndex":0,"depth":1,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":122,"y":870,"width":98,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":23,"parentIndex":0,"depth":1,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":220,"y":870,"width":98,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":24,"parentIndex":0,"depth":1,"type":"Other","role":"RCTViewComponentView","subrole":"UIView","rect":{"x":318,"y":870,"width":98,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":25,"parentIndex":0,"depth":1,"type":"Toolbar","role":"_UIFloatingBarContainerView","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"toolbar","label":"Toolbar","identifier":"Toolbar"}
 ]
}
Raw XCTest snapshot (shape 1, before group pruning)
{
 "nodes": [
  {"index":0,"depth":0,"type":"Application","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":false,"kind":"application","label":"<label>"},
  {"index":1,"parentIndex":0,"depth":1,"type":"Window","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"window"},
  {"index":2,"parentIndex":1,"depth":2,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other"},
  {"index":3,"parentIndex":2,"depth":3,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other"},
  {"index":4,"parentIndex":3,"depth":4,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other"},
  {"index":5,"parentIndex":4,"depth":5,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other"},
  {"index":6,"parentIndex":5,"depth":6,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":7,"parentIndex":6,"depth":7,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":8,"parentIndex":7,"depth":8,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":9,"parentIndex":8,"depth":9,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":10,"parentIndex":9,"depth":10,"type":"Other","rect":{"width":440,"y":0,"height":956,"x":0},"enabled":true,"hittable":true,"kind":"other"},
  {"index":11,"parentIndex":9,"depth":10,"type":"Other","rect":{"height":2,"width":440,"x":0,"y":62},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":12,"parentIndex":11,"depth":11,"type":"Other","rect":{"y":62,"x":257,"width":154,"height":2},"enabled":true,"hittable":true,"kind":"other"},
  {"index":13,"parentIndex":9,"depth":10,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":14,"parentIndex":13,"depth":11,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":15,"parentIndex":14,"depth":12,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other"},
  {"index":16,"parentIndex":15,"depth":13,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other"},
  {"index":17,"parentIndex":16,"depth":14,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other"},
  {"index":18,"parentIndex":17,"depth":15,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":19,"parentIndex":18,"depth":16,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":20,"parentIndex":19,"depth":17,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":21,"parentIndex":20,"depth":18,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":22,"parentIndex":21,"depth":19,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other"},
  {"index":23,"parentIndex":22,"depth":20,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other"},
  {"index":24,"parentIndex":23,"depth":21,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":25,"parentIndex":24,"depth":22,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":26,"parentIndex":25,"depth":23,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":27,"parentIndex":26,"depth":24,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other","label":"Toolbar"},
  {"index":28,"parentIndex":27,"depth":25,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other"},
  {"index":29,"parentIndex":28,"depth":26,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other"},
  {"index":30,"parentIndex":29,"depth":27,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":31,"parentIndex":30,"depth":28,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":32,"parentIndex":31,"depth":29,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":954},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":33,"parentIndex":32,"depth":30,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":110},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":34,"parentIndex":33,"depth":31,"type":"Other","rect":{"x":0,"y":2,"width":440,"height":110},"enabled":true,"hittable":true,"kind":"other"},
  {"index":35,"parentIndex":33,"depth":31,"type":"StaticText","rect":{"x":16,"y":78,"width":58.333335876464844,"height":20.333335876464844},"enabled":true,"hittable":true,"kind":"text","label":"<label>"},
  {"index":36,"parentIndex":35,"depth":32,"type":"StaticText","rect":{"x":16,"y":78,"width":58.333335876464844,"height":20.333335876464844},"enabled":true,"hittable":true,"kind":"text","label":"<label>"},
  {"index":37,"parentIndex":32,"depth":30,"type":"Other","rect":{"x":0,"y":112,"width":440,"height":844},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":38,"parentIndex":37,"depth":31,"type":"ScrollView","rect":{"x":0,"y":112,"width":440,"height":844},"enabled":true,"hittable":true,"kind":"scroll-area","label":"<label>"},
  {"index":39,"parentIndex":38,"depth":32,"type":"Other","rect":{"x":0,"y":112,"width":440,"height":885.6666870117188},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":40,"parentIndex":39,"depth":33,"type":"Other","rect":{"x":0,"y":112,"width":440,"height":885.6666870117188},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":41,"parentIndex":40,"depth":34,"type":"Other","rect":{"x":0,"y":128,"width":440,"height":16.333328247070312},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":42,"parentIndex":40,"depth":34,"type":"Other","rect":{"x":16,"y":152.3333339691162,"width":408,"height":64.66667175292969},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":43,"parentIndex":42,"depth":35,"type":"Other","rect":{"x":16,"y":152.3333339691162,"width":408,"height":64.66667175292969},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":44,"parentIndex":40,"depth":34,"type":"Other","rect":{"x":0,"y":241,"width":440,"height":16.333343505859375},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":45,"parentIndex":40,"depth":34,"type":"Other","rect":{"x":16,"y":265.3333339691162,"width":408,"height":237.33331298828125},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":46,"parentIndex":45,"depth":35,"type":"Other","rect":{"x":16,"y":265.3333339691162,"width":408,"height":46.666656494140625},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":47,"parentIndex":45,"depth":35,"type":"Other","rect":{"x":16,"y":312.00000190734863,"width":408,"height":1},"enabled":true,"hittable":true,"kind":"other"},
  {"index":48,"parentIndex":45,"depth":35,"type":"Other","rect":{"x":16,"y":313.00000190734863,"width":408,"height":46.666656494140625},"enabled":true,"hittable":true,"kind":"other","label":"<label>","identifier":"<identifier>"},
  {"index":49,"parentIndex":45,"depth":35,"type":"Other","rect":{"height":1,"y":359.66666984558105,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other"},
  {"index":50,"parentIndex":45,"depth":35,"type":"Other","rect":{"height":46.66668701171875,"y":360.66666984558105,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":51,"parentIndex":45,"depth":35,"type":"Other","rect":{"height":1,"y":407.3333339691162,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other"},
  {"index":52,"parentIndex":45,"depth":35,"type":"Other","rect":{"height":46.666656494140625,"y":408.3333339691162,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":53,"parentIndex":45,"depth":35,"type":"Other","rect":{"height":1,"y":455.0000057220459,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other"},
  {"index":54,"parentIndex":45,"depth":35,"type":"Other","rect":{"height":46.666656494140625,"y":456.0000057220459,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":55,"parentIndex":40,"depth":34,"type":"Other","rect":{"height":16.33331298828125,"y":526.6666564941406,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":56,"parentIndex":40,"depth":34,"type":"Other","rect":{"height":94.33331298828125,"y":550.9999904632568,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":57,"parentIndex":56,"depth":35,"type":"Other","rect":{"height":46.66668701171875,"y":550.9999904632568,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":58,"parentIndex":56,"depth":35,"type":"Other","rect":{"height":1,"y":597.6666584014893,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other"},
  {"index":59,"parentIndex":56,"depth":35,"type":"Other","rect":{"height":46.6666259765625,"y":598.6666584014893,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":60,"parentIndex":40,"depth":34,"type":"Other","rect":{"height":178,"y":669.3333129882812,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":61,"parentIndex":60,"depth":35,"type":"Other","rect":{"height":46.66668701171875,"y":669.3333129882812,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":62,"parentIndex":60,"depth":35,"type":"Other","rect":{"height":1,"y":715.9999809265137,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other"},
  {"index":63,"parentIndex":60,"depth":35,"type":"Other","rect":{"height":64.66668701171875,"y":716.9999809265137,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":64,"parentIndex":60,"depth":35,"type":"Other","rect":{"height":1,"y":781.6666488647461,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other"},
  {"index":65,"parentIndex":60,"depth":35,"type":"Other","rect":{"height":64.6666259765625,"y":782.6666488647461,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":66,"parentIndex":40,"depth":34,"type":"Button","rect":{"height":16.3333740234375,"y":871.3333129882812,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"button","label":"<label>"},
  {"index":67,"parentIndex":38,"depth":32,"type":"Other","rect":{"height":782,"y":112,"x":407,"width":30},"enabled":true,"hittable":true,"kind":"other","label":"<label>","value":"<value>"},
  {"index":68,"parentIndex":67,"depth":33,"type":"Other","rect":{"height":739.3333333333334,"y":115,"x":434,"width":3},"enabled":true,"hittable":true,"kind":"other"},
  {"index":69,"parentIndex":38,"depth":32,"type":"Other","rect":{"height":30,"y":923,"x":62,"width":316},"enabled":true,"hittable":true,"kind":"other","label":"<label>","value":"<value>"},
  {"index":70,"parentIndex":69,"depth":33,"type":"Other","rect":{"height":3,"y":950,"x":65,"width":310},"enabled":true,"hittable":true,"kind":"other"},
  {"index":71,"parentIndex":38,"depth":32,"type":"Other","rect":{"height":782,"y":112,"x":407,"width":30},"enabled":true,"hittable":true,"kind":"other","label":"<label>","value":"<value>"},
  {"index":72,"parentIndex":71,"depth":33,"type":"Other","rect":{"height":739.3333333333334,"y":115,"x":434,"width":3},"enabled":true,"hittable":true,"kind":"other"},
  {"index":73,"parentIndex":38,"depth":32,"type":"Other","rect":{"height":30,"y":923,"x":62,"width":316},"enabled":true,"hittable":true,"kind":"other","label":"<label>","value":"<value>"},
  {"index":74,"parentIndex":73,"depth":33,"type":"Other","rect":{"height":3,"y":950,"x":65,"width":310},"enabled":true,"hittable":true,"kind":"other"},
  {"index":75,"parentIndex":27,"depth":25,"type":"Toolbar","rect":{"height":954,"y":2,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"toolbar","label":"Toolbar","identifier":"Toolbar"},
  {"index":76,"parentIndex":75,"depth":26,"type":"Other","rect":{"height":954,"y":2,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"other"},
  {"index":77,"parentIndex":21,"depth":19,"type":"Toolbar","rect":{"height":892,"y":64,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"toolbar","label":"Toolbar","identifier":"Toolbar"},
  {"index":78,"parentIndex":77,"depth":20,"type":"Other","rect":{"height":892,"y":64,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"other"},
  {"index":79,"parentIndex":19,"depth":17,"type":"Other","rect":{"height":126,"y":830,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"other"},
  {"index":80,"parentIndex":19,"depth":17,"type":"Other","rect":{"height":94,"y":862,"x":0,"width":440},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":81,"parentIndex":80,"depth":18,"type":"Other","rect":{"height":60,"y":862,"x":16,"width":408},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":82,"parentIndex":81,"depth":19,"type":"Other","rect":{"height":44,"y":870,"x":24,"width":98},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":83,"parentIndex":82,"depth":20,"type":"Other","rect":{"x":51,"y":870,"width":44,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":84,"parentIndex":83,"depth":21,"type":"StaticText","rect":{"x":60.666666984558105,"y":879.6666669845581,"width":24.333332061767578,"height":24.6666259765625},"enabled":true,"hittable":true,"kind":"text","label":"<label>"},
  {"index":85,"parentIndex":84,"depth":22,"type":"StaticText","rect":{"x":60.666666984558105,"y":879.6666669845581,"width":24.333332061767578,"height":24.6666259765625},"enabled":true,"hittable":true,"kind":"text","label":"<label>"},
  {"index":86,"parentIndex":81,"depth":19,"type":"Other","rect":{"x":122,"y":870,"width":98,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":87,"parentIndex":81,"depth":19,"type":"Other","rect":{"x":220,"y":870,"width":98,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":88,"parentIndex":81,"depth":19,"type":"Other","rect":{"x":318,"y":870,"width":98,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":89,"parentIndex":88,"depth":20,"type":"Other","rect":{"x":345,"y":870,"width":44,"height":44},"enabled":true,"hittable":true,"kind":"other","label":"<label>"},
  {"index":90,"parentIndex":89,"depth":21,"type":"StaticText","rect":{"x":354.6666669845581,"y":879.6666669845581,"width":24.333343505859375,"height":24.6666259765625},"enabled":true,"hittable":true,"kind":"text","label":"<label>"},
  {"index":91,"parentIndex":90,"depth":22,"type":"StaticText","rect":{"x":354.6666669845581,"y":879.6666669845581,"width":24.333343505859375,"height":24.6666259765625},"enabled":true,"hittable":true,"kind":"text","label":"<label>"},
  {"index":92,"parentIndex":14,"depth":12,"type":"Toolbar","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"toolbar","label":"Toolbar","identifier":"Toolbar"},
  {"index":93,"parentIndex":92,"depth":13,"type":"Other","rect":{"x":0,"y":64,"width":440,"height":892},"enabled":true,"hittable":true,"kind":"other"},
  {"index":94,"parentIndex":0,"depth":1,"type":"Window","rect":{"x":0,"y":0,"width":440,"height":956},"enabled":true,"hittable":true,"kind":"window"},
  {"index":95,"parentIndex":94,"depth":2,"type":"Other","rect":{"x":0,"y":0,"width":440,"height":956},"enabled":true,"hittable":true,"kind":"other"},
  {"index":96,"parentIndex":95,"depth":3,"type":"Other","rect":{"x":0,"y":0,"width":440,"height":956},"enabled":true,"hittable":true,"kind":"other"}
 ]
}
Lingua principale
TypeScript
Stelle
5.1k
Fork
339
Merge medio
11h 54m
PR unite (30g)
745

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di callstack/agent-device

Tutte le issue di callstack/agent-device

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.