[MOD-001] Add report, block, and safety actions - #77
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outline
Summary
Turns the discovery card's Report and Block menu actions into real safety workflows: reports are stored for moderation, blocks are user scoped and hide a blocked user's profiles from discovery, and both actions require login and are reversible.
Changes & Enhancements
reportstable (reason, optional details, status) and user scopeduser_blockstable, with self report/self block check constraints and a migration.POST /api/reportandPOST/DELETE /api/block, each gated on login, validating input and rejecting self actions.Page / App Changes
Affected Next.js Routes (Local):
/[lang](discovery feed): blocked users are excluded; Report and Block now run real workflows./[lang]/u/[id](public profile): Report and Block actions wired up.Before (Screenshot)
After (Screenshot)
Component / Storybook Changes
Affected Storybook Components (Local):
Before (Screenshot)
After (Screenshot)
Card menu safety actions:
Report dialog:
Block confirmation with undo:
Not Doing
Other (Remarks)
Safety storage reads tolerate the tables not yet existing, so the feed keeps working before the migration runs. Verified the persistence path against the local database: blocking hides a profile from discovery, reports are stored, and unblock reverses the block.
Checklists
console.log,debugger).