From b581714387a7d5680d4ff6b02766a200e057b2e6 Mon Sep 17 00:00:00 2001 From: pancakes Date: Thu, 21 Nov 2024 18:42:36 +1000 Subject: [PATCH] [frontend/components] Don't mention yourself or local host part when composing replies (ISH-603) --- Iceshrimp.Frontend/Components/Compose.razor | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Iceshrimp.Frontend/Components/Compose.razor b/Iceshrimp.Frontend/Components/Compose.razor index 82ffe6d5..64a109a7 100644 --- a/Iceshrimp.Frontend/Components/Compose.razor +++ b/Iceshrimp.Frontend/Components/Compose.razor @@ -10,6 +10,7 @@ @inject ApiService ApiService @inject ComposeService ComposeService @inject SessionService SessionService +@inject MetadataService MetadataService @inject IStringLocalizer Loc; @inject GlobalComponentSvc GlobalComponentSvc @inject MessageService MessageService @@ -157,7 +158,7 @@ { if (replyTo != null) { - var mentions = EnumerateMentions(replyTo); + var mentions = await EnumerateMentions(replyTo); ResetState(); ReplyOrQuote = replyTo; NoteDraft.ReplyId = replyTo.Id; @@ -189,7 +190,7 @@ await _module.InvokeVoidAsync("openDialog", Dialog); } - private List EnumerateMentions(NoteBase noteBase) + private async Task> EnumerateMentions(NoteBase noteBase) { List mentions = []; if (noteBase.User.Id != SessionService.Current!.Id) @@ -203,18 +204,18 @@ mentions.Add(userMention); } - var current = $"@{SessionService.Current.Username}@{SessionService.Current.Host}"; + var instance = await MetadataService.Instance.Value; var mfmNodes = noteBase.Text != null ? Mfm.parse(noteBase.Text) : []; foreach (var node in mfmNodes) { if (node is MfmNodeTypes.MfmMentionNode mentionNode) { - mentions.Add(mentionNode.Acct); + mentions.Add(mentionNode.Acct.Replace($"@{instance.AccountDomain}", "")); } } mentions = mentions.Distinct().ToList(); - mentions.Remove(current); + mentions.Remove(SessionService.Current.Username); return mentions; }