fix reposts

This commit is contained in:
Martti Malmi 2023-03-06 13:51:26 +02:00
parent 375dfc001f
commit 7acf7a77d3
4 changed files with 15 additions and 10 deletions

View File

@ -48,7 +48,7 @@ class EventComponent extends Component {
this.setState({ meta });
});
this.subscriptions.push(unsub);
const replyingTo = Events.getEventReplyingTo(event);
const replyingTo = Events.getNoteReplyingTo(event);
const meta = {
npub: Key.toNostrBech32Address(event.pubkey, 'npub'),

View File

@ -6,11 +6,10 @@ import { translate as t } from '../../translations/Translation';
import Name from '../Name';
import EventComponent from './EventComponent';
import Events from '../../nostr/Events';
export default function Repost(props) {
if (!props.meta.replyingTo) {
return '';
}
const repostedEventId = Events.getRepostedEventId(props.event);
return html`
<div class="msg">
<div class="msg-content" style="padding: 12px 0 0 0;">
@ -23,7 +22,7 @@ export default function Repost(props) {
<span style="margin-left: 5px"> ${t('reposted')} </span>
</small>
</div>
<${EventComponent} id=${props.meta.replyingTo} showName=${true} />
<${EventComponent} id=${repostedEventId} showName=${true} />
</div>
</div>
`;

View File

@ -71,7 +71,7 @@ const Events = {
}
this.postsAndRepliesByUser.get(event.pubkey)?.add(event);
const replyingTo = this.getEventReplyingTo(event);
const replyingTo = this.getNoteReplyingTo(event);
const replyingToEvent = replyingTo && this.cache.get(replyingTo);
this.latestNotesAndRepliesByEveryone.add(event);
if (!replyingTo) {
@ -134,7 +134,14 @@ const Events = {
this.postsByUser.get(event.pubkey)?.add(event);
}
},
getEventReplyingTo: function (event: Event) {
getRepostedEventId(event: Event) {
const mention = event.tags?.find((tag) => tag[0] === 'e' && tag[3] === 'mention');
if (mention) {
return mention[1];
}
return event.tags?.find((tag) => tag[0] === 'e')?.[1];
},
getNoteReplyingTo: function (event: Event) {
if (event.kind !== 1) {
return undefined;
}
@ -367,9 +374,8 @@ const Events = {
const mentionIndex = event.tags?.findIndex((tag) => tag[0] === 'e' && tag[3] === 'mention');
if (event.kind === 1 && event.content === `#[${mentionIndex}]`) {
return true;
} else {
return false;
}
return false;
},
acceptEvent(event: Event) {
if (globalFilter.maxFollowDistance) {

View File

@ -128,7 +128,7 @@ export default {
posts.eventIds.forEach((eventId) => {
const event = Events.cache.get(eventId);
if (event) {
const replyingTo = Events.getEventReplyingTo(event);
const replyingTo = Events.getNoteReplyingTo(event);
if (!replyingTo) {
Events.latestNotesByFollows.add(event);
}