-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
173 additions
and
105 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,14 @@ | ||
## 0.0.1 | ||
### 1.1.1 | ||
* [Fix] Better handling of assets | ||
|
||
* TODO: Describe initial release. | ||
### 1.1.0 | ||
|
||
* [New] Add custom Giphy selection handler | ||
|
||
### 1.0.1 | ||
|
||
* [Fix] example dependencies | ||
|
||
### 1.0.0 | ||
|
||
* Initial release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,163 @@ | ||
# giphy_selector | ||
# Giphy Selector | ||
|
||
A new Flutter plugin project. | ||
[](https://pub.dartlang.org/packages/giphy_selector) | ||
|
||
## Overview | ||
|
||
Inspired by [giphy_get](https://github.com/bazookon/giphy_get) | ||
|
||
This package allow to get gifs, sticker or emojis from [GIPHY](https://www.giphy.com/) in pure dart | ||
code using [Giphy SDK](https://developers.giphy.com/docs/sdk) design guidelines. | ||
|
||
<img src="https://github.com/amantoux/giphy_selector/raw/main/example/assets/demo/giphy_selector_widget.gif" width="360" /> | ||
|
||
## Getting Started | ||
|
||
This project is a starting point for a Flutter | ||
[plug-in package](https://flutter.dev/developing-packages/), | ||
a specialized package that includes platform-specific implementation code for | ||
Android and/or iOS. | ||
Important! you must register your app at [Giphy Develepers](https://developers.giphy.com/dashboard/) | ||
and get your APIKEY | ||
|
||
## Localizations | ||
|
||
Currently english, french and spanish is supported. | ||
|
||
```dart | ||
void runApp() { | ||
return MaterialApp( | ||
title: ' Demo', | ||
localizationsDelegates: [ | ||
// Default Delegates | ||
GlobalMaterialLocalizations.delegate, | ||
GlobalWidgetsLocalizations.delegate, | ||
// Add this line | ||
GiphyGetUILocalizations.delegate | ||
], | ||
supportedLocales: [ | ||
//Your supported languages | ||
Locale('en', ''), | ||
Locale('es', ''), | ||
Locale('fr', ''), | ||
], | ||
home: MyHomePage(title: ' Demo'), | ||
); | ||
} | ||
``` | ||
|
||
### Get only Gif | ||
|
||
This is for get gif without wrapper and tap to more | ||
|
||
```dart | ||
import 'package:giphy_selector/giphy_selector.dart'; | ||
GiphyGif gif = await GiphyGet.getGif( | ||
context: context, //Required | ||
apiKey: "your api key HERE", //Required. | ||
lang: GiphyLanguage.english, //Optional - Language for query. | ||
randomID: "abcd", // Optional - An ID/proxy for a specific user. | ||
tabColor:Colors.teal, // Optional- default accent color. | ||
); | ||
``` | ||
|
||
### Options | ||
|
||
| Value | Type | Description | Default | | ||
|--------------|--------|------------------------------------------------------------------------------------------------------------------|---------------------------------| | ||
| `lang` | String | Use [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) language code or use GiphyLanguage constants | `GiphyLanguage.english` | | ||
| `randomID` | String | An ID/proxy for a specific user. | `null` | | ||
| `searchText` | String | Input search hint, we recommend use [flutter_18n package](https://pub.dev/packages/flutter_i18n) for translation | `"Search GIPHY"` | | ||
| `tabColor` | Color | Color for tabs and loading progress, | `Theme.of(context).accentColor` | | ||
|
||
### [Get Random ID](https://developers.giphy.com/docs/api/endpoint#random-id) | ||
|
||
```dart | ||
Futurew<void> doSomeThing() async { | ||
GiphyClient giphyClient = GiphyClient(apiKey: 'YOUR API KEY'); | ||
String randomId = await giphyClient.getRandomId(); | ||
} | ||
``` | ||
|
||
# Widgets | ||
|
||
Optional but this widget is required if you get more gif's of user or view on Giphy following Giphy | ||
Design guidelines | ||
|
||
 | ||
|
||
## GiphyGifWidget | ||
|
||
Parameters | ||
|
||
| Value | Type | Description | Default | | ||
|----------------------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------|------------------| | ||
| `gif` required | GiphyGif | GiphyGif object from stream or JSON | | | ||
| `giphyGetWrapper` required | GiphyGetWrapper | selector instance used to find more by author | null | | ||
| `showGiphyLabel` | bool | show or hide `Powered by GIPHY`label at bottom | true | | ||
| `borderRadius` | BorderRadius | add border radius to image | null | | ||
| `imageAlignment` | Alignment | this widget is a [Stack](https://api.flutter.dev/flutter/widgets/Stack-class.html) with Image and tap buttons this property adjust alignment | Alignment.center | | ||
|
||
## GiphyGetWrapper | ||
|
||
Parameters | ||
|
||
| Value | Type | Description | Default | | ||
|--------------------------|----------|-------------------------------------------------------------|---------| | ||
| `giphy_api_key` required | String | Your Giphy API KEY | null | | ||
| `builder` | function | return Stream\<GiphyGif\> and Instance of GiphyGetWrapper | null | | ||
|
||
## Available methods | ||
|
||
```dart | ||
void getGif(String queryText, BuildContext context); | ||
``` | ||
|
||
```dart | ||
void build(BuildContext context) { | ||
return GiphyGetWrapper( | ||
giphy_api_key: 'REPLACE_WITH YOUR_API_KEY', | ||
// Builder with Stream<GiphyGif> and Instance of GiphyGetWrapper | ||
builder: (stream, giphyGetWrapper) => | ||
StreamBuilder<GiphyGif>( | ||
stream: stream, | ||
builder: (context, snapshot) { | ||
return Scaffold( | ||
body: snapshot.hasData | ||
? SizedBox( | ||
// GiphyGifWidget with tap to more | ||
child: GiphyGifWidget( | ||
imageAlignment: Alignment.center, | ||
gif: snapshot.data, | ||
giphyGetWrapper: giphyGetWrapper, | ||
borderRadius: BorderRadius.circular(30), | ||
showGiphyLabel: true, | ||
), | ||
) | ||
: Text("No GIF"), | ||
floatingActionButton: FloatingActionButton( | ||
onPressed: () async { | ||
//Open Giphy Sheet | ||
giphyGetWrapper.getGif('', context); | ||
}, | ||
tooltip: 'Open Sticker', | ||
child: Icon(Icons.insert_emoticon), | ||
), | ||
); | ||
} | ||
) | ||
); | ||
} | ||
``` | ||
|
||
## Using the example | ||
|
||
First export your giphy api key | ||
|
||
```terminal | ||
export GIPHY_API_KEY=YOUR_GIPHY_API_KEY | ||
``` | ||
|
||
and then run. | ||
|
||
For help getting started with Flutter development, view the | ||
[online documentation](https://flutter.dev/docs), which offers tutorials, | ||
samples, guidance on mobile development, and a full API reference. | ||
## Contrib | ||
|
||
The plugin project was generated without specifying the `--platforms` flag, no platforms are currently supported. | ||
To add platforms, run `flutter create -t plugin --platforms <platforms> .` in this directory. | ||
You can also find a detailed instruction on how to add platforms in the `pubspec.yaml` at https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms. | ||
Feel free to make any PR's |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.