Compare commits

..

5 Commits

Author SHA1 Message Date
syuilo
baf94f86c4 11.31.3 2019-09-03 07:28:45 +09:00
syuilo
d36b129369 Improve reaction tooltip 2019-09-03 07:25:02 +09:00
syuilo
f36d88246a Fetch more reactins 2019-09-03 07:15:53 +09:00
syuilo
03f87140b3 11.31.2 2019-09-03 06:58:19 +09:00
syuilo
1dc07f6b72 🎨 2019-09-03 06:58:01 +09:00
5 changed files with 36 additions and 6 deletions

View File

@@ -1,6 +1,16 @@
ChangeLog ChangeLog
========= =========
11.31.3 (2019/09/03)
--------------------
### 🐛Fixes
* 誰がリアクションしたか見れるやつの表示を改善
11.31.2 (2019/09/03)
--------------------
### 🐛Fixes
* 誰がリアクションしたか見れるやつの表示を改善
11.31.1 (2019/09/03) 11.31.1 (2019/09/03)
-------------------- --------------------
### 🐛Fixes ### 🐛Fixes

View File

@@ -1,7 +1,7 @@
{ {
"name": "misskey", "name": "misskey",
"author": "syuilo <i@syuilo.com>", "author": "syuilo <i@syuilo.com>",
"version": "11.31.1", "version": "11.31.3",
"codename": "daybreak", "codename": "daybreak",
"repository": { "repository": {
"type": "git", "type": "git",

View File

@@ -3,13 +3,16 @@
<div class="buebdbiu" ref="popover" v-if="show"> <div class="buebdbiu" ref="popover" v-if="show">
<i18n path="few-users" v-if="users.length <= 10"> <i18n path="few-users" v-if="users.length <= 10">
<span slot="users"> <span slot="users">
<mk-user-name v-for="u in users" :user="u" :nowrap="false" :key="u.id"/> <b v-for="u in users" :key="u.id" style="margin-right: 8px;">
<mk-avatar :user="u" style="width: 24px; height: 24px; margin-right: 2px;"/>
<mk-user-name :user="u" :nowrap="false" style="line-height: 24px;"/>
</b>
</span> </span>
<mk-reaction-icon slot="reaction" :reaction="reaction" ref="icon" /> <mk-reaction-icon slot="reaction" :reaction="reaction" ref="icon" />
</i18n> </i18n>
<i18n path="many-users" v-if="10 < users.length"> <i18n path="many-users" v-if="10 < users.length">
<span slot="users">{{ users.slice(0, 10).join(', ') }}</span> <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" /> <mk-reaction-icon slot="reaction" :reaction="reaction" ref="icon" />
</i18n> </i18n>
</div> </div>
@@ -31,6 +34,10 @@ export default Vue.extend({
type: Array, type: Array,
required: true, required: true,
}, },
count: {
type: Number,
required: true,
},
source: { source: {
required: true, required: true,
} }

View File

@@ -101,9 +101,11 @@ export default Vue.extend({
openDetails() { openDetails() {
if (this.$root.isMobile) return; if (this.$root.isMobile) return;
this.$root.api('notes/reactions', { this.$root.api('notes/reactions', {
noteId: this.note.id noteId: this.note.id,
type: this.reaction,
limit: 11
}).then((reactions: any[]) => { }).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()) .sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime())
.map(x => x.user); .map(x => x.user);
@@ -112,6 +114,7 @@ export default Vue.extend({
this.details = this.$root.new(XDetails, { this.details = this.$root.new(XDetails, {
reaction: this.reaction, reaction: this.reaction,
users, users,
count: this.count,
source: this.$refs.reaction source: this.$refs.reaction
}); });
}); });

View File

@@ -4,6 +4,8 @@ import define from '../../define';
import { getNote } from '../../common/getters'; import { getNote } from '../../common/getters';
import { ApiError } from '../../error'; import { ApiError } from '../../error';
import { NoteReactions } from '../../../../models'; import { NoteReactions } from '../../../../models';
import { DeepPartial } from 'typeorm';
import { NoteReaction } from '../../../../models/entities/note-reaction';
export const meta = { export const meta = {
desc: { desc: {
@@ -24,6 +26,10 @@ export const meta = {
} }
}, },
type: {
validator: $.optional.nullable.str,
},
limit: { limit: {
validator: $.optional.num.range(1, 100), validator: $.optional.num.range(1, 100),
default: 10 default: 10
@@ -70,7 +76,11 @@ export default define(meta, async (ps, user) => {
const query = { const query = {
noteId: note.id noteId: note.id
}; } as DeepPartial<NoteReaction>;
if (ps.type) {
query.reaction = ps.type;
}
const reactions = await NoteReactions.find({ const reactions = await NoteReactions.find({
where: query, where: query,