orchidsoftware / platform

Orchid is a @laravel package that allows for rapid application development of back-office applications, admin/user panels, and dashboards.
https://orchid.software
MIT License
4.45k stars 657 forks source link

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

Open tabuna opened 3 months ago

tabuna commented 3 months ago

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