Skip to content

Refactor report popovers to use dialogs#38337

Draft
LiquidPL wants to merge 7 commits into
ppy:masterfrom
LiquidPL:report-dialogs-v2
Draft

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

Conversation

@LiquidPL

Copy link
Copy Markdown
Contributor

Supersedes #37638 and #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.

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants