diff options
| author | taichan <40626578+tai-cha@users.noreply.github.com> | 2025-06-25 17:09:23 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-25 17:09:23 +0900 |
| commit | b752dc72e531f6c63f09876a1c68a87a77c03b49 (patch) | |
| tree | d9bd25825a9b1b06c8db07a1888594ffc9db45c8 /packages/frontend/src/utility/get-note-summary.ts | |
| parent | fix(frontend): ファイルがドライブの既定アップロード先に... (diff) | |
| download | misskey-b752dc72e531f6c63f09876a1c68a87a77c03b49.tar.gz misskey-b752dc72e531f6c63f09876a1c68a87a77c03b49.tar.bz2 misskey-b752dc72e531f6c63f09876a1c68a87a77c03b49.zip | |
feat: ノートの下書き(draft of note) (#15298)
* WIp (backend)
* Remove unused
* 下書きbackend 続き
* fix(backedn): visibilityが下書きに反映されない
* Update packages/backend/src/postgres.ts
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
* Fix : import order
* fix(backend) : createでcwが効かない
* FIX FOREGIN KEY
* wip: frontend(既存の下書きを挿入)
まだ:チャンネル表示、下書きの作成、削除
* WIP: ノート選択ダイアログ
投稿時に下書きを削除
* Promiseに変更
* 連合なし、チャンネルも表示
* Hashtagの値抜け漏れ
* hasthagを0文字でも作成可能に
* 下書きの保存機構
* chore(misskey-js): build types
* localOnly抜け漏れ
* チャンネル情報の書き換え
* enhance(frontend): ヘッダ部の表示改善
* fix(frontend): ファイル添付できない
* fix: no file
* fix(frontend): 投票が反映されない
* ハッシュタグの展開(コメントアウト外し忘れ)
* fix: visibleUserIdsが反映されない
* enhance: APIの型を整備
* refactor: 型が整備できたのでasを削除
* Add userhost
* fix
* enhance: paginationを使う
* fix
* fix: 自分のアカウントでの投稿でしか下書きを利用できないように
完全に塞ぐことはできないが一応
* :art:
* APIのエラーIDを追加
* enhance: スタイル調整
* remove unused code
* :art:
* fix: ロールポリシーの型
* ロールの編集画面
* ダイアログの挙動改善
* 下書き機能が利用できない場合は表示しないように
* refactor
* fix: ダブルクリックが効かない問題を修正
* add comments
* fix
* fix: 保存時のエラーの種別にかかわらずmodalを閉じないように
* fix()backend: NoteDraftのreply, renoteの型が間違ってたので修正 (migtrationはあってた)
* fix: 投稿フォームを空白にして通常リノートできるやつは下書きとしては弾くように
* fix(backend): テキストが0文字でも下書きは保存できるように
* Fix(backend): replyIdの型定義がミスっているのを修正
* chore(misskey-js): update types
* Add CHANGELOG
* lint
* 常にサーバー下書きに保存し、上限を超えた場合のみ尋ねるように
* NoteDraftServiceにcreate, updateの処理を移譲
* Fix typeerror
* remove tooltip
* Remove Mkbutton:short and use iconOnly
* 不要なコメントの削除
* Remove Short Completely
* wip
* escキーまわりの挙動を改善
* 下書き選択時に下書き可能数と現在の量が分かるように
* cleanUp
* wip
* wi
* wip
* Update MkPostForm.vue
---------
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/utility/get-note-summary.ts')
| -rw-r--r-- | packages/frontend/src/utility/get-note-summary.ts | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/packages/frontend/src/utility/get-note-summary.ts b/packages/frontend/src/utility/get-note-summary.ts index 6fd9947ac1..66de997aab 100644 --- a/packages/frontend/src/utility/get-note-summary.ts +++ b/packages/frontend/src/utility/get-note-summary.ts @@ -10,16 +10,40 @@ import { i18n } from '@/i18n.js'; * 投稿を表す文字列を取得します。 * @param {*} note (packされた)投稿 */ -export const getNoteSummary = (note?: Misskey.entities.Note | null): string => { +export const getNoteSummary = (note?: Misskey.entities.Note | Misskey.entities.NoteDraft | null, opts?: { + /** + * ファイルの数を表示するかどうか + */ + showFiles?: boolean; + /** + * 投票の有無を表示するかどうか + */ + showPoll?: boolean; + /** + * 返信の有無を表示するかどうか + */ + showReply?: boolean; + /** + * Renoteの有無を表示するかどうか + */ + showRenote?: boolean; +}): string => { + const _opts = Object.assign({ + showFiles: true, + showPoll: true, + showReply: true, + showRenote: true, + }, opts); + if (note == null) { return ''; } - if (note.deletedAt) { + if ('deletedAt' in note && note.deletedAt) { return `(${i18n.ts.deletedNote})`; } - if (note.isHidden) { + if ('isHidden' in note && note.isHidden) { return `(${i18n.ts.invisibleNote})`; } @@ -33,17 +57,17 @@ export const getNoteSummary = (note?: Misskey.entities.Note | null): string => { } // ファイルが添付されているとき - if ((note.files || []).length !== 0) { - summary += ` (${i18n.tsx.withNFiles({ n: note.files.length })})`; + if (_opts.showFiles && (note.files || []).length !== 0) { + summary += ` (${i18n.tsx.withNFiles({ n: note.files!.length })})`; } // 投票が添付されているとき - if (note.poll) { + if (_opts.showPoll && note.poll) { summary += ` (${i18n.ts.poll})`; } // 返信のとき - if (note.replyId) { + if (_opts.showReply && note.replyId) { if (note.reply) { summary += `\n\nRE: ${getNoteSummary(note.reply)}`; } else { @@ -52,7 +76,7 @@ export const getNoteSummary = (note?: Misskey.entities.Note | null): string => { } // Renoteのとき - if (note.renoteId) { + if (_opts.showRenote && note.renoteId) { if (note.renote) { summary += `\n\nRN: ${getNoteSummary(note.renote)}`; } else { |