メインコンテンツまでスキップ

PreviewLabGallery

PreviewLabGallery Composable

PreviewLabGallery Composable は、プロジェクト内のすべての Preview を 一覧表示 し、選択した Preview を表示するための エントリーポイントとなるコンポーネントです。通常、一つのプロジェクトに1つあれば十分です。

PreviewLabGallery には Preview 情報のリストを渡す必要がある他、オプションで細かな設定を設定することができます。

val appPreviews by collectAllModulePreviews()

PreviewLabGallery(
previewList = appPreviews,
)
  • previewList 引数には collectModulePreviews() / collectAllModulePreviews() で収集したプレビューリスト、または手動で設定した PreviewLabPreview のインスタンスを指定してください。

ただしいくつかのプラットフォームでは PreviewLabGallery をラップし、次セクション で説明するプラットフォームでは通常そちらを利用することが推奨されます。

プラットフォームに最適化された PreviewLabGallery

PreviewLabGalleryWindows (Desktop)

PreviewLabGallery をラップして Desktop 向けに最適化して表示します。

現在は 1つの Window を表示するだけですが、将来的に複数の Window が表示されるようになる可能性が高いため、Dekstop においては こちらを利用することが強く推奨 されます。

val appPreviews by collectAllModulePreviews()

fun main() {
application {
PreviewLabGalleryWindows(
previewList = appPreviews,
)
}
}

EmbeddedPreviewOrGallery (JS, WasmJs)

PreviewLabGallery をラップして Web 向けに最適化して表示します。

val appPreviews by collectAllModulePreviews()

fun main() {
ComposeViewport(document.body!!) {
EmbeddedPreviewOrGallery(
previewList = appPreviews.toList(),
)
}
}

PreviewLabGallery のオプション

PreviewLabGallery (PreviewLabGalleryWindows 等も含む) に設定できるオプションは以下の通りです。

@Composable
fun PreviewLabGallery(
previewList: List<PreviewLabPreview>,
modifier: Modifier = Modifier,
state: PreviewLabGalleryState = remember { PreviewLabGalleryState() },
openFileHandler: OpenFileHandler<out Any?>? = null,
featuredFileList: Map<String, List<String>> = emptyMap(),
) = ...

PreviewLabGallery の KDoc もご覧ください。

previewList

collectModulePreviews() / collectAllModulePreviews() で収集したプレビューリストを渡してください。ここに渡されたプレビューが一覧表示されます。または 自分で PreviewLabPreview のインスタンスを作成して渡すこともできます。Preview の収集については Collect Preview を参照してください。

基本例
PreviewLabGallery(
previewList = appPreviews,
)
辞書順に並べ替える
PreviewLabGallery(
previewList = appPreviews
.sortedBy { it.displayName },
)
手動で構築したリストと結合する
val customizedPreviewList = listOf(
PreviewLabPreview(
id = "my-composable",
displayName = "My Composable",
) { // @Composable () -> Unit
PreviewLab {
MyComposable()
}
},
// ...
)
PreviewLabGallery(
previewList = appPreviews + customizedPreviewList,
)

PreviewLabPreview については PreviewLabPreview の KDoc を参照してください。

state (option)

PreviewLabGallery の状態は PreviewLabGalleryState に格納されています。 この state を手動で管理したい場合、 state 引数に PreviewLabGalleryState のインスタンスをします。

PreviewLabGalleryState の詳しい機能については PreviewLabGalleryState の KDoc を参照してください。

openFileHandler (option)

OpenFileHandler を参照してください。

featuredFileList (option)

Featured Files を参照してください。

mcpServerConfig (option, JVM only)

MCP Server を参照してください。