orchidsoftware/platform

SimpleMDE Field Incorrectly Marked as Empty When Using `required` Attribute

Open

#2.877 geöffnet am 18. Aug. 2024

Auf GitHub ansehen
 (1 Kommentar) (0 Reaktionen) (1 zugewiesene Person)PHP (629 Forks)batch import
Fieldshelp wanted

Repository-Metriken

Stars
 (4.045 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 3T 18h) (4 gemergte PRs in 30 T)

Beschreibung

Describe the bug When creating a markdown text editor using the SimpleMDE::make('editor')->required() method, the required attribute is automatically added to the underlying CodeMirror instance. This causes side effects, such as the field appearing empty if it hasn't been manually edited or when content is added via copy-paste. As a result, the form cannot be submitted, even though the field is technically filled.

To Reproduce Steps to reproduce the behavior:

  1. Create a markdown editor field using SimpleMDE::make('editor')->required().
  2. Attempt to submit the form without manually editing the editor content.
  3. Observe that the form submission is blocked due to the field being considered empty.
  4. Copy and paste content into the editor and attempt to submit again. The same issue occurs.

Expected behavior The form should be able to be submitted if the markdown editor field contains content, regardless of whether the content was manually typed or added via copy-paste.

Additional context This issue seems to stem from the fact that the required attribute is being passed to the CodeMirror instance instead of just validating the presence of content in the underlying text area. One potential solution could be to manage the required validation via a custom validation rule in Laravel, rather than directly attaching it to the CodeMirror field.

https://github.com/orchidsoftware/platform/blob/357283ffad0868a7622b1ed3f6e4512ef4f24185/resources/js/controllers/simplemde_controller.js#L152-L155

Contributor Guide