From f21cfc928ee5e3701e81e35518b43cd0cc267c59 Mon Sep 17 00:00:00 2001 From: Himanshu Kapoor Date: Thu, 9 Mar 2023 14:12:27 +0700 Subject: [PATCH 1/5] Add support for content editor in issue comments Support content editor / switching between markdown and content editor in comment form. --- .../components/content_editor.vue | 11 ++ .../services/gl_api_markdown_deserializer.js | 5 +- .../notes/components/comment_form.vue | 123 ++++++++---------- .../components/markdown/markdown_editor.vue | 12 +- .../projects/merge_requests_controller.rb | 1 + spec/features/issues/user_edits_issue_spec.rb | 22 ++-- .../components/content_editor_spec.js | 25 +++- .../gl_api_markdown_deserializer_spec.js | 16 ++- .../notes/components/comment_form_spec.js | 106 ++++++++------- .../markdown/markdown_editor_spec.js | 12 ++ 10 files changed, 191 insertions(+), 142 deletions(-) diff --git a/app/assets/javascripts/content_editor/components/content_editor.vue b/app/assets/javascripts/content_editor/components/content_editor.vue index 09a5bab8d374ce..a4a3d7a042b226 100644 --- a/app/assets/javascripts/content_editor/components/content_editor.vue +++ b/app/assets/javascripts/content_editor/components/content_editor.vue @@ -56,6 +56,11 @@ export default { required: false, default: '', }, + placeholder: { + type: String, + required: false, + default: '', + }, autofocus: { type: [String, Boolean], required: false, @@ -189,6 +194,12 @@ export default { +
+ {{ placeholder }} +
{ deserialize: async ({ schema, markdown }) => { const html = await render(markdown); - if (!html) return {}; + if (!html) + return { + document: ProseMirrorDOMParser.fromSchema(schema).parse(document.createTextNode('')), + }; const parser = new DOMParser(); const { body } = parser.parseFromString(`${html}`, 'text/html'); diff --git a/app/assets/javascripts/notes/components/comment_form.vue b/app/assets/javascripts/notes/components/comment_form.vue index 434e199a5e6617..afc58bdc115b8f 100644 --- a/app/assets/javascripts/notes/components/comment_form.vue +++ b/app/assets/javascripts/notes/components/comment_form.vue @@ -1,9 +1,7 @@ @@ -362,35 +357,23 @@ export default { :noteable-type="noteableType" :contains-link="containsLink" > - - - + :quick-actions-docs-path="quickActionsDocsPath" + :form-field-props="formFieldProps" + :autosave-key="autosaveKey" + supports-quick-actions + autofocus + @keydown.up="editCurrentUserLastNote()" + @keydown.meta.enter="handleEnter()" + @keydown.ctrl.enter="handleEnter()" + @input="onInput" + />