Merge branch 'notification-read-api' into swn

This commit is contained in:
tamaina 2022-01-21 21:30:11 +09:00
commit 154e7c2e59
446 changed files with 7250 additions and 7678 deletions

View file

@ -1,7 +1,11 @@
// initial converted from https://github.com/muan/emojilib/commit/242fe68be86ed6536843b83f7e32f376468b38fb
export const emojilist = require('../emojilist.json') as {
export const unicodeEmojiCategories = ['face', 'people', 'animals_and_nature', 'food_and_drink', 'activity', 'travel_and_places', 'objects', 'symbols', 'flags'] as const;
export type UnicodeEmojiDef = {
name: string;
keywords: string[];
char: string;
category: 'people' | 'animals_and_nature' | 'food_and_drink' | 'activity' | 'travel_and_places' | 'objects' | 'symbols' | 'flags';
}[];
category: typeof unicodeEmojiCategories[number];
}
// initial converted from https://github.com/muan/emojilib/commit/242fe68be86ed6536843b83f7e32f376468b38fb
export const emojilist = require('../emojilist.json') as UnicodeEmojiDef[];

View file

@ -252,7 +252,7 @@ export function getNoteMenu(props: {
icon: 'fas fa-exclamation-circle',
text: i18n.locale.reportAbuse,
action: () => {
const u = `${url}/notes/${appearNote.id}`;
const u = appearNote.url || appearNote.uri || `${url}/notes/${appearNote.id}`;
os.popup(import('@/components/abuse-report-window.vue'), {
user: appearNote.user,
initialComment: `Note: ${u}\n-----\n`

View file

@ -5,7 +5,7 @@ import * as Acct from 'misskey-js/built/acct';
import * as os from '@/os';
import { userActions } from '@/store';
import { router } from '@/router';
import { $i } from '@/account';
import { $i, iAmModerator } from '@/account';
export function getUserMenu(user) {
const meId = $i ? $i.id : null;
@ -175,7 +175,7 @@ export function getUserMenu(user) {
action: reportAbuse
}]);
if ($i && ($i.isAdmin || $i.isModerator)) {
if (iAmModerator) {
menu = menu.concat([null, {
icon: 'fas fa-microphone-slash',
text: user.isSilenced ? i18n.locale.unsilence : i18n.locale.silence,

View file

@ -14,6 +14,10 @@ if (isTouchSupported) {
}, { passive: true });
window.addEventListener('touchend', () => {
// 子要素のtouchstartイベントでstopPropagation()が呼ばれると親要素に伝搬されずタッチされたと判定されないため、
// touchendイベントでもtouchstartイベントと同様にtrueにする
isTouchUsing = true;
isScreenTouching = false;
}, { passive: true });
}

View file

@ -1,4 +1,5 @@
import { inject, onUnmounted, Ref } from 'vue';
import { onBeforeRouteLeave } from 'vue-router';
import { i18n } from '@/i18n';
import * as os from '@/os';
@ -16,6 +17,17 @@ export function useLeaveGuard(enabled: Ref<boolean>) {
return canceled;
});
} else {
onBeforeRouteLeave(async (to, from) => {
if (!enabled.value) return true;
const { canceled } = await os.confirm({
type: 'warning',
text: i18n.locale.leaveConfirm,
});
return !canceled;
});
}
/*