Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Geschlossen
#3,883 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Ein zugehöriger Pull Request wurde bereits gemerged.

  • #3912 von @jonstuebe — gemerged

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
68/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
ios, react-native, typescript
Bereich
mobile, testing-qa

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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"}
 ]
}
Vorherrschende Sprache
TypeScript
Sterne
5.1k
Forks
339
Ø Merge
11 Std. 54 Min.
Gemergte PRs (30 T.)
745

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus callstack/agent-device

Alle Issues in callstack/agent-device

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.