diff --git a/CHANGELOG_CHERRYPICK.md b/CHANGELOG_CHERRYPICK.md index 9f66ef5593..5b9bc90695 100644 --- a/CHANGELOG_CHERRYPICK.md +++ b/CHANGELOG_CHERRYPICK.md @@ -31,9 +31,17 @@ Misskey의 전체 변경 사항을 확인하려면, [CHANGELOG.md#2024xx](CHANGE ### Client - Enhance: 업데이트 및 마이그레이션 알림에서 CherryPick의 변경 사항만 표시함 - Enhance: 검색과 같은 입력 블록에서 `Enter`를 입력하면 자동으로 가상 키보드를 숨김 +- Enhance: 환영 페이지의 타임라인에서 사용할 수 있는 일부 노트 메뉴 추가 + - QR 코드 생성 + - 새 탭에서 열기 + - 리노트 목록 + - 리액션 목록 + - 텍스트 소스 보기 + - 고양이체로 표시하지 않기 - Fix: 임베디드 코드에서 CherryPick의 색상 설정이 반영되지 않음 - Fix: 임베디드 코드에 `fade`와 Temml(KaTex)가 반영되지 않음 - Fix: 노트의 QR 코드를 생성했을 때 `링크 복사` 버튼을 누르면 잘못된 토스트 알림이 표시됨 +- Fix: 노트 메뉴에 `링크 복사` 옵션이 표시되지 않음 --- diff --git a/packages/frontend/src/scripts/get-note-menu.ts b/packages/frontend/src/scripts/get-note-menu.ts index 5fce5c0c85..7f1c26d9d6 100644 --- a/packages/frontend/src/scripts/get-note-menu.ts +++ b/packages/frontend/src/scripts/get-note-menu.ts @@ -405,20 +405,16 @@ export function getNoteMenu(props: { }); } - getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink); - - menuItems.push({ + menuItems.push(getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink), { + icon: 'ti ti-copy', + text: i18n.ts.copyContent, + action: copyContent, + }, { icon: 'ti ti-qrcode', text: i18n.ts.getQRCode, action: () => { os.displayQRCode(`${url}/notes/${appearNote.id}`); }, - }); - - menuItems.push({ - icon: 'ti ti-copy', - text: i18n.ts.copyContent, - action: copyContent, }, { icon: 'ti ti-external-link', text: i18n.ts.openInNewTab, @@ -625,27 +621,80 @@ export function getNoteMenu(props: { }); } } else { - menuItems.push({ - icon: 'ti ti-info-circle', - text: i18n.ts.details, - action: openDetail, - }, { + menuItems.push(getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink), { icon: 'ti ti-copy', text: i18n.ts.copyContent, action: copyContent, - }, getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink)); + }, { + icon: 'ti ti-qrcode', + text: i18n.ts.getQRCode, + action: () => { + os.displayQRCode(`${url}/notes/${appearNote.id}`); + }, + }, { + icon: 'ti ti-external-link', + text: i18n.ts.openInNewTab, + action: openInNewTab, + }); - if (appearNote.url ?? appearNote.uri) { - menuItems.push({ - icon: 'ti ti-external-link', - text: i18n.ts.showOnRemote, - action: () => { - window.open(appearNote.url ?? appearNote.uri, '_blank', 'noopener'); - }, - }); - } else { - menuItems.push(getNoteEmbedCodeMenu(appearNote, i18n.ts.genEmbedCode)); - } + menuItems.push({ + type: 'parent', + icon: 'ti ti-note', + text: i18n.ts.note, + children: async () => { + const noteChildMenu = [] as MenuItem[]; + + noteChildMenu.push({ + icon: 'ti ti-info-circle', + text: i18n.ts.details, + action: openDetail, + }, { + icon: 'ti ti-repeat', + text: i18n.ts.renotesList, + action: showRenotes, + }, { + icon: 'ti ti-icons', + text: i18n.ts.reactionsList, + action: showReactions, + }); + + if (appearNote.url ?? appearNote.uri) { + noteChildMenu.push({ + icon: 'ti ti-external-link', + text: i18n.ts.showOnRemote, + action: () => { + window.open(appearNote.url ?? appearNote.uri, '_blank', 'noopener'); + }, + }); + } else { + noteChildMenu.push(getNoteEmbedCodeMenu(appearNote, i18n.ts.genEmbedCode)); + } + + noteChildMenu.push({ type: 'divider' }); + + noteChildMenu.push({ + icon: 'ti ti-source-code', + text: i18n.ts.viewTextSource, + action: showViewTextSource, + }); + + if (props.noNyaize.value) { + noteChildMenu.push({ + icon: 'ti ti-paw-filled', + text: i18n.ts.revertNoNyaization, + action: revertNoNyaizeText, + }); + } else { + noteChildMenu.push({ + icon: 'ti ti-paw-off', + text: i18n.ts.noNyaization, + action: noNyaizeText, + }); + } + + return noteChildMenu; + }, + }); } if (noteActions.length > 0) {