Skip to content

Defer swipe score commits until gesture end#635

Open
wyne wants to merge 3 commits into
mainfrom
codex/defer-swipe-score-commits
Open

Defer swipe score commits until gesture end#635
wyne wants to merge 3 commits into
mainfrom
codex/defer-swipe-score-commits

Conversation

@wyne

@wyne wyne commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • keep swipe score previews on shared values while dragging instead of dispatching every crossed notch
  • provide optimistic shared score values to AdditionTile so before/current/after score text updates immediately during swipe
  • flush the accumulated swipe delta to Redux once on gesture end/finalize with a one-shot guard

Testing

  • npm run lint
  • npm test -- --runTestsByPath src/components/Interactions/Swipe/Swipe.test.tsx --runInBand --watchman=false --coverage=false
  • npm test -- --watchman=false --runInBand

@github-actions

Copy link
Copy Markdown
Contributor

Coverage after merging codex/defer-swipe-score-commits into main will be

53.46%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
redux
   GamesSlice.ts54.09%27.50%56.52%64.58%101, 109, 131–133, 148, 167, 178, 185, 187, 190–192, 242, 256, 269, 278–279, 279, 279, 285, 285, 285–286, 288, 29, 290–291, 294, 294, 294, 294, 294–295, 298–299, 301, 303, 303, 303, 303, 303–304, 306, 306, 306, 308–309, 312, 312, 312, 314, 52, 63, 80, 85–86, 86, 86, 98–99, 99, 99
   PlayersSlice.ts73.03%75%66.67%75%103, 105, 110–112, 114, 114, 114, 123, 126, 33, 41, 50–51, 64, 68–69
   SettingsSlice.ts38.30%25%31.58%45.83%101, 104, 51, 54, 57, 63, 66, 72, 75, 84, 84, 84, 87, 90, 93, 98
   backup.ts0%0%0%0%11, 27–29, 31, 45–49, 51, 51, 51–52, 57, 60, 64–66, 71, 71, 71, 73–75, 78–79, 81–82, 85, 85, 85, 85, 85–87, 90–93, 95, 97
   hooks.ts100%100%100%100%
   selectors.ts100%100%100%100%
   store.ts0%0%0%0%10, 12, 12, 12–13, 13, 13–15, 18, 21–23, 23, 23, 23, 23–24, 28, 54, 61, 68, 75, 92
   testStore.ts0%100%0%0%11–15, 20–23, 25, 42–44, 5
src
   Analytics.ts100%100%100%100%
   ColorPalette.ts100%100%100%100%
   Logger.ts91.23%87.50%81.82%94.74%14–15, 22
   Navigation.tsx0%0%0%0%129, 129, 129, 39, 41–45, 45, 45, 48–49, 49, 49, 53–54, 56, 61, 61, 61–62, 62, 62–63, 75, 75, 78, 84–85
   constants.ts100%100%100%100%
   theme.ts93.75%85.71%100%100%79
src/components
   EditGame.tsx81.40%70%71.43%88.46%25, 39, 64, 64, 64–65
   FloatingActionButton.tsx60.87%100%42.86%64.29%31, 34–35, 45–46
   GameListItem.tsx0%0%0%0%115, 19, 19, 19–22, 22, 22–23, 23, 23–25, 25, 25–27, 27, 27–29, 29, 29–30, 39–41, 43, 43, 43, 45–51, 51, 51, 51, 51, 53–54, 60–62, 64, 72, 83, 83, 90, 90, 97
   GameListItemPlayerName.tsx100%100%100%100%
   MenuOpenContext.tsx50%100%33.33%60%14–15
   PlayerListItem.tsx0%0%0%0%123, 123, 134, 24, 32–34, 34, 34–38, 40, 40, 40, 40, 40–41, 41, 41–42, 42, 42, 44–45, 56, 63–64, 66, 72–73, 76, 79, 82–83, 90, 93, 93, 96, 96, 96–97, 99
   ScoreLogTable.tsx92.59%82.35%100%96.15%50, 52, 54, 54
