From be7a42d95142571e106422b9f7cc0d5eca7eedfb Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Tue, 14 Jan 2025 17:23:27 -0800 Subject: [PATCH] Add reports to channel messages --- src/app/commands.ts | 24 +++++++ src/app/components/ChannelMessage.svelte | 2 +- src/app/components/ChannelMessageMenu.svelte | 13 ++++ src/app/components/EventReport.svelte | 73 ++++++++++++++++++++ src/app/components/EventReportDetails.svelte | 55 +++++++++++++++ src/app/components/NoteItem.svelte | 2 +- src/app/components/ReactionSummary.svelte | 36 ++++++++-- src/app/components/ThreadActions.svelte | 2 +- src/app/components/ThreadMenu.svelte | 13 ++++ src/app/components/ThunkStatus.svelte | 14 ++-- 10 files changed, 218 insertions(+), 16 deletions(-) create mode 100644 src/app/components/EventReport.svelte create mode 100644 src/app/components/EventReportDetails.svelte diff --git a/src/app/commands.ts b/src/app/commands.ts index 5f9b4ad9..b5c42ec6 100644 --- a/src/app/commands.ts +++ b/src/app/commands.ts @@ -2,6 +2,7 @@ import {get} from "svelte/store" import {ctx, sample, uniq, sleep, chunk, equals} from "@welshman/lib" import { DELETE, + REPORT, PROFILE, INBOX_RELAYS, RELAYS, @@ -429,6 +430,29 @@ export const makeDelete = ({event}: {event: TrustedEvent}) => { export const publishDelete = ({relays, event}: {relays: string[]; event: TrustedEvent}) => publishThunk({event: makeDelete({event}), relays}) +export type ReportParams = { + event: TrustedEvent + content: string + reason: string +} + +export const makeReport = ({event, reason, content}: ReportParams) => { + const tags = [ + ["p", event.pubkey], + ["e", event.id, reason], + ] + + return createEvent(REPORT, {content, tags}) +} + +export const publishReport = ({ + relays, + event, + reason, + content, +}: ReportParams & {relays: string[]}) => + publishThunk({event: makeReport({event, reason, content}), relays}) + export type ReactionParams = { event: TrustedEvent content: string diff --git a/src/app/components/ChannelMessage.svelte b/src/app/components/ChannelMessage.svelte index 6e90f4ca..5b918c95 100644 --- a/src/app/components/ChannelMessage.svelte +++ b/src/app/components/ChannelMessage.svelte @@ -82,7 +82,7 @@
- +
+ {:else} +
  • + +
  • {/if} diff --git a/src/app/components/EventReport.svelte b/src/app/components/EventReport.svelte new file mode 100644 index 00000000..e0848f4f --- /dev/null +++ b/src/app/components/EventReport.svelte @@ -0,0 +1,73 @@ + + +
    + +
    Report Content
    +
    Flag inappropriate content.
    +
    + +

    Reason*

    + +

    Please select a reason for your report.

    +
    + +

    Details

    +