definePageLayout()을 사용하고, 이미 존재하는 레이아웃(사용자 소유 또는 표준 Twenty 레이아웃)에 단일 탭을 추가하려면 definePageLayoutTab()을 사용합니다.
| 사용 사례 | 엔터티 |
|---|---|
| 소유한 객체의 레코드 페이지에 대한 전체 레이아웃을 정의합니다. | definePageLayout |
| 기존 레이아웃(자신이 소유한 객체의 레이아웃이든, 표준 레이아웃이든)에 탭 하나를 추가합니다. | definePageLayoutTab |
definePageLayout
전체 상세 페이지를 소유할 때 사용합니다. 일반적으로 직접 정의한 사용자 지정 객체에 해당합니다.src/page-layouts/example-record-page-layout.ts
핵심 요점
type은 일반적으로 특정 객체의 상세 보기를 사용자 지정하기 위해 ‘RECORD_PAGE’입니다.objectUniversalIdentifier는 이 레이아웃이 적용되는 객체를 지정합니다.- 각
tab은title,position,layoutMode(CANVAS는 자유 형식 레이아웃)를 통해 페이지의 섹션을 정의합니다. - 탭 내부의 각
widget은 front component, 관계 목록 또는 기타 기본 제공 위젯 타입을 렌더링할 수 있습니다. - 탭의
position은 탭의 순서를 제어합니다. 값을 더 높게 설정하면(예: 50) 기본 탭 뒤에 사용자 지정 탭을 배치할 수 있습니다.
definePageLayoutTab
기존 레이아웃에 탭만 추가하려는 경우에 사용합니다. 예를 들어, 표준 Company 페이지에 분석 탭을 추가하거나, 자신이 소유한 객체의 레이아웃에 AI 요약 탭을 연결하는 경우입니다.src/page-layouts/example-extra-tab.ts
핵심 요점
-
pageLayoutUniversalIdentifier는 필수이며, 설치 시점에 이미 존재하는 페이지 레이아웃을 가리켜야 합니다. 이는 표준 Twenty 레이아웃이거나, 사용자의 앱에서 정의한 레이아웃일 수 있습니다. 현재는 설치된 다른 앱이 소유한 레이아웃에 대한 크로스 앱 참조는 지원되지 않습니다. 상위 레이아웃이 없으면, 명확한 유효성 검사 오류와 함께 설치가 실패합니다. -
표준 Twenty 레이아웃의 경우
twenty-sdk/define에서 식별자를 가져옵니다:각 레이아웃 항목은tabs와 해당widgets도 노출하므로, 모든 수준을 참조할 수 있습니다:짧은 별칭인STANDARD_PAGE_LAYOUT도 사용할 수 있습니다: -
widgets는 이 탭에만 범위가 국한됩니다.definePageLayout에 인라인으로 정의된 위젯과 완전히 동일한 방식으로 front components, 뷰 등을 참조합니다. -
position은 대상 레이아웃의 기존 탭과의 순서를 제어합니다. 기본 제공 탭을 기준으로 원하는 위치에 탭이 놓이도록 값을 선택하세요. -
기존 레이아웃에만 추가하려는 경우에는
definePageLayout대신 이것을 사용하세요. 전체 레이아웃을 소유하는 경우에는definePageLayout을 사용하세요.