graphql_compose-1.0.0-beta20/modules/graphql_compose_views/graphql_compose_views.module
modules/graphql_compose_views/graphql_compose_views.module
<?php
/**
* @file
* GraphQL Compose Views module file.
*/
declare(strict_types=1);
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_views_invalidate_cache().
*/
function graphql_compose_views_views_invalidate_cache(): void {
_graphql_compose_cache_flush();
}
/**
* Implements hook_graphql_compose_field_type_form_alter().
*/
function graphql_compose_views_graphql_compose_field_type_form_alter(array &$form, FormStateInterface $form_state, FieldDefinitionInterface $field, array $settings,): void {
$moduleHandler = \Drupal::service('module_handler');
if (!$moduleHandler->moduleExists('viewfield')) {
return;
}
if ($field->getType() === 'viewfield') {
$form['viewfield_query'] = [
'#type' => 'checkbox',
'#title' => t('Embed view as GraphQL query'),
'#description' => t('Enable a proxy view query to embed any referenced GraphQL view.'),
'#default_value' => $settings['viewfield_query'] ?? FALSE,
'#element_validate' => ['::validateNullable'],
];
}
}
/**
* Implements hook_config_schema_info_alter().
*/
function graphql_compose_views_config_schema_info_alter(&$definitions) {
$definitions['graphql_compose.field.*.*.*']['mapping']['viewfield_query'] = [
'type' => 'boolean',
'label' => t('Embed view as GraphQL query'),
];
}
