Improve reaction tooltip
This commit is contained in:
parent
f36d88246a
commit
d36b129369
3 changed files with 20 additions and 4 deletions
|
@ -12,7 +12,7 @@
|
|||
</i18n>
|
||||
<i18n path="many-users" v-if="10 < users.length">
|
||||
<span slot="users">{{ users.slice(0, 10).join(', ') }}</span>
|
||||
<span slot="ommited">{{ users.length - 10 }}</span>
|
||||
<span slot="ommited">{{ count - 10 }}</span>
|
||||
<mk-reaction-icon slot="reaction" :reaction="reaction" ref="icon" />
|
||||
</i18n>
|
||||
</div>
|
||||
|
@ -34,6 +34,10 @@ export default Vue.extend({
|
|||
type: Array,
|
||||
required: true,
|
||||
},
|
||||
count: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
source: {
|
||||
required: true,
|
||||
}
|
||||
|
|
|
@ -102,9 +102,10 @@ export default Vue.extend({
|
|||
if (this.$root.isMobile) return;
|
||||
this.$root.api('notes/reactions', {
|
||||
noteId: this.note.id,
|
||||
limit: 30
|
||||
type: this.reaction,
|
||||
limit: 11
|
||||
}).then((reactions: any[]) => {
|
||||
const users = reactions.filter(x => x.type === this.reaction)
|
||||
const users = reactions
|
||||
.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime())
|
||||
.map(x => x.user);
|
||||
|
||||
|
@ -113,6 +114,7 @@ export default Vue.extend({
|
|||
this.details = this.$root.new(XDetails, {
|
||||
reaction: this.reaction,
|
||||
users,
|
||||
count: this.count,
|
||||
source: this.$refs.reaction
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,6 +4,8 @@ import define from '../../define';
|
|||
import { getNote } from '../../common/getters';
|
||||
import { ApiError } from '../../error';
|
||||
import { NoteReactions } from '../../../../models';
|
||||
import { DeepPartial } from 'typeorm';
|
||||
import { NoteReaction } from '../../../../models/entities/note-reaction';
|
||||
|
||||
export const meta = {
|
||||
desc: {
|
||||
|
@ -24,6 +26,10 @@ export const meta = {
|
|||
}
|
||||
},
|
||||
|
||||
type: {
|
||||
validator: $.optional.nullable.str,
|
||||
},
|
||||
|
||||
limit: {
|
||||
validator: $.optional.num.range(1, 100),
|
||||
default: 10
|
||||
|
@ -70,7 +76,11 @@ export default define(meta, async (ps, user) => {
|
|||
|
||||
const query = {
|
||||
noteId: note.id
|
||||
};
|
||||
} as DeepPartial<NoteReaction>;
|
||||
|
||||
if (ps.type) {
|
||||
query.reaction = ps.type;
|
||||
}
|
||||
|
||||
const reactions = await NoteReactions.find({
|
||||
where: query,
|
||||
|
|
Loading…
Reference in a new issue