Conversation
|
Windows and Mac build successful in Unity Cloud! You can find a link to the downloadable artifact below. |
…for the reporting confirmation dialog
decentraland-bot
left a comment
There was a problem hiding this comment.
Re-review — "Report User" feature
Thanks for the fixes, Santiago! Here's my updated assessment:
Issue 1 — Duplicated report-user logic ✅ Fixed
The confirmation → fetch self profile → open URL pattern is now properly extracted into ReportUserHelper.ShowConfirmAndReportAsync. All 5 call sites use this shared helper. Great job.
Issue 3 — MembersListView.contextMenuSettings encapsulation ✅ Mostly fixed
MembersListView now exposes only what's needed via public Sprite ReportSprite => contextMenuSettings.ReportSprite; — that's the right approach.
However, CommunitiesBrowserView still declares the field as:
[SerializeField] public CommunityMemberListContextMenuConfiguration contextMenuSettings = null!;and the controller accesses it as view.contextMenuSettings.ReportSprite. Ideally this would follow the same pattern as MembersListView (expose a property, keep the field private). Minor nit — not blocking.
Issue 2 — BannedNotificationHandler unsubscribe — Acknowledged as intentional ✅
Remaining suggestions from the first review (still applicable):
🟡 Hardcoded #FF2D55 parsed at runtime — This color is now parsed via ColorUtility.TryParseHtmlString in even more places (at least 6 call sites). Consider a shared constant:
private static readonly Color DangerRed = ColorUtility.TryParseHtmlString("#FF2D55", out var c) ? c : Color.red;🟡 == default(Color) in ButtonWithDelegateContextMenuControlSettings — default(Color) is transparent black (0,0,0,0), which is a valid color. If someone intentionally passes transparent black, they'd get the default white/FCFCFC instead. A nullable Color? parameter would be more robust, but low risk in practice.
🟡 DOFade in AnimatePersistentNotificationCanvasGroupAsync finally block — The fade-out in the finally block runs without a cancellation token:
finally
{
notificationCanvasGroup.interactable = false;
notificationCanvasGroup.blocksRaycasts = false;
await notificationCanvasGroup.DOFade(0, ANIMATION_DURATION).ToUniTask();
}If the object is destroyed during the fade-out, this could throw. Consider adding a try/catch around it or passing a linked token.
CI Status
Tests (playmode + editmode) and builds are still pending on the latest push. No new tests added for the report-user flow.
Verdict
The two flagged issues are resolved. The remaining items are suggestions, not blockers. Looks good overall — solid refactoring with the ReportUserHelper extraction. 👍
dalkia
left a comment
There was a problem hiding this comment.
Looks good to me! Great work
Leaving some comments for consideration, non-blockers
|
@claude re-review |
|
Claude finished @m3taphysics's task in 2m 38s —— View job PR Re-Review — feat: "Report User" feature
Previously Raised Issues — Status
Non-Blocking Suggestions (acknowledged from previous reviews, still applicable)These were flagged by the previous review as 🟡 suggestions, not blocking:
No new blocking issues found. REVIEW_RESULT: PASS ✅ |
|
@claude re-review |
|
Claude finished @sandrade-dcl's task in 4m 17s —— View job PR Re-Review — feat: "Report User" feature
Previously Raised Issues — Status
No new blocking issues found in the two latest commits ( REVIEW_RESULT: PASS ✅ |
|
@claude re-review |
|
Claude finished @sandrade-dcl's task in 5m 6s —— View job PR Re-Review — feat: "Report User" feature
New Commits Since Last PASS
Previously Raised Issues — StatusAll issues from prior reviews remain resolved. No regressions introduced by the merge. New Blocking Issue Found
The Affected lines: Fix: use REVIEW_RESULT: FAIL ❌ |
…ionController.cs Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Signed-off-by: Santi Andrade <sandrade@decentraland.org>
…ionController.cs Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Signed-off-by: Santi Andrade <sandrade@decentraland.org>
|
@claude re-review |
|
Claude finished @sandrade-dcl's task in 44s —— View job PR Re-Review — feat: "Report User" feature
Previously Raised Issues — Status
All previously raised issues have been addressed. No new blocking issues found. REVIEW_RESULT: PASS ✅ |
|
Test in Org passed PR reviewed and approved by QA on both platforms following instructions. ✅ Report a user
Windows: user: reporting user: ORG.-.can.see.Report.button.can.see.the.form.mp4Mac: test user: reporting user: 25.03.2026_17.12.34_REC.-.ORG.-.can.see.report.user.form.mp4Fill in the form with users: 26.03.2026_11.45.52_REC.-.submit.report.google.mp4metamask 26.03.2026_11.54.58_REC.metamask.2.mp4Warn/Flag a user
Ban a user
Mac: 25.03.2026_17.22.21_REC.warn.and.ban.mp4Windows: warn.and.ban.user.-.org.-.windows.mp4 |
balducciv
left a comment
There was a problem hiding this comment.
Both the explorer and the web parts have been thoroughly tested and passed.
The only remaining issue is that the production evidence files are private; Mauro is addressing this, and it does not affect the end-to-end functionality.

Pull Request Description
Fix #7299
Fix #7300
Fix #7479
Fix #7765
Fix #7766
What does this PR change?
It implements the Report User feature in the Explorer side:
Ban Warningnotification: The player will receive a notification informing about a possible banning if he continues violating the rules. Clicking on it, the user will be redirected to the support webpage.Bannednotification: The player will receive a notification informing about he was banned. Clicking on it, the "Blocked Screen" modal will be opened.Un-Bannednotification: The player will receive a notification informing about he was un-banned (after being banned). Clicking on it, nothing happens.Test Steps
Report an user
--debug --report-user --dclenv zone.When your user is flagged
--debug --report-user --dclenv zone.When your user is banned
--debug --report-user --dclenv zone.Check that the feature flag is working properly
--report-user.Code Review Reference
Please review our Code Review Standards before submitting.