Skip to main content
Un layout de pagină controlează modul în care este aranjată pagina de detalii a unei înregistrări: ce file apar și ce widgeturi conțin acestea. Folosește definePageLayout() pentru a declara un layout pentru un obiect pe care îl deții sau definePageLayoutTab() pentru a adăuga o singură filă la un layout care există deja (al tău sau un layout standard Twenty).

definePageLayout

Folosește aceasta atunci când deții întreaga pagină de detalii — de obicei pentru un obiect personalizat pe care l-ai definit chiar tu.
src/page-layouts/example-record-page-layout.ts

Puncte cheie

  • type este unul dintre 'RECORD_INDEX', 'RECORD_PAGE', 'DASHBOARD' sau 'STANDALONE_PAGE'. Folosiți 'RECORD_PAGE' pentru a personaliza vizualizarea de detaliu a unui obiect specific.
  • objectUniversalIdentifier specifică la ce obiect se aplică această machetă.
  • Fiecare tab definește o secțiune a paginii cu un title, position și layoutMode: VERTICAL_LIST pentru pagini ale înregistrărilor și pagini independente, GRID pentru dashboard-uri. Într-un tab de tip VERTICAL_LIST, un singur widget este redat pe toată lățimea și ocupă întregul tab; cu mai multe widget-uri, acestea sunt aranjate în stivă, sub formă de carduri. Un tab de tip GRID așază întotdeauna widget-urile sub formă de carduri pe o grilă cu 12 coloane, indiferent de numărul lor, așa că alege VERTICAL_LIST atunci când vrei ca un singur widget să umple pagina.
  • Setează explicit layoutMode. Dacă îl omiți, vei obține VERTICAL_LIST pe un STANDALONE_PAGE și GRID în rest, ceea ce rareori îți dorești pe o pagină de înregistrare.
  • Fiecare widget dintr-o filă poate reda un front component, o listă de relații sau alte tipuri de widgeturi integrate.
  • position pe file le controlează ordinea. Folosește valori mai mari (de ex., 50) pentru a plasa filele personalizate după cele integrate.

definePageLayoutTab

Folosește aceasta atunci când vrei doar să adaugi o filă la un layout existent — de exemplu, o filă de analize pe pagina standard Company sau o filă de rezumat AI atașată layoutului obiectului tău.
src/page-layouts/example-extra-tab.ts

Puncte cheie

  • pageLayoutUniversalIdentifier este obligatoriu și trebuie să indice către un layout de pagină care există deja la momentul instalării — fie un layout standard Twenty, fie unul definit de propria ta aplicație. Referințele cross-app către layouturi deținute de o altă aplicație instalată nu sunt acceptate în prezent. Când lipsește layoutul părinte, instalarea eșuează cu o eroare clară de validare.
  • Pentru layout-urile standard Twenty, importați identificatorii din twenty-sdk/define:
    Fiecare intrare de layout își expune, de asemenea, tabs și widgets, astfel încât puteți face referire la orice nivel:
    Este disponibil și un alias scurt STANDARD_PAGE_LAYOUT:
  • widgets sunt limitate doar la această filă — fac referire la front components, vizualizări etc., exact ca widgeturile definite inline în definePageLayout.
  • position controlează ordonarea în raport cu filele existente din layoutul țintă. Alege o valoare care să plaseze fila ta acolo unde dorești, relativ la filele predefinite.
  • Folosește aceasta în loc de definePageLayout atunci când vrei doar să adaugi la un layout existent. Folosește definePageLayout atunci când deții întregul layout.