src/command-menu-items/open-dashboard.command-menu-item.ts
設定フィールド
| フィールド | 必須 | 説明 |
|---|---|---|
universalIdentifier | はい | コマンドの安定した一意の ID |
label | はい | コマンドメニュー(Cmd+K)に表示されるフルラベル |
frontComponentUniversalIdentifier | はい | このコマンドが開くフロントコンポーネントの universalIdentifier |
shortLabel | いいえ | ピン留めされたクイックアクションボタンに表示される短いラベル |
icon | いいえ | ラベルの横に表示するアイコン名(例:‘IconBolt’、‘IconSend’) |
isPinned | いいえ | true の場合、ページ右上にクイックアクションボタンとして表示します |
availabilityType | いいえ | コマンドの表示場所を制御します:‘GLOBAL’(常に利用可能)、‘RECORD_SELECTION’(レコード選択時のみ)、または ‘FALLBACK’(他のコマンドが一致しないときに表示) |
availabilityObjectUniversalIdentifier | いいえ | コマンドを特定のオブジェクトタイプのページに制限します(例:Company レコードのみ) |
conditionalAvailabilityExpression | いいえ | 表示可否を動的に制御するブール式(下記参照) |
ヘッドレスコマンド
ヘッドレスフロントコンポーネントとペアになったコマンドメニュー項目は、ワンクリックアクション(コードの実行、ナビゲーション、確認と実行)を提供するための一般的な方法です。 Front Components のページでは、アクション実行後にアンマウントするパターンを処理する SDK Command components(Command、CommandLink、CommandModal、CommandOpenSidePanelPage)について説明しています。
一般的なフロー:
src/front-components/run-action.tsx
src/command-menu-items/run-action.command-menu-item.ts
条件付き可用性式
conditionalAvailabilityExpression フィールドにより、現在のページコンテキストに基づいてコマンドの表示タイミングを制御できます。 式を構築するために、twenty-sdk から型付きの変数と演算子をインポートします:
src/command-menu-items/bulk-update.command-menu-item.ts
RECORD_SELECTION は、すでに空ではない選択状態を意味します。特定の件数を示す場合にのみ numberOfSelectedRecords を使用してください(例: >= 2)。コンテキスト変数
これらは現在のページの状態を表します:| 変数 | タイプ | 説明 |
|---|---|---|
pageType | string | 現在のページタイプ(例:‘RecordIndexPage’、‘RecordShowPage’) |
isInSidePanel | boolean | コンポーネントがサイドパネル内でレンダリングされているかどうか |
numberOfSelectedRecords | number | 現在選択されているレコード数 |
isSelectAll | boolean | 「すべて選択」が有効かどうか |
selectedRecords | array | 選択されたレコードオブジェクト |
favoriteRecordIds | array | お気に入り登録されたレコードの ID |
objectPermissions | object | 現在のオブジェクトタイプの権限 |
targetObjectReadPermissions | object | 対象オブジェクトの読み取り権限 |
targetObjectWritePermissions | object | 対象オブジェクトの書き込み権限 |
featureFlags | object | 有効な機能フラグ |
objectMetadataItem | object | 現在のオブジェクトタイプのメタデータ |
hasAnySoftDeleteFilterOnView | boolean | 現在のビューにソフトデリートフィルターがあるかどうか |
演算子
変数を組み合わせてブール式を作成します:| 演算子 | 説明 |
|---|---|
isDefined(value) | 値が null/undefined でない場合は true |
isNonEmptyString(value) | 値が空でない文字列の場合は true |
includes(array, value) | 配列に値が含まれている場合は true |
includesEvery(array, prop, value) | すべての要素のプロパティに値が含まれている場合は true |
every(array, prop) | すべての要素でそのプロパティが truthy の場合は true |
everyDefined(array, prop) | すべての要素でそのプロパティが定義されている場合は true |
everyEquals(array, prop, value) | すべての要素でそのプロパティが値に等しい場合は true |
some(array, prop) | 少なくとも 1 つの要素でそのプロパティが truthy の場合は true |
someDefined(array, prop) | 少なくとも 1 つの要素でそのプロパティが定義されている場合は true |
someEquals(array, prop, value) | 少なくとも 1 つの要素でそのプロパティが値に等しい場合は true |
someNonEmptyString(array, prop) | 少なくとも 1 つの要素でそのプロパティが空でない文字列である場合は true |
none(array, prop) | すべての要素でそのプロパティが falsy の場合は true |
noneDefined(array, prop) | すべての要素でそのプロパティが未定義の場合は true |
noneEquals(array, prop, value) | どの要素でもそのプロパティが値に等しくない場合は true |