pickGif static method

Future<GiphyGif?> pickGif({
  1. required BuildContext context,
  2. required String apiKey,
  3. String rating = GiphyRating.g,
  4. String lang = GiphyLanguage.english,
  5. bool sticker = false,
  6. Widget? title,
  7. ErrorListener? onError,
  8. bool showPreviewPage = true,
  9. bool showGiphyAttribution = true,
  10. bool fullScreenDialog = true,
  11. String searchHintText = 'Search GIPHY',
  12. GiphyPreviewType previewType = GiphyPreviewType.previewWebp,
  13. SearchTextBuilder? searchTextBuilder,
  14. AppBarBuilder? appBarBuilder,
  15. WidgetBuilder? loadingBuilder,
  16. ResultsBuilder? resultsBuilder,
  17. WidgetBuilder? noResultsBuilder,
  18. SearchErrorBuilder? errorBuilder,
})

Renders a full screen modal dialog for searching, and selecting a Giphy image.

Implementation

static Future<GiphyGif?> pickGif({
  required BuildContext context,
  required String apiKey,
  String rating = GiphyRating.g,
  String lang = GiphyLanguage.english,
  bool sticker = false,
  Widget? title,
  ErrorListener? onError,
  bool showPreviewPage = true,
  bool showGiphyAttribution = true,
  bool fullScreenDialog = true,
  String searchHintText = 'Search GIPHY',
  GiphyPreviewType previewType = GiphyPreviewType.previewWebp,
  SearchTextBuilder? searchTextBuilder,
  AppBarBuilder? appBarBuilder,
  WidgetBuilder? loadingBuilder,
  ResultsBuilder? resultsBuilder,
  WidgetBuilder? noResultsBuilder,
  SearchErrorBuilder? errorBuilder,
}) async {
  GiphyGif? result;
  await Navigator.push(
    context,
    MaterialPageRoute(
      builder: (BuildContext context) => GiphyContext(
        previewType: previewType,
        apiKey: apiKey,
        rating: rating,
        language: lang,
        sticker: sticker,
        onError: onError ?? (error) => _showErrorDialog(context, error),
        onSelected: (gif) {
          result = gif;
          // pop preview page if necessary
          if (showPreviewPage) {
            Navigator.pop(context);
          }
          // pop giphy_picker
          Navigator.pop(context);
        },
        showPreviewPage: showPreviewPage,
        showGiphyAttribution: showGiphyAttribution,
        searchHintText: searchHintText,
        searchTextBuilder: searchTextBuilder,
        appBarBuilder: appBarBuilder,
        loadingBuilder: loadingBuilder,
        resultsBuilder: resultsBuilder,
        noResultsBuilder: noResultsBuilder,
        errorBuilder: errorBuilder,
        child: GiphySearchPage(
          title: title,
        ),
      ),
      fullscreenDialog: fullScreenDialog,
    ),
  );

  return result;
}