forked from mirrors/misskey
custom(mknote-menu-extract)
This commit is contained in:
parent
9b0b459731
commit
66c75896fd
4 changed files with 27 additions and 25 deletions
|
|
@ -5,7 +5,7 @@
|
||||||
- Feat: 既存のアカウントの設定画面から外部 OIDC アカウントを連携・解除できるように
|
- Feat: 既存のアカウントの設定画面から外部 OIDC アカウントを連携・解除できるように
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
-
|
- Enhance: ノートのフッターに「詳細」「リモートで表示」ボタンを追加 (メニューから移動)
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
-
|
-
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,9 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</template>
|
</template>
|
||||||
</MkReactionsViewer>
|
</MkReactionsViewer>
|
||||||
<footer :class="$style.footer">
|
<footer :class="$style.footer">
|
||||||
|
<button :class="$style.footerButton" class="_button" :aria-label="i18n.ts.details" @click="openDetail()">
|
||||||
|
<i class="ti ti-info-circle"></i>
|
||||||
|
</button>
|
||||||
<button :class="$style.footerButton" class="_button" @click="reply()">
|
<button :class="$style.footerButton" class="_button" @click="reply()">
|
||||||
<i class="ti ti-arrow-back-up"></i>
|
<i class="ti ti-arrow-back-up"></i>
|
||||||
<p v-if="appearNote.repliesCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.repliesCount) }}</p>
|
<p v-if="appearNote.repliesCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.repliesCount) }}</p>
|
||||||
|
|
@ -154,6 +157,9 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<button v-if="prefer.s.showClipButtonInNoteFooter" ref="clipButton" :class="$style.footerButton" class="_button" @mousedown.prevent="clip()">
|
<button v-if="prefer.s.showClipButtonInNoteFooter" ref="clipButton" :class="$style.footerButton" class="_button" @mousedown.prevent="clip()">
|
||||||
<i class="ti ti-paperclip"></i>
|
<i class="ti ti-paperclip"></i>
|
||||||
</button>
|
</button>
|
||||||
|
<button v-if="remoteUrl" :class="$style.footerButton" class="_button" :aria-label="i18n.ts.showOnRemote" @click="showOnRemote()">
|
||||||
|
<i class="ti ti-external-link"></i>
|
||||||
|
</button>
|
||||||
<button ref="menuButton" :class="$style.footerButton" class="_button" @mousedown.prevent="showMenu()">
|
<button ref="menuButton" :class="$style.footerButton" class="_button" @mousedown.prevent="showMenu()">
|
||||||
<i class="ti ti-dots"></i>
|
<i class="ti ti-dots"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -290,6 +296,7 @@ if (noteViewInterruptors.length > 0) {
|
||||||
|
|
||||||
const isRenote = Misskey.note.isPureRenote(note);
|
const isRenote = Misskey.note.isPureRenote(note);
|
||||||
const appearNote = getAppearNote(note) ?? note;
|
const appearNote = getAppearNote(note) ?? note;
|
||||||
|
const remoteUrl = appearNote.url ?? appearNote.uri ?? null;
|
||||||
const { $note: $appearNote, subscribe: subscribeManuallyToNoteCapture } = useNoteCapture({
|
const { $note: $appearNote, subscribe: subscribeManuallyToNoteCapture } = useNoteCapture({
|
||||||
note: appearNote,
|
note: appearNote,
|
||||||
parentNote: note,
|
parentNote: note,
|
||||||
|
|
@ -483,6 +490,16 @@ async function renote() {
|
||||||
subscribeManuallyToNoteCapture();
|
subscribeManuallyToNoteCapture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function openDetail(): void {
|
||||||
|
if (props.mock) return;
|
||||||
|
os.pageWindow(`/notes/${appearNote.id}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOnRemote(): void {
|
||||||
|
if (remoteUrl == null) return;
|
||||||
|
window.open(remoteUrl, '_blank', 'noopener');
|
||||||
|
}
|
||||||
|
|
||||||
async function reply() {
|
async function reply() {
|
||||||
if (props.mock) return;
|
if (props.mock) return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,9 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<button v-if="prefer.s.showClipButtonInNoteFooter" ref="clipButton" class="_button" :class="$style.noteFooterButton" @mousedown.prevent="clip()">
|
<button v-if="prefer.s.showClipButtonInNoteFooter" ref="clipButton" class="_button" :class="$style.noteFooterButton" @mousedown.prevent="clip()">
|
||||||
<i class="ti ti-paperclip"></i>
|
<i class="ti ti-paperclip"></i>
|
||||||
</button>
|
</button>
|
||||||
|
<button v-if="remoteUrl" class="_button" :class="$style.noteFooterButton" :aria-label="i18n.ts.showOnRemote" @click="showOnRemote()">
|
||||||
|
<i class="ti ti-external-link"></i>
|
||||||
|
</button>
|
||||||
<button ref="menuButton" class="_button" :class="$style.noteFooterButton" @mousedown.prevent="showMenu()">
|
<button ref="menuButton" class="_button" :class="$style.noteFooterButton" @mousedown.prevent="showMenu()">
|
||||||
<i class="ti ti-dots"></i>
|
<i class="ti ti-dots"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -320,6 +323,7 @@ if (noteViewInterruptors.length > 0) {
|
||||||
|
|
||||||
const isRenote = Misskey.note.isPureRenote(note);
|
const isRenote = Misskey.note.isPureRenote(note);
|
||||||
const appearNote = getAppearNote(note) ?? note;
|
const appearNote = getAppearNote(note) ?? note;
|
||||||
|
const remoteUrl = appearNote.url ?? appearNote.uri ?? null;
|
||||||
const { $note: $appearNote, subscribe: subscribeManuallyToNoteCapture } = useNoteCapture({
|
const { $note: $appearNote, subscribe: subscribeManuallyToNoteCapture } = useNoteCapture({
|
||||||
note: appearNote,
|
note: appearNote,
|
||||||
parentNote: note,
|
parentNote: note,
|
||||||
|
|
@ -470,6 +474,11 @@ async function renote() {
|
||||||
subscribeManuallyToNoteCapture();
|
subscribeManuallyToNoteCapture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showOnRemote(): void {
|
||||||
|
if (remoteUrl == null) return;
|
||||||
|
window.open(remoteUrl, '_blank', 'noopener');
|
||||||
|
}
|
||||||
|
|
||||||
async function reply() {
|
async function reply() {
|
||||||
const isLoggedIn = await pleaseLogin({ openOnRemote: pleaseLoginContext.value });
|
const isLoggedIn = await pleaseLogin({ openOnRemote: pleaseLoginContext.value });
|
||||||
if (!isLoggedIn) return;
|
if (!isLoggedIn) return;
|
||||||
|
|
|
||||||
|
|
@ -297,10 +297,6 @@ export function getNoteMenu(props: {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function openDetail(): void {
|
|
||||||
os.pageWindow(`/notes/${appearNote.id}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function translate(): Promise<void> {
|
async function translate(): Promise<void> {
|
||||||
if (props.translation.value != null) return;
|
if (props.translation.value != null) return;
|
||||||
if (prefer.s['experimental.enableWebTranslatorApi'] && isInBrowserTranslationAvailable && appearNote.text != null) {
|
if (prefer.s['experimental.enableWebTranslatorApi'] && isInBrowserTranslationAvailable && appearNote.text != null) {
|
||||||
|
|
@ -364,10 +360,6 @@ export function getNoteMenu(props: {
|
||||||
}
|
}
|
||||||
|
|
||||||
menuItems.push({
|
menuItems.push({
|
||||||
icon: 'ti ti-info-circle',
|
|
||||||
text: i18n.ts.details,
|
|
||||||
action: openDetail,
|
|
||||||
}, {
|
|
||||||
icon: 'ti ti-copy',
|
icon: 'ti ti-copy',
|
||||||
text: i18n.ts.copyContent,
|
text: i18n.ts.copyContent,
|
||||||
action: copyContent,
|
action: copyContent,
|
||||||
|
|
@ -380,12 +372,6 @@ export function getNoteMenu(props: {
|
||||||
action: () => {
|
action: () => {
|
||||||
copyToClipboard(link);
|
copyToClipboard(link);
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
icon: 'ti ti-external-link',
|
|
||||||
text: i18n.ts.showOnRemote,
|
|
||||||
action: () => {
|
|
||||||
window.open(link, '_blank', 'noopener');
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const embedMenu = getNoteEmbedCodeMenu(appearNote, i18n.ts.embed);
|
const embedMenu = getNoteEmbedCodeMenu(appearNote, i18n.ts.embed);
|
||||||
|
|
@ -541,10 +527,6 @@ export function getNoteMenu(props: {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
menuItems.push({
|
menuItems.push({
|
||||||
icon: 'ti ti-info-circle',
|
|
||||||
text: i18n.ts.details,
|
|
||||||
action: openDetail,
|
|
||||||
}, {
|
|
||||||
icon: 'ti ti-copy',
|
icon: 'ti ti-copy',
|
||||||
text: i18n.ts.copyContent,
|
text: i18n.ts.copyContent,
|
||||||
action: copyContent,
|
action: copyContent,
|
||||||
|
|
@ -557,12 +539,6 @@ export function getNoteMenu(props: {
|
||||||
action: () => {
|
action: () => {
|
||||||
copyToClipboard(link);
|
copyToClipboard(link);
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
icon: 'ti ti-external-link',
|
|
||||||
text: i18n.ts.showOnRemote,
|
|
||||||
action: () => {
|
|
||||||
window.open(link, '_blank', 'noopener');
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const embedMenu = getNoteEmbedCodeMenu(appearNote, i18n.ts.embed);
|
const embedMenu = getNoteEmbedCodeMenu(appearNote, i18n.ts.embed);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue