show static method

Future<void> show(
  1. BuildContext context, {
  2. List<CLCommandItem> items = const [],
  3. List<CLCommandItem>? previewItems,
  4. Future<List<CLCommandItem>> asyncSearch(
    1. String query
    )?,
  5. int minQueryLength = 1,
  6. Duration debounce = const Duration(milliseconds: 300),
  7. void onAskAi(
    1. String query
    )?,
  8. String? askAiLabel,
  9. String? hintText,
  10. String? emptyText,
})

Implementation

static Future<void> show(
  BuildContext context, {
  List<CLCommandItem> items = const [],
  List<CLCommandItem>? previewItems,
  Future<List<CLCommandItem>> Function(String query)? asyncSearch,
  int minQueryLength = 1,
  Duration debounce = const Duration(milliseconds: 300),
  void Function(String query)? onAskAi,
  String? askAiLabel,
  String? hintText,
  String? emptyText,
}) {
  return showGeneralDialog(
    context: context,
    barrierDismissible: true,
    barrierLabel: 'CLCommand',
    barrierColor: Colors.black.withValues(alpha: 0.4),
    transitionDuration: const Duration(milliseconds: 150),
    pageBuilder: (ctx, _, __) => CLCommandPalette(
      items: items,
      previewItems: previewItems,
      asyncSearch: asyncSearch,
      minQueryLength: minQueryLength,
      debounce: debounce,
      onAskAi: onAskAi,
      askAiLabel: askAiLabel,
      hintText: hintText,
      emptyText: emptyText,
    ),
    transitionBuilder: (ctx, anim, _, child) => FadeTransition(
      opacity: CurvedAnimation(parent: anim, curve: Curves.easeOut),
      child: ScaleTransition(
        scale: Tween<double>(begin: 0.96, end: 1.0).animate(
          CurvedAnimation(parent: anim, curve: Curves.easeOut),
        ),
        child: child,
      ),
    ),
  );
}