Passer au contenu principal
Pour le moment, les objets ne sont accessibles que dans les paramètres. Donnons à l’application une présence réelle dans l’interface utilisateur : vues de la liste, entrées de la barre latérale, Générer un document en un clic, un composant frontal de la page d’enregistrement pour prévisualiser un document et un onglet d’onglet de texte natif éditeur pour les modèles.

Vues et navigation

Une vue est une liste enregistrée d’un objet donné. Un élément du menu de navigation place cette vue dans la barre latérale.
Ajouter la même paire pour les modèles. Les deux affichent maintenant dans la barre latérale :
Vue des documents avec un document généré

Documents et gabarits dans la barre latérale, avec le document généré listé.

Un composant frontal

Un composant frontal est un composant React bac à sable à l’intérieur de Twenty. Notre lecture de l’enregistrement sélectionné, charge les gabarits par l’intermédiaire de CoreApiClient, et POSTs vers la route à partir du dernier chapitre .
Style avec des variables CSS en ligne (var(--t-color-blue)), pas de valeurs importées de 21ui. Les mocks SDK que ce paquet pendant la compilation, donc les importations au niveau des modules de constantes de thème seraient indéfinies. Voir le composant complet.

Une commande pour l’ouvrir

Un lien de menu de commande avec availabilityType: 'RECORD_SELECTION' s’affiche quand une personne est sélectionnée, et ouvre le composant dans le panneau latéral.

Essayer tout le flux

Ouvrez People, cochez une personne et appuyez sur ΩK / Ctrl K. “Générer un document” apparaît, marqué avec votre application :
Menu de commande avec Générer un document

La commande s'affiche lorsqu'une personne est sélectionnée.

Exécutez-le — votre composant s’ouvre dans le panneau latéral. Choisissez un modèle, cliquez sur Générer, et un nouveau record se trouve dans Documents.
Générer le panneau latéral du document

Le composant avant, le chargement des modèles et la génération au clic.

Chaque document généré enregistre votre application comme auteur:
Un enregistrement de document généré

Créé par le générateur de documents, statut généré.

Aperçu d’un document sur sa page de dossier

Un composant frontal n’est pas seulement destiné aux menus de commande — vous pouvez en monter un comme onglet sur une page d’enregistrement. Ajoutons un onglet Aperçu à l’enregistrement du document qui rend le corps Markdown comme une page lisse et imprimable. Le composant lit l’id de l’enregistrement courant depuis son contexte d’exécution, charge le document et le rendu. Les composants frontaux s’exécutent dans un sandbox qui n’autorise qu’une liste de balises HTML — l’injection HTML brute (dangerouslySetInnerHTML) et \<style> sont bloqués — donc nous rendons le Markdown comme des éléments React avec des styles en ligne via un petit Markdown .
Montez-le avec une [mise en page de la page] (/developers/extend/apps/layout/page-layouts). Une mise en page RECORD_PAGE ajoute des onglets à la vue d’un enregistrement d’un objet ; un widget FRONT_COMPONENT dans un onglet CANVAS héberge le composant:
Ouvrez n’importe quel document — un onglet Aperçu le rend magnifiquement, avec des liens vers la page et le PDF :
Composant frontal de la visionneuse de documents dans un onglet de page d'enregistrement

L'onglet Aperçu affiche le document avec des styles en ligne, plus des liens rapides.

Modifier un modèle avec l’éditeur de texte riche

Les gabarits n’ont pas du tout besoin d’un composant personnalisé. Parce que le body est un champ RICH_TEXT, Vingt fournissent déjà un éditeur de texte complet — le est le même que les objets standard Note et Tâche. Nous nous contentons de le mettre en surface sur la page d’enregistrement du gabarit . Ajouter un onglet avec un widget FIELD en mode d’affichage EDITOR, pointant vers le champ body via fieldMetadataId:
Un champ RICH_TEXT stocke à la fois le bloc JSON de l’éditeur et une projection Markdown . Le pipeline de génération lit que Markdown projection, donc placeholders, le PDF, et la page web partageable fonctionnent tous de façon inchangée — voir template-record. age-layout.ts. Maintenant, les éditeurs écrivent des modèles dans un éditeur de texte riche approprié:
Enregistrement du modèle avec l'onglet de l'éditeur natif de texte riche

Onglet Modèle : l'éditeur natif de texte riche de Vingt lié au champ corps.

Après cette étape: les documents d’aperçu et les modèles sont modifiables dans l’application. Ensuite, laissez un agent IA les générer depuis un chat.

Suivant : un agent IA →

Ajoutez un agent et une compétence qui appellent votre outil.