Skip to content

Feature/quick-rematch-with-friends#2985

Merged
veloce merged 3 commits into
lichess-org:mainfrom
MaartenD:feauture/Quick-rematch-with-friends
May 4, 2026
Merged

Feature/quick-rematch-with-friends#2985
veloce merged 3 commits into
lichess-org:mainfrom
MaartenD:feauture/Quick-rematch-with-friends

Conversation

@MaartenD

Copy link
Copy Markdown
Contributor

I created a quick rematch option on the recent games.
See attached video

Feature-Quick-rematch-with-friends-small.mp4

Fixes: #2851

@MaartenD

MaartenD commented Apr 15, 2026

Copy link
Copy Markdown
Contributor Author

Maybe i was a little to eager yesterday with showing you my result. I watched the video back and there were two questions that come to mind:

  1. what color should the dismissable (the swiping from right to left) have? Now it's color: context.lichessColors.purple
  2. i think we should show a picture and text. "
    • as text i suggest Rematch
    • as a picture a suggest the Sync icon (see attachement)

@veloce what's your opinion? Are there guidelines which i can read and follow accourding to this kind of questions? Sorry for all those questions, still a newbie ;-)

Schermafbeelding 2026-04-15 070919

@MaartenD

Copy link
Copy Markdown
Contributor Author

Hi,

Here a newer version with correct colors, text and icon.

Feature-Quick-Rematch-Colors-Icon-small.mp4

Enjoy!

@veloce

veloce commented Apr 25, 2026

Copy link
Copy Markdown
Contributor

We can't do it as is @MaartenD

From what I understand, you added a "Rematch" button to every game tile. But what does the "Rematch" do is to send a challenge to that user.

I see a couple of issues here:

  • the game was not necessarily played with a friend
  • if you challenge someone that is not your friend and does not accept challenge, it won't work
  • you used the Dismissible widget but this would conflict with the existing Slidable package in the game history screen:
  • you used random side choice, but a rematch is not supposed to be with the opposite side?

For this feature to work, it needs more logic:

  • if the game source was from lobby, it not show rematch; it probably makes sense to show the "New opponent" button then
  • if the game source was user challenge, then show a rematch button that creates a challenge with opposite side

Some caveats:

  • this will add a new button to existing ones; we probably need shorter labels, it means we'll need to introduce mobile specific labels

I'm curious to hear from other lichess team members @tom-anders and @HaonRekcef about this idea of having a "rematch" / "new opponent" slidable action. Do you think it is a good idea?

@tom-anders

Copy link
Copy Markdown
Collaborator

I like the idea in general, but yeah I think the changes you proposed are definitely needed.

@HaonRekcef

Copy link
Copy Markdown
Collaborator

Yes the changes suggested are needed,
I think this feature is cool for powerusers even if the big majority of the players will never notice or it.

@J0J0XMR

J0J0XMR commented Apr 29, 2026

Copy link
Copy Markdown

The first video UX is great! Very fast and simply - full swipe instantly requests a game.

@veloce Maybe the solution is to mark games with friends with an icon next the name? And have only those games be swipeable? So that: if game is with contact, enable rematch swipe.

Example UI:

image

@ijm8710

ijm8710 commented Apr 29, 2026

Copy link
Copy Markdown

I still stand by my idea from earlier that I championed in the issue ticket:

Rather than have a slidable that will only be able to be inconsistently supported...

Instead, Add it to the long touch menu therefore it would be more natural to Sometimes appear. Also then it would cause no conflicts with the archive game screen.

@J0J0XMR

J0J0XMR commented Apr 29, 2026

Copy link
Copy Markdown

I still stand by my idea from earlier that I championed in the issue ticket:

Rather than have a slidable that will only be able to be inconsistently supported...

Instead, Add it to the long touch menu therefore it would be more natural to Sometimes appear. Also then it would cause no conflicts with the archive game screen.

If its gonna be conditional, might as well make it easy. The entire point is a quick rematch, not a tap-and-hold-and-press rematch.

Adding the friend icon in list also helps identify friendly games.

@MaartenD

MaartenD commented May 2, 2026

Copy link
Copy Markdown
Contributor Author

We can't do it as is @MaartenD

From what I understand, you added a "Rematch" button to every game tile. But what does the "Rematch" do is to send a challenge to that user.

I see a couple of issues here:

  • the game was not necessarily played with a friend
  • if you challenge someone that is not your friend and does not accept challenge, it won't work
  • you used the Dismissible widget but this would conflict with the existing Slidable package in the game history screen:
  • you used random side choice, but a rematch is not supposed to be with the opposite side?

For this feature to work, it needs more logic:

  • if the game source was from lobby, it not show rematch; it probably makes sense to show the "New opponent" button then
  • if the game source was user challenge, then show a rematch button that creates a challenge with opposite side

Some caveats:

  • this will add a new button to existing ones; we probably need shorter labels, it means we'll need to introduce mobile specific labels

I'm curious to hear from other lichess team members @tom-anders and @HaonRekcef about this idea of having a "rematch" / "new opponent" slidable action. Do you think it is a good idea?

@veloce,

See attached video's
First is slidable options on friends game, second on game against non-friend.

Feature-Quick-rematch-with-friends-II-small.mp4
Feature-Quick-rematch-with-friends-III-small.mp4

Builder(
builder: (context) {
final opponent = pov == Side.white ? game.black : game.white;
final sideChoice = pov == Side.white

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use pov.opposite too.

@veloce

veloce commented May 4, 2026

Copy link
Copy Markdown
Contributor

We'll do it like that. As said it will be a power user feature.

@veloce veloce merged commit 5b43a3a into lichess-org:main May 4, 2026
1 check passed
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.

Quick rematch with friends

6 participants