diff --git a/src/Contracts/ComponentFormInterface.php b/src/Contracts/ComponentFormInterface.php index 14cc0566dafd8270e9f0831401f4b3b6e5ae4ec3..dc2c5b69c899f048d0a1e80f09bbcb007f28a2b3 100644 --- a/src/Contracts/ComponentFormInterface.php +++ b/src/Contracts/ComponentFormInterface.php @@ -97,4 +97,17 @@ interface ComponentFormInterface extends FormInterface { */ public function successfulAjaxSubmit(array $form, FormStateInterface $form_state); + /** + * Get the form view mode. + */ + public function getFormViewMode(); + + /** + * Set the form view mode. + * + * @param string $view_mode + * The view mode. + */ + public function setFormViewMode($view_mode); + } diff --git a/src/Form/ComponentFormBase.php b/src/Form/ComponentFormBase.php index d0dfca3d4bebdba12d0c98c004137c7e26de6299..29aa1a71806bc4c71a5e9618469370e7a85fabce 100644 --- a/src/Form/ComponentFormBase.php +++ b/src/Form/ComponentFormBase.php @@ -83,6 +83,13 @@ abstract class ComponentFormBase extends FormBase implements ComponentFormInterf */ protected $entityRepository; + /** + * The form mode to use for rendering the form. + * + * @var string + */ + protected $formMode = 'default'; + /** * {@inheritDoc} */ @@ -157,7 +164,7 @@ abstract class ComponentFormBase extends FormBase implements ComponentFormInterf FormStateInterface $form_state) { $this->initFormLangcodes($form_state); - $display = EntityFormDisplay::collectRenderDisplay($this->paragraph, 'default'); + $display = EntityFormDisplay::collectRenderDisplay($this->paragraph, $this->getViewMode()); $display->buildForm($this->paragraph, $form, $form_state); $this->paragraphType = $this->paragraph->getParagraphType(); $lp_config = $this->config('layout_paragraphs.settings'); @@ -607,4 +614,18 @@ abstract class ComponentFormBase extends FormBase implements ComponentFormInterf return []; } + /** + * {@inheritDoc} + */ + public function getViewMode() { + return $this->formMode; + } + + /** + * {@inheritDoc} + */ + public function setViewMode($view_mode) { + $this->formMode = $view_mode; + } + }