From 251930a6ea7cfa1b70eeca05bf02a1325918c469 Mon Sep 17 00:00:00 2001
From: jrockowitz <3537824+jrockowitz@users.noreply.github.com>
Date: Wed, 12 Apr 2023 16:26:37 -0400
Subject: [PATCH] Minor improvements

---
 ...WebformJavaScriptSettingJavaScriptTest.php |  2 ++
 webform_javascript_setting.install            | 36 +++++++++++++------
 webform_javascript_setting.module             |  4 ++-
 3 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php b/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php
index e306b12..6f625b5 100644
--- a/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php
+++ b/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php
@@ -1,5 +1,7 @@
 <?php
 
+declare(strict_types = 1);
+
 namespace Drupal\Tests\webform_setting_javascript\FunctionalJavascript;
 
 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
diff --git a/webform_javascript_setting.install b/webform_javascript_setting.install
index d286ffc..02548c7 100644
--- a/webform_javascript_setting.install
+++ b/webform_javascript_setting.install
@@ -8,17 +8,31 @@
 /**
  * Implements hook_install().
  */
-function webform_javascript_setting_install() {
+function webform_javascript_setting_install(bool $is_syncing): void {
+  if ($is_syncing) {
+    return;
+  }
+
+  $settings = [];
+
+  // Acquia Personalization: Client ID.
+  if (\Drupal::moduleHandler()->moduleExists('acquia_perz')) {
+    $settings[] = [
+      'setting' => 'AcquiaLift.liftWebIdentity.tc_ptid',
+      'label' => 'Acquia Personalization: Client ID',
+    ];
+  }
+
+  // Include Drupal: User ID as an example.
+  if (empty($settings)) {
+    $settings[] = [
+      'setting' => 'drupalSettings.user.uid',
+      'label' => 'Drupal: User ID',
+    ];
+  }
+
   /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */
   $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager');
-  $third_party_settings_manager->setThirdPartySetting(
-    'webform_javascript_setting',
-    'settings',
-    [
-      [
-        'setting' => 'drupalSettings.user.uid',
-        'label' => 'Drupal: User ID',
-      ],
-    ],
-  );
+  $third_party_settings_manager
+    ->setThirdPartySetting('webform_javascript_setting', 'settings', $settings);
 }
diff --git a/webform_javascript_setting.module b/webform_javascript_setting.module
index b90354d..c52ccce 100644
--- a/webform_javascript_setting.module
+++ b/webform_javascript_setting.module
@@ -5,12 +5,14 @@
  * Provides an element that pulls a JavaScript object''s setting into a hidden field.
  */
 
+declare(strict_types = 1);
+
 use Drupal\Core\Form\FormStateInterface;
 
 /**
  * Implements hook_webform_admin_third_party_settings_form_alter().
  */
-function webform_javascript_setting_webform_admin_third_party_settings_form_alter(&$form, FormStateInterface $form_state) {
+function webform_javascript_setting_webform_admin_third_party_settings_form_alter(array &$form, FormStateInterface $form_state): void {
   /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */
   $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager');
   $settings = $third_party_settings_manager->getThirdPartySetting('webform_javascript_setting', 'settings');
-- 
GitLab