From a07483996ef3ac2b7e2a52ff0841f1fb6ba55121 Mon Sep 17 00:00:00 2001 From: Lhcfl Date: Mon, 15 Apr 2024 15:12:51 +0800 Subject: [PATCH 1/2] feat: add slash quote --- locales/en-US.yml | 1 + locales/zh-CN.yml | 1 + packages/client/src/components/MkPostForm.vue | 17 ++++-- .../src/components/MkPostFormDialog.vue | 5 ++ .../client/src/components/MkQuoteButton.vue | 54 ++++++++++++++++++- 5 files changed, 72 insertions(+), 6 deletions(-) diff --git a/locales/en-US.yml b/locales/en-US.yml index d552e1e3a2..ce6fd91ca1 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -2229,3 +2229,4 @@ autocorrectNoteLanguage: "Show a warning if the post language does not match the incorrectLanguageWarning: "It looks like your post is in {detected}, but you selected {current}.\nWould you like to set the language to {detected} instead?" noteEditHistory: "Post edit history" +slashQuote: "Slash quote" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index c496d05381..552efb268e 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -2057,3 +2057,4 @@ autocorrectNoteLanguage: 当帖子语言不符合自动检测的结果的时候 incorrectLanguageWarning: "看上去您帖子使用的语言是{detected},但您选择的语言是{current}。\n要改为以{detected}发帖吗?" noteEditHistory: "帖子编辑历史" media: 媒体 +slashQuote: "斜杠引用" diff --git a/packages/client/src/components/MkPostForm.vue b/packages/client/src/components/MkPostForm.vue index aeb51f7bf7..528b98d9d2 100644 --- a/packages/client/src/components/MkPostForm.vue +++ b/packages/client/src/components/MkPostForm.vue @@ -363,6 +363,11 @@ const props = withDefaults( autofocus?: boolean; showMfmCheatSheet?: boolean; editId?: entities.Note["id"]; + selectRange?: [ + start: number, + end: number, + direction?: "forward" | "backward" | "none", + ]; }>(), { initialVisibleUsers: () => [], @@ -683,10 +688,14 @@ function togglePoll() { function focus() { if (textareaEl.value) { textareaEl.value.focus(); - textareaEl.value.setSelectionRange( - textareaEl.value.value.length, - textareaEl.value.value.length, - ); + if (props.selectRange) { + textareaEl.value.setSelectionRange(...props.selectRange); + } else { + textareaEl.value.setSelectionRange( + textareaEl.value.value.length, + textareaEl.value.value.length, + ); + } } } diff --git a/packages/client/src/components/MkPostFormDialog.vue b/packages/client/src/components/MkPostFormDialog.vue index 56f009c338..8b09475ff8 100644 --- a/packages/client/src/components/MkPostFormDialog.vue +++ b/packages/client/src/components/MkPostFormDialog.vue @@ -43,6 +43,11 @@ const props = defineProps<{ fixed?: boolean; autofocus?: boolean; editId?: entities.Note["id"]; + selectRange?: [ + start: number, + end: number, + direction?: "forward" | "backward" | "none", + ]; }>(); const emit = defineEmits<{ diff --git a/packages/client/src/components/MkQuoteButton.vue b/packages/client/src/components/MkQuoteButton.vue index f4004b0cdb..2617d3655e 100644 --- a/packages/client/src/components/MkQuoteButton.vue +++ b/packages/client/src/components/MkQuoteButton.vue @@ -1,5 +1,6 @@