src/components/AppInfo
   RotatingIcon.tsx0%0%0%0%18–19, 21–24, 26, 28–30, 37–38, 40, 40, 40–41, 44, 44, 44–48, 51, 53–54, 59
   SeedData.ts0%100%0%0%17, 47, 49–50, 52, 54–56, 58–60, 62, 68, 71, 82–85
src/components/BigButtons
   BigButton.tsx0%0%0%0%18, 18–20, 22–23, 23, 25, 25–26, 26, 48
src/components/Boards
   ListBoard.tsx85.48%67.44%83.33%98.41%167–168, 181, 184, 186, 193, 215, 27, 31, 53, 57, 57, 61, 66, 97
   PlayerTile.tsx0%0%0%0%26, 36, 36, 36, 36, 36–37, 37, 37, 37, 37, 39–46, 46, 46, 48–49, 52–53, 55, 65, 65, 82
   TileBoard.tsx97.47%93.10%100%100%75, 89
src/components/Buttons
   AppSettingsButton.tsx100%100%100%100%
   BackButton.tsx0%100%0%0%16–18, 20–21
   GameOptionsButton.tsx53.40%45%75%54.90%100, 118, 118, 118, 118, 118, 118, 118, 120–122, 124–126, 128–130, 132–135, 137–139, 141–143, 150, 156–157, 168, 170, 170, 176, 176, 176, 176, 38, 44, 46, 56, 63, 71, 92, 96
   HeaderButton.tsx100%100%100%100%
src/components/ColorPalettes
   ColorSelector.tsx100%100%100%100%
   PalettePreview.tsx0%0%0%0%10–12, 14, 19, 19, 25
   PaletteSelector.tsx0%0%0%0%13, 15–18, 20, 22, 22, 22, 24–25, 31, 37, 40, 45, 56
src/components/Headers
   RoundHeaderTitle.tsx0%0%0%0%12–14, 16, 18, 18, 18, 20–21, 21, 21–22, 22, 22, 24–25, 27–28, 28, 28, 28, 28, 30–31, 31, 34–35, 44–45, 45, 45, 47–49, 57, 59, 62, 62, 62, 62, 64, 64, <

# Conflicts:
#	src/components/Interactions/Swipe/Swipe.test.tsx
#	src/components/Interactions/Swipe/Swipe.tsx
#	src/components/PlayerTiles/AdditionTile/AdditionTile.tsx
@github-actions

Copy link
Copy Markdown
Contributor

Coverage after merging codex/defer-swipe-score-commits into main will be

61.10%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
redux
   GamesSlice.ts52.73%26.19%54.17%63.64%102–103, 103, 103, 105, 113–114, 114, 114, 116, 124, 146–148, 163, 182, 193, 200, 202, 205–207, 271, 284, 293–294, 294, 294, 300, 300, 300–301, 303, 305–306, 309, 309, 309, 309, 309–310, 313–314, 316, 318, 318, 318, 318, 318–319, 321, 321, 321, 323–324, 327, 327, 327, 329, 33, 56, 67, 84, 89–90, 90, 90
   PlayersSlice.ts89.91%96.67%88.46%86.79%103, 105, 113, 33, 50–51, 68–69
   SettingsSlice.ts53.85%66.67%45%57.69%100, 103, 108, 111, 114, 58, 61, 67, 70, 73, 82, 85, 94
   backup.ts0%0%0%0%11, 27–29, 31, 45–49, 51, 51, 51–52, 57, 60, 64–66, 71, 71, 71, 73–75, 78–79, 81–82, 85, 85, 85, 85, 85–87, 90–93, 95, 97
   hooks.ts100%100%100%100%
   selectors.ts100%100%100%100%
   store.ts0%0%0%0%10, 12, 12, 12–13, 13, 13–15, 18, 21–23, 23, 23, 23, 23–24, 29, 33, 60, 67, 74, 81, 99
   testStore.ts0%100%0%0%11–15, 20–23, 25, 42–44, 5
