From e17cda1eff6ad676300690a12f1f44e693d3beaf Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 9 Dec 2024 11:59:42 -0800 Subject: [PATCH] Add protected tag --- src/app/components/ChannelMessage.svelte | 4 ++-- src/app/components/ChannelMessageEmojiButton.svelte | 4 ++-- src/app/components/ChannelMessageMenuMobile.svelte | 4 ++-- src/app/components/EventCreate.svelte | 2 ++ src/app/components/NoteItem.svelte | 5 +++-- src/app/components/ThreadActions.svelte | 6 +++--- src/app/components/ThreadCreate.svelte | 4 ++-- src/app/components/ThreadReply.svelte | 5 ++--- src/app/state.ts | 2 ++ src/routes/spaces/[relay]/[room]/+page.svelte | 5 +++-- 10 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/app/components/ChannelMessage.svelte b/src/app/components/ChannelMessage.svelte index 0c4b2738..242b2e3c 100644 --- a/src/app/components/ChannelMessage.svelte +++ b/src/app/components/ChannelMessage.svelte @@ -20,7 +20,7 @@ import ChannelMessageEmojiButton from "@app/components/ChannelMessageEmojiButton.svelte" import ChannelMessageMenuButton from "@app/components/ChannelMessageMenuButton.svelte" import ChannelMessageMenuMobile from "@app/components/ChannelMessageMenuMobile.svelte" - import {colors, tagRoom, pubkeyLink} from "@app/state" + import {colors, tagRoom, pubkeyLink, PROTECTED} from "@app/state" import {publishDelete, publishReaction} from "@app/commands" import {pushModal} from "@app/modal" @@ -49,7 +49,7 @@ event, content, relays: [url], - tags: [tagRoom(room, url)], + tags: [tagRoom(room, url), PROTECTED], }) } } diff --git a/src/app/components/ChannelMessageEmojiButton.svelte b/src/app/components/ChannelMessageEmojiButton.svelte index 009c4e63..573d2844 100644 --- a/src/app/components/ChannelMessageEmojiButton.svelte +++ b/src/app/components/ChannelMessageEmojiButton.svelte @@ -2,7 +2,7 @@ import type {NativeEmoji} from "emoji-picker-element/shared" import EmojiButton from "@lib/components/EmojiButton.svelte" import Icon from "@lib/components/Icon.svelte" - import {tagRoom} from "@app/state" + import {tagRoom, PROTECTED} from "@app/state" import {publishReaction} from "@app/commands" export let url, room, event @@ -12,7 +12,7 @@ event, relays: [url], content: emoji.unicode, - tags: [tagRoom(room, url)], + tags: [tagRoom(room, url), PROTECTED], }) diff --git a/src/app/components/ChannelMessageMenuMobile.svelte b/src/app/components/ChannelMessageMenuMobile.svelte index 5c7fac97..1b248a45 100644 --- a/src/app/components/ChannelMessageMenuMobile.svelte +++ b/src/app/components/ChannelMessageMenuMobile.svelte @@ -8,7 +8,7 @@ import ConfirmDelete from "@app/components/ConfirmDelete.svelte" import {publishReaction} from "@app/commands" import {pushModal} from "@app/modal" - import {tagRoom} from "@app/state" + import {tagRoom, PROTECTED} from "@app/state" export let url export let room @@ -20,7 +20,7 @@ event, relays: [url], content: emoji.unicode, - tags: [tagRoom(room, url)], + tags: [tagRoom(room, url), PROTECTED], }) } diff --git a/src/app/components/EventCreate.svelte b/src/app/components/EventCreate.svelte index a083963a..cf2b3edc 100644 --- a/src/app/components/EventCreate.svelte +++ b/src/app/components/EventCreate.svelte @@ -11,6 +11,7 @@ import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" import DateTimeInput from "@lib/components/DateTimeInput.svelte" + import {PROTECTED} from "@app/state" import {getPubkeyHints} from "@app/commands" import {getEditorOptions, getEditorTags} from "@lib/editor" import {pushToast} from "@app/toast" @@ -46,6 +47,7 @@ ["start", dateToSeconds(start).toString()], ["end", dateToSeconds(end).toString()], ...getEditorTags($editor), + PROTECTED, ], }) diff --git a/src/app/components/NoteItem.svelte b/src/app/components/NoteItem.svelte index 229982c4..887162b2 100644 --- a/src/app/components/NoteItem.svelte +++ b/src/app/components/NoteItem.svelte @@ -8,6 +8,7 @@ import NoteCard from "@app/components/NoteCard.svelte" import ReactionSummary from "@app/components/ReactionSummary.svelte" import {publishDelete, publishReaction} from "@app/commands" + import {PROTECTED} from "@app/state" export let url export let event @@ -18,12 +19,12 @@ if (reaction) { publishDelete({relays: [url], event: reaction}) } else { - publishReaction({event, content, relays: [url]}) + publishReaction({event, content, tags: [PROTECTED], relays: [url]}) } } const onEmoji = (emoji: NativeEmoji) => - publishReaction({event, relays: [url], content: emoji.unicode}) + publishReaction({event, content: emoji.unicode, tags: [PROTECTED], relays: [url]}) diff --git a/src/app/components/ThreadActions.svelte b/src/app/components/ThreadActions.svelte index fd7ccafd..e61226e7 100644 --- a/src/app/components/ThreadActions.svelte +++ b/src/app/components/ThreadActions.svelte @@ -16,7 +16,7 @@ import {publishDelete, publishReaction} from "@app/commands" import {deriveNotification} from "@app/notifications" import {makeSpacePath} from "@app/routes" - import {COMMENT} from "@app/state" + import {COMMENT, PROTECTED} from "@app/state" export let url export let event @@ -39,12 +39,12 @@ if (reaction) { publishDelete({relays: [url], event: reaction}) } else { - publishReaction({event, content, relays: [url]}) + publishReaction({event, content, tags: [PROTECTED], relays: [url]}) } } const onEmoji = (emoji: NativeEmoji) => - publishReaction({event, relays: [url], content: emoji.unicode}) + publishReaction({event, content: emoji.unicode, tags: [PROTECTED], relays: [url]}) let popover: Instance diff --git a/src/app/components/ThreadCreate.svelte b/src/app/components/ThreadCreate.svelte index c48428aa..b209aa57 100644 --- a/src/app/components/ThreadCreate.svelte +++ b/src/app/components/ThreadCreate.svelte @@ -11,7 +11,7 @@ import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" import {pushToast} from "@app/toast" - import {THREAD, GENERAL, tagRoom} from "@app/state" + import {THREAD, GENERAL, tagRoom, PROTECTED} from "@app/state" import {getPubkeyHints} from "@app/commands" import {getEditorOptions, getEditorTags} from "@lib/editor" @@ -38,7 +38,7 @@ }) } - const tags = [["title", title], tagRoom(GENERAL, url), ...getEditorTags($editor)] + const tags = [["title", title], tagRoom(GENERAL, url), ...getEditorTags($editor), PROTECTED] publishThunk({ relays: [url], diff --git a/src/app/components/ThreadReply.svelte b/src/app/components/ThreadReply.svelte index 60d4dce2..0bd5da9a 100644 --- a/src/app/components/ThreadReply.svelte +++ b/src/app/components/ThreadReply.svelte @@ -2,7 +2,6 @@ import {onMount} from "svelte" import type {Readable} from "svelte/store" import {createEditor, type Editor, EditorContent} from "svelte-tiptap" - import {append} from "@welshman/lib" import {isMobile} from "@lib/html" import {fly, slideAndFade} from "@lib/transition" import Icon from "@lib/components/Icon.svelte" @@ -10,7 +9,7 @@ import ModalFooter from "@lib/components/ModalFooter.svelte" import {getEditorOptions, getEditorTags} from "@lib/editor" import {getPubkeyHints, publishComment} from "@app/commands" - import {tagRoom, GENERAL} from "@app/state" + import {tagRoom, GENERAL, PROTECTED} from "@app/state" import {pushToast} from "@app/toast" export let url @@ -22,7 +21,7 @@ if ($loading) return const content = $editor.getText({blockSeparator: "\n"}) - const tags = append(tagRoom(GENERAL, url), getEditorTags($editor)) + const tags = [...getEditorTags($editor), tagRoom(GENERAL, url), [PROTECTED]] if (!content.trim()) { return pushToast({ diff --git a/src/app/state.ts b/src/app/state.ts index 82c0d716..4d57b8c8 100644 --- a/src/app/state.ts +++ b/src/app/state.ts @@ -65,6 +65,8 @@ export const ROOM = "h" export const GENERAL = "_" +export const PROTECTED = ["-"] + export const MESSAGE = 9 export const THREAD = 11 diff --git a/src/routes/spaces/[relay]/[room]/+page.svelte b/src/routes/spaces/[relay]/[room]/+page.svelte index 3141d904..0f8b5243 100644 --- a/src/routes/spaces/[relay]/[room]/+page.svelte +++ b/src/routes/spaces/[relay]/[room]/+page.svelte @@ -13,7 +13,7 @@ import type {Readable} from "svelte/store" import type {Editor} from "svelte-tiptap" import {page} from "$app/stores" - import {sleep, append, now, ctx} from "@welshman/lib" + import {sleep, now, ctx} from "@welshman/lib" import type {TrustedEvent, EventContent} from "@welshman/util" import {createEvent, DELETE} from "@welshman/util" import {formatTimestampAsDate, publishThunk} from "@welshman/app" @@ -41,6 +41,7 @@ } from "@app/state" import {setChecked} from "@app/notifications" import {addRoomMembership, removeRoomMembership, subscribePersistent} from "@app/commands" + import {PROTECTED} from "@app/state" import {popKey} from "@app/implicit" const {room = GENERAL} = $page.params @@ -62,7 +63,7 @@ const onSubmit = ({content, tags}: EventContent) => publishThunk({ relays: [url], - event: createEvent(MESSAGE, {content, tags: append(tagRoom(room, url), tags)}), + event: createEvent(MESSAGE, {content, tags: [...tags, tagRoom(room, url), PROTECTED]}), delay: $userSettingValues.send_delay, })