From 8d82082095cbeae1556b8642bc176003e0bcb4c6 Mon Sep 17 00:00:00 2001
From: Phil Frilling <pfrilling@oomphinc.com>
Date: Mon, 17 Feb 2025 09:50:45 -0500
Subject: [PATCH] Added a hook to alter the filter options for double
 references

---
 double_reference.module | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 double_reference.module

diff --git a/double_reference.module b/double_reference.module
new file mode 100644
index 0000000..2b5b56e
--- /dev/null
+++ b/double_reference.module
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * @file
+ * double_reference.module.
+ */
+
+declare(strict_types=1);
+
+use Drupal\field\FieldStorageConfigInterface;
+
+/**
+ * Implements hook_field_views_data_views_data_alter().
+ */
+function double_reference_field_views_data_views_data_alter(
+  array &$data,
+  FieldStorageConfigInterface $field
+): void {
+  // Guard the field type.
+  if ($field->getType() !== 'double_reference') {
+    return;
+  }
+
+  $fieldName = $field->getName();
+  $targetType = $field->getSetting('target_type');
+  $arTargetType = $field->getSetting('ar_target_type');
+
+  // Change the target_type filter to use the entity reference filter.
+  $data["{$field->getTargetEntityTypeId()}__{$fieldName}"]["{$fieldName}_target_id"]['filter']['id'] = match($targetType) {
+    'taxonomy_term' => 'taxonomy_index_tid',
+    default => 'entity_reference',
+  };
+
+  // Change the ar_target_type filter to use the entity reference filter.
+  $data["{$field->getTargetEntityTypeId()}__{$fieldName}"]["{$fieldName}_ar_target_id"]['filter']['id'] = match($arTargetType) {
+    'taxonomy_term' => 'taxonomy_index_tid',
+    default => 'entity_reference',
+  };
+}
-- 
GitLab