summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2018-11-16 16:35:13 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-11-16 16:35:13 +0900
commitd2385a0e52912632fc039598e09441b271bd1c53 (patch)
tree5f2022d89834fd13598395db16d048a4d603c9c1 /src/client
parent10.53.0 (diff)
downloadmisskey-d2385a0e52912632fc039598e09441b271bd1c53.tar.gz
misskey-d2385a0e52912632fc039598e09441b271bd1c53.tar.bz2
misskey-d2385a0e52912632fc039598e09441b271bd1c53.zip
Do not show duplicate url-preview (#3259)
Diffstat (limited to 'src/client')
-rw-r--r--src/client/app/common/scripts/note-mixin.ts6
-rw-r--r--src/client/app/common/views/components/messaging-room.message.vue5
-rw-r--r--src/client/app/desktop/views/components/note-detail.vue6
-rw-r--r--src/client/app/mobile/views/components/note-detail.vue6
4 files changed, 12 insertions, 11 deletions
diff --git a/src/client/app/common/scripts/note-mixin.ts b/src/client/app/common/scripts/note-mixin.ts
index 91b0d1d9c0..e0df788b34 100644
--- a/src/client/app/common/scripts/note-mixin.ts
+++ b/src/client/app/common/scripts/note-mixin.ts
@@ -1,5 +1,5 @@
import parse from '../../../../mfm/parse';
-import { sum } from '../../../../prelude/array';
+import { sum, unique } from '../../../../prelude/array';
import shouldMuteNote from './should-mute-note';
import MkNoteMenu from '../views/components/note-menu.vue';
import MkReactionPicker from '../views/components/reaction-picker.vue';
@@ -78,9 +78,9 @@ export default (opts: Opts = {}) => ({
urls(): string[] {
if (this.appearNote.text) {
const ast = parse(this.appearNote.text);
- return ast
+ return unique(ast
.filter(t => (t.type == 'url' || t.type == 'link') && !t.silent)
- .map(t => t.url);
+ .map(t => t.url));
} else {
return null;
}
diff --git a/src/client/app/common/views/components/messaging-room.message.vue b/src/client/app/common/views/components/messaging-room.message.vue
index 0dce57a06a..966bd54170 100644
--- a/src/client/app/common/views/components/messaging-room.message.vue
+++ b/src/client/app/common/views/components/messaging-room.message.vue
@@ -34,6 +34,7 @@
import Vue from 'vue';
import i18n from '../../../i18n';
import parse from '../../../../../mfm/parse';
+import { unique } from '../../../../../prelude/array';
export default Vue.extend({
i18n: i18n('common/views/components/messaging-room.message.vue'),
@@ -49,9 +50,9 @@ export default Vue.extend({
urls(): string[] {
if (this.message.text) {
const ast = parse(this.message.text);
- return ast
+ return unique(ast
.filter(t => (t.type == 'url' || t.type == 'link') && !t.silent)
- .map(t => t.url);
+ .map(t => t.url));
} else {
return null;
}
diff --git a/src/client/app/desktop/views/components/note-detail.vue b/src/client/app/desktop/views/components/note-detail.vue
index f86a48ec5d..eca9896877 100644
--- a/src/client/app/desktop/views/components/note-detail.vue
+++ b/src/client/app/desktop/views/components/note-detail.vue
@@ -94,7 +94,7 @@ import MkRenoteFormWindow from './renote-form-window.vue';
import MkNoteMenu from '../../../common/views/components/note-menu.vue';
import MkReactionPicker from '../../../common/views/components/reaction-picker.vue';
import XSub from './note.sub.vue';
-import { sum } from '../../../../../prelude/array';
+import { sum, unique } from '../../../../../prelude/array';
import noteSubscriber from '../../../common/scripts/note-subscriber';
export default Vue.extend({
@@ -149,9 +149,9 @@ export default Vue.extend({
urls(): string[] {
if (this.p.text) {
const ast = parse(this.p.text);
- return ast
+ return unique(ast
.filter(t => (t.type == 'url' || t.type == 'link') && !t.silent)
- .map(t => t.url);
+ .map(t => t.url));
} else {
return null;
}
diff --git a/src/client/app/mobile/views/components/note-detail.vue b/src/client/app/mobile/views/components/note-detail.vue
index 6a147f5195..001ffc5da8 100644
--- a/src/client/app/mobile/views/components/note-detail.vue
+++ b/src/client/app/mobile/views/components/note-detail.vue
@@ -92,7 +92,7 @@ import parse from '../../../../../mfm/parse';
import MkNoteMenu from '../../../common/views/components/note-menu.vue';
import MkReactionPicker from '../../../common/views/components/reaction-picker.vue';
import XSub from './note.sub.vue';
-import { sum } from '../../../../../prelude/array';
+import { sum, unique } from '../../../../../prelude/array';
import noteSubscriber from '../../../common/scripts/note-subscriber';
export default Vue.extend({
@@ -143,9 +143,9 @@ export default Vue.extend({
urls(): string[] {
if (this.p.text) {
const ast = parse(this.p.text);
- return ast
+ return unique(ast
.filter(t => (t.type == 'url' || t.type == 'link') && !t.silent)
- .map(t => t.url);
+ .map(t => t.url));
} else {
return null;
}