Infer room/protected tag from parent event in reactions and deletes

This commit is contained in:
Jon Staab
2024-12-16 13:33:34 -08:00
parent cd8d8b548f
commit fe789c461d
7 changed files with 44 additions and 40 deletions
+2 -7
View File
@@ -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, PROTECTED} from "@app/state"
import {colors} from "@app/state"
import {publishDelete, publishReaction} from "@app/commands"
import {pushModal} from "@app/modal"
@@ -47,12 +47,7 @@
if (reaction) {
publishDelete({relays: [url], event: reaction})
} else {
publishReaction({
event,
content,
relays: [url],
tags: [tagRoom(room, url), PROTECTED],
})
publishReaction({event, content, relays: [url]})
}
}
</script>
@@ -1,19 +1,17 @@
<script lang="ts">
import {noop} from "@welshman/lib"
import type {NativeEmoji} from "emoji-picker-element/shared"
import EmojiButton from "@lib/components/EmojiButton.svelte"
import Icon from "@lib/components/Icon.svelte"
import {tagRoom, PROTECTED} from "@app/state"
import {publishReaction} from "@app/commands"
export let url, room, event
// Tell svelte-check to shut up
noop(room)
const onEmoji = (emoji: NativeEmoji) =>
publishReaction({
event,
relays: [url],
content: emoji.unicode,
tags: [tagRoom(room, url), PROTECTED],
})
publishReaction({event, relays: [url], content: emoji.unicode})
</script>
<EmojiButton {onEmoji} class="btn join-item btn-xs">
@@ -8,20 +8,13 @@
import ConfirmDelete from "@app/components/ConfirmDelete.svelte"
import {publishReaction} from "@app/commands"
import {pushModal} from "@app/modal"
import {tagRoom, PROTECTED} from "@app/state"
export let url
export let room
export let event
const onEmoji = (emoji: NativeEmoji) => {
history.back()
publishReaction({
event,
relays: [url],
content: emoji.unicode,
tags: [tagRoom(room, url), PROTECTED],
})
publishReaction({event, relays: [url], content: emoji.unicode})
}
const showEmojiPicker = () => pushModal(EmojiPicker, {onClick: onEmoji}, {replaceState: true})
+2 -3
View File
@@ -8,7 +8,6 @@
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
@@ -19,12 +18,12 @@
if (reaction) {
publishDelete({relays: [url], event: reaction})
} else {
publishReaction({event, content, tags: [PROTECTED], relays: [url]})
publishReaction({event, content, relays: [url]})
}
}
const onEmoji = (emoji: NativeEmoji) =>
publishReaction({event, content: emoji.unicode, tags: [PROTECTED], relays: [url]})
publishReaction({event, content: emoji.unicode, relays: [url]})
</script>
<NoteCard {event} class="card2 bg-alt">
+4 -3
View File
@@ -15,8 +15,9 @@
export let reactionClass = ""
export let noTooltip = false
const filters = [{kinds: [REACTION], "#e": [event.id]}]
const reactions = deriveEvents(repository, {filters})
const reactions = deriveEvents(repository, {
filters: [{kinds: [REACTION], "#e": [event.id]}],
})
$: groupedReactions = groupBy(
e => e.content,
@@ -26,7 +27,7 @@
onMount(() => {
load({
relays,
filters,
filters: [{kinds: [REACTION, DELETE], "#e": [event.id]}],
onEvent: batch(300, (events: TrustedEvent[]) => {
load({
relays,
+2 -3
View File
@@ -17,7 +17,6 @@
import {publishDelete, publishReaction} from "@app/commands"
import {notifications} from "@app/notifications"
import {makeSpacePath} from "@app/routes"
import {PROTECTED} from "@app/state"
export let url
export let event
@@ -39,12 +38,12 @@
if (reaction) {
publishDelete({relays: [url], event: reaction})
} else {
publishReaction({event, content, tags: [PROTECTED], relays: [url]})
publishReaction({event, content, relays: [url]})
}
}
const onEmoji = (emoji: NativeEmoji) =>
publishReaction({event, content: emoji.unicode, tags: [PROTECTED], relays: [url]})
publishReaction({event, content: emoji.unicode, relays: [url]})
let popover: Instance