feat(frontend): 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように (#13862)
* feat(frontend): ask if attach as file if clipboard text is very long * docs(changelog): 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように
This commit is contained in:
parent
ed432d06d7
commit
aafa669cf5
4 changed files with 24 additions and 1 deletions
|
@ -42,6 +42,7 @@
|
||||||
- Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように
|
- Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように
|
||||||
- Enhance: AiScriptを0.18.0にバージョンアップ
|
- Enhance: AiScriptを0.18.0にバージョンアップ
|
||||||
- Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように
|
- Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように
|
||||||
|
- Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように
|
||||||
- Fix: 一部のページ内リンクが正しく動作しない問題を修正
|
- Fix: 一部のページ内リンクが正しく動作しない問題を修正
|
||||||
- Fix: 周年の実績が閏年を考慮しない問題を修正
|
- Fix: 周年の実績が閏年を考慮しない問題を修正
|
||||||
- Fix: ローカルURLのプレビューポップアップが左上に表示される
|
- Fix: ローカルURLのプレビューポップアップが左上に表示される
|
||||||
|
|
6
locales/index.d.ts
vendored
6
locales/index.d.ts
vendored
|
@ -917,7 +917,7 @@ export interface Locale extends ILocale {
|
||||||
*/
|
*/
|
||||||
"silencedInstances": string;
|
"silencedInstances": string;
|
||||||
/**
|
/**
|
||||||
* サイレンスしたいサーバーのホストを改行で区切って設定します。サイレンスされたサーバーに所属するアカウントはすべて「サイレンス」として扱われ、フォローがすべてリクエストになり、フォロワーでないローカルアカウントにはメンションできなくなります。ブロックしたインスタンスには影響しません。
|
* サイレンスしたいサーバーのホストを改行で区切って設定します。サイレンスされたサーバーに所属するアカウントはすべて「サイレンス」として扱われ、フォローがすべてリクエストになります。ブロックしたインスタンスには影響しません。
|
||||||
*/
|
*/
|
||||||
"silencedInstancesDescription": string;
|
"silencedInstancesDescription": string;
|
||||||
/**
|
/**
|
||||||
|
@ -1900,6 +1900,10 @@ export interface Locale extends ILocale {
|
||||||
* 引用として添付しますか?
|
* 引用として添付しますか?
|
||||||
*/
|
*/
|
||||||
"quoteQuestion": string;
|
"quoteQuestion": string;
|
||||||
|
/**
|
||||||
|
* クリップボードのテキストが長いです。テキストファイルとして添付しますか?
|
||||||
|
*/
|
||||||
|
"attachAsFileQuestion": string;
|
||||||
/**
|
/**
|
||||||
* まだチャットはありません
|
* まだチャットはありません
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -471,6 +471,7 @@ retype: "再入力"
|
||||||
noteOf: "{user}のノート"
|
noteOf: "{user}のノート"
|
||||||
quoteAttached: "引用付き"
|
quoteAttached: "引用付き"
|
||||||
quoteQuestion: "引用として添付しますか?"
|
quoteQuestion: "引用として添付しますか?"
|
||||||
|
attachAsFileQuestion: "クリップボードのテキストが長いです。テキストファイルとして添付しますか?"
|
||||||
noMessagesYet: "まだチャットはありません"
|
noMessagesYet: "まだチャットはありません"
|
||||||
newMessageExists: "新しいメッセージがあります"
|
newMessageExists: "新しいメッセージがあります"
|
||||||
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつです"
|
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつです"
|
||||||
|
|
|
@ -612,6 +612,23 @@ async function onPaste(ev: ClipboardEvent) {
|
||||||
quoteId.value = paste.substring(url.length).match(/^\/notes\/(.+?)\/?$/)?.[1] ?? null;
|
quoteId.value = paste.substring(url.length).match(/^\/notes\/(.+?)\/?$/)?.[1] ?? null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (paste.length > 1000) {
|
||||||
|
ev.preventDefault();
|
||||||
|
os.confirm({
|
||||||
|
type: 'info',
|
||||||
|
text: i18n.ts.attachAsFileQuestion,
|
||||||
|
}).then(({ canceled }) => {
|
||||||
|
if (canceled) {
|
||||||
|
insertTextAtCursor(textareaEl.value, paste);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const fileName = formatTimeString(new Date(), defaultStore.state.pastedFileName).replace(/{{number}}/g, "0");
|
||||||
|
const file = new File([paste], `${fileName}.txt`, { type: "text/plain" });
|
||||||
|
upload(file, `${fileName}.txt`);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onDragover(ev) {
|
function onDragover(ev) {
|
||||||
|
|
Loading…
Reference in a new issue