Repository navigation
Draw the graph's dashed lines as native dashed borders - #21
Merged
Merged
Conversation
EDGE can now draw border-dashed, per-side borders and dashed rings (NativePHP/mobile-air#548), so each dashed line, ring, elbow and box is one view instead of a column of tiny ones. The lines get their length from layout, so Display::dashesFor() and Display::elbowDashes(), which guessed row heights and placed the elbow's dashes by hand, are gone. The partials now take the lane and draw it through Lane::token(), as the solid rail does. The dashed box gets the rounded corners the web gives it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The combined/dev-null-app branch now has NativePHP/mobile-air#548, so the lock moves to it (00a6bf1) and the dashed lines, rings and elbows draw. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
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.
EDGE can now draw dashed and per-side borders natively (NativePHP/mobile-air#548). This switches the graph's dotted lines over to them.
Draft until the lock moves. The merge of #548 into mobile-air's
combined/dev-null-app(00a6bf1) is ready but not pushed yet, socomposer.lockhere still points at 8c53c6b and CI will fail the three dash tests, which need the new parser. Oncecombined/dev-null-apphas it,composer update nativephp/mobileis the last commit this needs.Every dashed line used to be a column of 1x4pt views, drawn too long because PHP can't know a row's height and then clipped. Rings were 16 rotated views, and the thread elbow placed each dash along its corner by hand. Now each is one view:
dashed-line:w-[1] border-l border-dashed, as long as its position classes make itdashed-ring:rounded-full border-2 border-dashedthread-elbow:border-l border-b rounded-bl-xl border-dashed, the web's own classesdashed-box:rounded-lg border border-dashed, which also gets the web's rounded corners backThe partials take a lane now and colour it through
Lane::token(), as the solid rail does, so custom lane colours from #15 work here too.Display::dashesFor()andDisplay::elbowDashes()had no other callers and are gone, with their tests. The tests that counted dash views now look for the one dashed border instead.Node counts
Same fixtures before and after (a feature-test render of each screen, counting every node in the tree):
On the Log that's 720 nodes of dashes and their wrappers replaced by 60 views. Longer rows save more, since
dashesFor()drew up to 250 dashes for a single row.How it looks
Checked on an iOS 26.2 simulator against the local API, with the merged mobile-air required by path for the build (not committed). Main's views were swapped in with
native:watchon the same build for the before shots.The thread elbow and the line down from the commit's dot, main on the left and this branch on the right (dark):
The same thread in light and dark, the Log with a reply hanging off its commit, and the commit page:
One difference: the small dashed rings (24pt on a deleted reply, 28pt on Account's Automatic swatch) used to be 16 round-ended dashes that nearly touched. Now they are 8 or 9 dashes with clear gaps, like a browser at 1x. The 48pt rings still have 16. Main on the left:
I couldn't find a thread with several replies or a deleted reply in the local data, so the spine between replies and the tombstone ring weren't seen on the simulator. They use the same
dashed-lineanddashed-ringpartials as the shots above. Muted and blocked returned a 404 from the local API, so the dashed empty box wasn't seen either; the mobile-air PR's demo showsrounded-lg border border-dashed.For the reviewer
composer update nativephp/mobileagain.'staged'tail is still a column of dashes. Nothing passes'staged'as a tail today, so I left it.🤖 Generated with Claude Code