This project is not covered by Drupal’s security advisory policy.

Overview

This module contains a GraphQL Field entityByObject where you can pass an serialized entity as an argument and you get the unserialized entity in return.

Use case

We use this field to be able to render paragraphs in the backend preview with graphql_twig with the same styling as in the frontend theme. It is not possible to display the preview of unsaved paragraph since it is not possible to query an unsaved entity with GraphQL (at least we found no possibility), this is the reason why we created this field.
Since it is not possible to pass an object as an argument, it is necessary that the entity will be passed serialized.

Usage

If you want to render paragraph in the backend preview with graphql_twig you need to extend your backend theme preprocess function and pass the serialized paragraph in the $variables['serializedObject'] argument.

function THEME_preprocess_paragraph(&$variables) {
  $variables['serializedObject'] = serialize($variables['paragraph']);
}

Now you should be able to use entityByObject to query paragraphs in your paragraph.html.twig template.

{#graphql
query ($serializedObject: String) {
  paragraph: entityByObject(serializedObject: $serializedObject) {
    ... on Paragraph {
      type: entityBundle
      ...Lead
      ...Text
    }
  }
}

fragment Lead on ParagraphLead {
  fieldTitle
  fieldLead
}

fragment Text on ParagraphText {
  fieldText {
    processed
  }
}
#}


{% set paragraph = graphql.paragraph %}

{% block paragraph %}
  {% block content %}
    {% include '@FRONTEND_THEME/modules/m-' ~ paragraph.type ~ '.html.twig' with {'data': paragraph} %}
  {%  endblock %}
{% endblock paragraph %}
Supporting organizations: 

Project information

Releases