Skip to content

Refactor report popovers to use dialogs - #38337

Open
LiquidPL wants to merge 8 commits into
ppy:masterfrom
LiquidPL:report-dialogs-v2
Open

Refactor report popovers to use dialogs#38337
LiquidPL wants to merge 8 commits into
ppy:masterfrom
LiquidPL:report-dialogs-v2

Conversation

@LiquidPL

@LiquidPL LiquidPL commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

This PR takes a different approach from the previous PR series, by redesigning the report forms to fit well in the PopupDialog, as well as making it use the new form controls.

ReportPopover -> ReportDialog

Just a bulk rename of all related classes into their new names to avoid hassle while reviewing. Notably the new names are incorrect, since all the report forms are still popovers despite being prefixed with Dialog.

Override Content on PopupDialog

Used to add a loading overlay to the report dialog.

Add option to not hide dialog before action invoke

This is needed for the user report form, which has a confirmation message directly in the dialog, as opposed to other forms, which display the confirmation alongside the reported content.

It's something I'm the least confident about when it comes to not breaking something somewhere with other dialogs.

Add dim layer to DialogOverlay

As mentioned in #37647 (comment). Necessary since the report dialogs will be displayed over other overlays, which are already making use of the gamewide dim layer.

Set default on FormTextBox bindable

FormTextBox's Current bindable did not have a default empty value set, causing report API requests to fail because the report reason field was suddenly null instead of a string.

Refactor report popovers to use dialogs

The main commit of this pull request.

Some demos:

  • chat
Screencast_20260717_193633.webm
  • user
Screencast_20260717_193751.webm
  • comment
Screencast_20260717_193819.webm
  • api error (i used SettingsNote for this since it looks much better than just a plain red text sprite, let me know if I should revert this)
image

LiquidPL added 6 commits July 17, 2026 19:22
Used to add a loading overlay to the report dialog.
This is needed for the user report form, which has a confirmation
message directly in the dialog, as opposed to other forms, which
display the confirmation alongside the reported content.
Previously it would set the bindable to `null`, which was breaking
the report forms expecting the reason field to be an empty string
by default.
Supersedes ppy#37638 and ppy#37647.

This PR takes a different approach from the previous PR series, by
redesigning the report forms to fit well in the `PopupDialog`,
as well as making it use the new form controls.
Comment thread osu.Game.Tests/Visual/Online/TestSceneReportDialog.cs Fixed
@bdach bdach added the subjective PRs with subjective changes which have not been discussed prior. Need team consensus to proceed. label Jul 21, 2026
@bdach
bdach requested a review from peppy July 21, 2026 05:40
@peppy

peppy commented Jul 21, 2026

Copy link
Copy Markdown
Member

@LiquidPL any reason this is marked as draft?

@LiquidPL

Copy link
Copy Markdown
Contributor Author

It's because of the pull request limit (I think I have something like 20 PRs open at the moment 😅).

LiquidPL added a commit to LiquidPL/osu that referenced this pull request Aug 2, 2026
Depends on ppy#38337. Supersedes ppy#37651.

This commit adds a 'Report opponent' option in the hamburger menu on the
ranked play screen. It's effectively a shorthand for manually opening
the profile and using the report option that's available over there.
@LiquidPL

LiquidPL commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

@smoogipoo

@peppy
peppy marked this pull request as ready for review August 4, 2026 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL subjective PRs with subjective changes which have not been discussed prior. Need team consensus to proceed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Report popover in chat overlay display very awkwardly

4 participants