defineView() を使用して、アプリにあらかじめ設定されたビューを組み込みます。通常は、作成する各カスタムオブジェクトに対してデフォルトのインデックスビューを用意します。
src/views/example-view.ts
主なポイント
objectUniversalIdentifierは、このビューを適用するオブジェクトを指定します。 定義したカスタムオブジェクトでも、Twenty の標準オブジェクトでも可能です。key: ViewKey.INDEXは、そのビューがオブジェクトのメイン一覧ビュー(OBJECTナビゲーション項目を開いたときに表示されるビュー)であることを示します。fieldsは、どの列をどの順序で表示するかを制御します。 各フィールドはfieldMetadataUniversalIdentifierを参照します。createdAtなどの自動作成システムフィールドの参照方法については、システムフィールドのターゲット指定を参照してください。- さらに高度な構成のために、
filters、filterGroups、sorts、groups、fieldGroupsも定義できます。 - 同じオブジェクトに複数のビューがある場合、
positionが表示順を制御します。
オプションのプロパティ
上記のすべての enum は
twenty-sdk/define からエクスポートされています。
フィルター
ビューには、あらかじめフィルターを適用した状態で提供できます。 各フィルターには 3 つの要素があります: フィルタリング対象のフィールド、オペランド(どのように比較するか)、値(何と比較するか)。 この 3 つがすべてそろっている必要があります — フィールドの型に適用できないオペランドを使用すると、同期時に拒否されます。フィールドタイプごとにサポートされているオペランド
名前が似ているフィールドタイプでも、まったく異なるオペランドを使用する場合があります。一般的な例としてはSELECTとMULTI_SELECTがあります。
オペランドごとの値の形式
value フィールドは常に JSON シリアライズ可能な値ですが、想定される形式はオペランドによって異なります。
ビューが UI にどのように表示されるか
ビュー単体では、サイドバーから直接アクセスすることはできません。 それをサイドバーに表示するには、ビューのuniversalIdentifier を指す、種類が VIEW のナビゲーションメニュー項目と組み合わせます。 これが標準的なパターンです。各カスタムオブジェクトは通常、デフォルトビューと、それを開くためのサイドバーエントリをセットで提供します。