From d88add450f6f7e2bad9f795e99e276d53dd33971 Mon Sep 17 00:00:00 2001
From: Vladimir Krupin <5554-blcrb@users.noreply.drupalcode.org>
Date: Thu, 10 Nov 2022 13:27:08 -0500
Subject: [PATCH] Issue #3311403 by vladimir.krupin: Cannot delete MappedObject
 entity related to paragraph

---
 .../src/Form/MappedObjectDeleteForm.php             | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/modules/salesforce_mapping_ui/src/Form/MappedObjectDeleteForm.php b/modules/salesforce_mapping_ui/src/Form/MappedObjectDeleteForm.php
index 73df4480..535ebb12 100644
--- a/modules/salesforce_mapping_ui/src/Form/MappedObjectDeleteForm.php
+++ b/modules/salesforce_mapping_ui/src/Form/MappedObjectDeleteForm.php
@@ -3,7 +3,9 @@
 namespace Drupal\salesforce_mapping_ui\Form;
 
 use Drupal\Core\Entity\ContentEntityConfirmFormBase;
+use Drupal\Core\Entity\Exception\UndefinedLinkTemplateException;
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Url;
 use Drupal\salesforce\Event\SalesforceNoticeEvent;
 use Drupal\salesforce\Event\SalesforceEvents;
 
@@ -44,8 +46,17 @@ class MappedObjectDeleteForm extends ContentEntityConfirmFormBase {
    * Salesforce notvie level event which logs notice.
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
+    $form_state->setRedirectUrl(Url::fromRoute('entity.salesforce_mapped_object.list'));
+
     $mapped_object = $this->getEntity();
-    $form_state->setRedirectUrl($mapped_object->getMappedEntity()->toUrl());
+    try {
+      $mapped_entity = $mapped_object->getMappedEntity();
+      if ($mapped_entity) {
+        $form_state->setRedirectUrl($mapped_entity->toUrl());
+      }
+    }
+    catch (UndefinedLinkTemplateException $e) {}
+
     $message = 'MappedObject @sfid deleted.';
     $args = ['@sfid' => $mapped_object->salesforce_id->value];
     \Drupal::service('event_dispatcher')->dispatch(new SalesforceNoticeEvent(NULL, $message, $args), SalesforceEvents::NOTICE);
-- 
GitLab