src
   Analytics.ts100%100%100%100%
   ColorPalette.ts100%100%100%100%
   Logger.ts91.23%87.50%81.82%94.74%14–15, 22
   Navigation.tsx75.68%72.73%62.50%83.33%45, 49, 70, 73, 79–80
   constants.ts100%100%100%100%
   theme.ts93.75%85.71%100%100%79
src/components
   EditGame.tsx79.63%75%66.67%84.85%35, 49, 62–63, 86, 86, 86–87
   FloatingActionButton.tsx93.75%100%88.89%95.24%42
   GameListItem.tsx66.10%47.83%100%73.33%103, 20, 23–24, 24, 24–26, 26, 26–28, 28, 28–30, 30, 30–31, 73
   GameListItemPlayerName.tsx100%100%100%100%
   MenuOpenContext.tsx87.50%100%66.67%100%
   PlayerListItem.tsx0%0%0%0%123, 123, 134, 24, 32–34, 34, 34–38, 40, 40, 40, 40, 40–41, 41, 41–42, 42, 42, 44–45, 56, 63–64, 66, 72–73, 76, 79, 82–83, 90, 93, 93, 96, 96, 96–97, 99
   ScoreLogTable.tsx92.59%82.35%100%96.15%50, 52, 54, 54
   SplashOverlay.tsx0%0%0%0%22–24, 24, 24, 26–28, 30, 32–33, 35, 37, 40, 40, 40, 43, 49, 53, 58, 74
src/components/AppInfo
   RotatingIcon.tsx0%0%0%0%18–19, 21–24, 26, 28–30, 37–38, 40, 40, 40–41, 44, 44, 44–48, 51, 53–54, 59
   SeedData.ts0%100%0%0%17, 47, 49–50, 52, 54–56, 58–60, 62, 68, 71, 82–85
src/components/BigButtons
   BigButton.tsx0%0%0%0%18, 18–20, 22–23, 23, 25, 25–26, 26, 48
src/components/Boards
   ListBoard.tsx86.81%72.73%84.21%98.57%123, 180, 206–207, 220, 223, 262, 29, 33, 59–61, 84, 84, 88, 92
   PlayerTile.tsx0%0%0%0%29, 39, 39, 39, 39, 39–40, 40, 40, 40, 40, 42–46, 46, 46–47, 47, 47, 47, 47–48, 48, 48–50, 50, 50, 52–54, 54, 54, 56, 59, 59, 63–64, 67–68, 70, 72, 82, 82, 99
   TileBoard.tsx96.39%90.32%100%100%18, 78, 92
src/components/Buttons
   AppSettingsButton.tsx100%100%100%100%
   BackButton.tsx0%100%0%0%16–18, 20–21
   GameOptionsButton.tsx51.85%42.86%69.23%54.72%102, 122, 122, 122–123, 125–126, 130, 130, 130, 130, 130, 130, 130, 132–133, 135–136, 138–139, 141–144, 146–148, 150–152, 159, 165–166, 177, 179, 179, 185, 185, 185, 185, 40, 46, 48, 58, 65, 73, 94, 98
   HeaderButton.tsx100%100%100%100%
src/components/ColorPalettes
   ColorSelector.tsx100%100%100%100%
   PalettePreview.tsx0%0%0%0%10–12, 14, 19, 19, 25
   PaletteSelector.tsx0%0%0%0%13, 15–18, 20, 22, 22, 22, 24–25, 31, 37, 40, 45, 56
src/components/Headers
   RoundHeaderTitle.tsx0%0%0%0%12–14, 16, 18, 18, 18, 20–21, 21, 21–22, 22, 22, 24–25, 27–28, 28, 28, 28, 28, 30–31, 31, 34–35, 44–45, 45, 45, 47–49, 57, 59, 62, 62, 62, 62, 64, 64, 70, 70, 70, 70,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant