フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 (#13895)
* chore: improve withReplies toggle for user following * chore: improve withReplies toggle for list * docs(changelog): フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 * Fix CHANGELOG.md * docs(changelog): update insertion position --------- Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
This commit is contained in:
parent
c7354c5e30
commit
0bb5ac0fca
@ -66,6 +66,7 @@
|
|||||||
- Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正
|
- Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正
|
||||||
- Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正
|
- Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正
|
||||||
- Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正
|
- Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正
|
||||||
|
- Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949)
|
- Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949)
|
||||||
|
@ -133,22 +133,25 @@ async function removeUser(item, ev) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function showMembershipMenu(item, ev) {
|
async function showMembershipMenu(item, ev) {
|
||||||
|
const withRepliesRef = ref(item.withReplies);
|
||||||
os.popupMenu([{
|
os.popupMenu([{
|
||||||
text: item.withReplies ? i18n.ts.hideRepliesToOthersInTimeline : i18n.ts.showRepliesToOthersInTimeline,
|
type: 'switch',
|
||||||
icon: item.withReplies ? 'ti ti-messages-off' : 'ti ti-messages',
|
text: i18n.ts.showRepliesToOthersInTimeline,
|
||||||
action: async () => {
|
icon: 'ti ti-messages',
|
||||||
|
ref: withRepliesRef,
|
||||||
|
}], ev.currentTarget ?? ev.target);
|
||||||
|
watch(withRepliesRef, withReplies => {
|
||||||
misskeyApi('users/lists/update-membership', {
|
misskeyApi('users/lists/update-membership', {
|
||||||
listId: list.value.id,
|
listId: list.value!.id,
|
||||||
userId: item.userId,
|
userId: item.userId,
|
||||||
withReplies: !item.withReplies,
|
withReplies,
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
paginationEl.value.updateItem(item.id, (old) => ({
|
paginationEl.value!.updateItem(item.id, (old) => ({
|
||||||
...old,
|
...old,
|
||||||
withReplies: !item.withReplies,
|
withReplies,
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
},
|
});
|
||||||
}], ev.currentTarget ?? ev.target);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function deleteList() {
|
async function deleteList() {
|
||||||
|
@ -17,6 +17,7 @@ import { notesSearchAvailable, canSearchNonLocalNotes } from '@/scripts/check-pe
|
|||||||
import { IRouter } from '@/nirax.js';
|
import { IRouter } from '@/nirax.js';
|
||||||
import { antennasCache, rolesCache, userListsCache } from '@/cache.js';
|
import { antennasCache, rolesCache, userListsCache } from '@/cache.js';
|
||||||
import { mainRouter } from '@/router/main.js';
|
import { mainRouter } from '@/router/main.js';
|
||||||
|
import { MenuItem } from '@/types/menu.js';
|
||||||
|
|
||||||
export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter = mainRouter) {
|
export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter = mainRouter) {
|
||||||
const meId = $i ? $i.id : null;
|
const meId = $i ? $i.id : null;
|
||||||
@ -82,15 +83,6 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function toggleWithReplies() {
|
|
||||||
os.apiWithDialog('following/update', {
|
|
||||||
userId: user.id,
|
|
||||||
withReplies: !user.withReplies,
|
|
||||||
}).then(() => {
|
|
||||||
user.withReplies = !user.withReplies;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function toggleNotify() {
|
async function toggleNotify() {
|
||||||
os.apiWithDialog('following/update', {
|
os.apiWithDialog('following/update', {
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
@ -155,7 +147,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let menu = [{
|
let menu: MenuItem[] = [{
|
||||||
icon: 'ti ti-at',
|
icon: 'ti ti-at',
|
||||||
text: i18n.ts.copyUsername,
|
text: i18n.ts.copyUsername,
|
||||||
action: () => {
|
action: () => {
|
||||||
@ -314,15 +306,25 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
|||||||
|
|
||||||
// フォローしたとしても user.isFollowing はリアルタイム更新されないので不便なため
|
// フォローしたとしても user.isFollowing はリアルタイム更新されないので不便なため
|
||||||
//if (user.isFollowing) {
|
//if (user.isFollowing) {
|
||||||
|
const withRepliesRef = ref(user.withReplies);
|
||||||
menu = menu.concat([{
|
menu = menu.concat([{
|
||||||
icon: user.withReplies ? 'ti ti-messages-off' : 'ti ti-messages',
|
type: 'switch',
|
||||||
text: user.withReplies ? i18n.ts.hideRepliesToOthersInTimeline : i18n.ts.showRepliesToOthersInTimeline,
|
icon: 'ti ti-messages',
|
||||||
action: toggleWithReplies,
|
text: i18n.ts.showRepliesToOthersInTimeline,
|
||||||
|
ref: withRepliesRef,
|
||||||
}, {
|
}, {
|
||||||
icon: user.notify === 'none' ? 'ti ti-bell' : 'ti ti-bell-off',
|
icon: user.notify === 'none' ? 'ti ti-bell' : 'ti ti-bell-off',
|
||||||
text: user.notify === 'none' ? i18n.ts.notifyNotes : i18n.ts.unnotifyNotes,
|
text: user.notify === 'none' ? i18n.ts.notifyNotes : i18n.ts.unnotifyNotes,
|
||||||
action: toggleNotify,
|
action: toggleNotify,
|
||||||
}]);
|
}]);
|
||||||
|
watch(withRepliesRef, (withReplies) => {
|
||||||
|
misskeyApi('following/update', {
|
||||||
|
userId: user.id,
|
||||||
|
withReplies,
|
||||||
|
}).then(() => {
|
||||||
|
user.withReplies = withReplies;
|
||||||
|
});
|
||||||
|
});
|
||||||
//}
|
//}
|
||||||
|
|
||||||
menu = menu.concat([{ type: 'divider' }, {
|
menu = menu.concat([{ type: 'divider' }, {
|
||||||
|
Loading…
Reference in New Issue
Block a user