fix(list): repair game list separators and revert the android options button - #756
Merged
Conversation
FlatList's ItemSeparatorComponent stopped keeping up with the list once itemLayoutAnimation was on: rows animating in and out of a mounted list left separators attached to the wrong neighbours, so lines went missing between games and lingered under the last row. Move the line onto the row itself, drawn above every row but the first, so it moves with the row it belongs to. Round the height to the nearest pixel rather than using hairlineWidth, which fractional Android densities were dropping entirely, and mark the row non-collapsable so the wrapper survives Android's view flattening. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The android-only overflow button from #755 replaced the addend column and gesture icon with a bare dots-vertical glyph, dropping the point values and the current interaction mode from the header. Restore the shared layout on both platforms. This reverts the GameOptionsButton portion of d061fe4. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
Merged
wyne
added a commit
that referenced
this pull request
Sep 10, 2026
Merging this PR bumps `package.json` to the version below, tags the merge commit, and publishes the GitHub release. `app.config.js` reads its `version` from `package.json`, so the shipped app version follows automatically. --- ## [3.1.2](v3.1.1...v3.1.2) (2026-09-10) ### Bug Fixes * **edit-player:** give the screen a top margin and a full-height scroll area ([#747](#747)) ([d916b92](d916b92)) * **fab:** restore SwiftUI floating action button ([#753](#753)) ([698bfbe](698bfbe)) * **fab:** stop an outside tap on the open menu reaching the list ([#746](#746)) ([4cc7a35](4cc7a35)) * **game-list:** tidy the row's hierarchy, spacing and dates ([#750](#750)) ([d07ce4e](d07ce4e)) * **list:** refine game list hierarchy ([#752](#752)) ([5417264](5417264)) * **list:** repair game list separators and revert the android options button ([#756](#756)) ([7d73a70](7d73a70)) * polish android interactions ([#755](#755)) ([d061fe4](d061fe4)) * **settings:** label the analytics state in the version alert ([#745](#745)) ([29a16c2](29a16c2)) * **sheets:** make the sheet edge visible on Android ([#757](#757)) ([cee99ce](cee99ce)) * **ui:** one section label style across the app ([#748](#748)) ([0e9a7b8](0e9a7b8)) ### Infrastructure * drop --what-to-test so the iOS submission can be scheduled ([#743](#743)) ([a7a27bd](a7a27bd)) ### Miscellaneous * **deps:** bump expo to 57.0.21 and expo-glass-effect to 57.0.2 ([#751](#751)) ([bcaa6eb](bcaa6eb)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
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.
Two independent fixes to the game list and game header.
Game list separators
ItemSeparatorComponentstopped keeping up with the list onceitemLayoutAnimationwas enabled. As rows animated into and out of an already-mounted list (game creation, rematch, delete), separators stayed attached to the wrong neighbours — lines went missing between games, and one lingered under the final row.The line now lives on the row itself, rendered above every row but the first, so it moves with the row it belongs to. Two supporting details:
PixelRatio.roundToNearestPixel(1)rather thanStyleSheet.hairlineWidth; fractional Android densities were rounding the hairline away to nothing.collapsable={false}so Android's view flattening doesn't drop it.Covered by a new test that drives a mounted
ListScreenthrough prepends and deletes and asserts which rows own a line at each step.Android game options button
Reverts the
GameOptionsButtonportion of #755. That change swapped the shared layout for an android-onlydots-verticaloverflow glyph, which dropped the addend column and the current interaction-mode icon from the header on Android. Both platforms are back on the shared layout — the file is byte-identical to its pre-#755 state.Testing
npx jest— 451 tests across 45 suites passnpx tsc --noEmitcleannpx eslinton the changed files clean (one pre-existingexhaustive-depswarning inListScreen.tsx, untouched)🤖 Generated with Claude Code