Web and mobile: - Follower/following lists (tap the counts), with Follow buttons and "Remove" on your own followers. - Profile ⋯ menu: block (with confirmation) / unblock, and report with a reason and optional note. "Follows you" label, "Follow back", and a banner on profiles you've blocked. - Blocked accounts list in Settings, with unblock. Web only: /admin for the admin account: stats, open/resolved reports, resolve, suspend/unsuspend. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzFywujuH9TiuXbr9vjoX8
This commit is contained in:
@@ -65,6 +65,13 @@ export const setSharingSchema = z.object({ pause: z.enum(PAUSE_OPTIONS).nullable
|
||||
|
||||
export const REPORT_REASONS = ['spam', 'harassment', 'inappropriate', 'impersonation', 'other'] as const;
|
||||
export type ReportReason = (typeof REPORT_REASONS)[number];
|
||||
export const REPORT_REASON_LABELS: Record<ReportReason, string> = {
|
||||
spam: 'Spam or fake account',
|
||||
harassment: 'Harassment or bullying',
|
||||
inappropriate: 'Inappropriate profile or picture',
|
||||
impersonation: 'Pretending to be someone else',
|
||||
other: 'Something else',
|
||||
};
|
||||
export const reportSchema = z.object({
|
||||
reason: z.enum(REPORT_REASONS),
|
||||
note: z.string().trim().max(500).nullish(),
|
||||
|
||||
Reference in New Issue
Block a user