diff --git a/src/Plugin/UiPatterns/Source/WysiwygWidget.php b/src/Plugin/UiPatterns/Source/WysiwygWidget.php index b7db192c7ca5956cb47e93689493eeeb5070a09a..8bf60a7695f9c0af5acea2c9d3d4fa6893d8dffc 100644 --- a/src/Plugin/UiPatterns/Source/WysiwygWidget.php +++ b/src/Plugin/UiPatterns/Source/WysiwygWidget.php @@ -40,6 +40,9 @@ class WysiwygWidget extends SourcePluginBase implements TrustedCallbackInterface * Processed element */ public static function textFormat(array $element) : array { + if (!isset($element['#ui_patterns']) || !$element['#ui_patterns']) { + return $element; + } if (isset($element['format']['format']['#access']) && !$element['format']['format']['#access']) { // See code at Drupal\filter\Element\TextFormat::processTextFormat() @@ -87,9 +90,7 @@ class WysiwygWidget extends SourcePluginBase implements TrustedCallbackInterface $value = $this->getSetting('value'); $element = [ '#type' => 'text_format', - '#pre_render' => [ - [static::class, 'textFormat'], - ], + '#ui_patterns' => TRUE, ]; if (is_array($value) && array_key_exists("value", $value)) { $element['#default_value'] = $value['value']; diff --git a/ui_patterns.module b/ui_patterns.module index b64884adfa599f6506b7648b7fca4c2046422749..3bbdbebbd68de9ed803c2061019f4d165e03923f 100644 --- a/ui_patterns.module +++ b/ui_patterns.module @@ -7,6 +7,8 @@ declare(strict_types=1); +use Drupal\ui_patterns\Plugin\UiPatterns\Source\WysiwygWidget; + /** * Implements hook_element_info_alter(). */ @@ -15,6 +17,9 @@ function ui_patterns_element_info_alter(array &$types): void { array_unshift($types['component']['#pre_render'], 'ui_patterns.component_element_alter:alter'); array_unshift($types['component']['#pre_render'], 'ui_patterns.component_element_builder:build'); } + if (isset($types['text_format'])) { + $types['text_format']['#pre_render'][] = [WysiwygWidget::class, 'textFormat']; + } } /**