{"id":13743983,"url":"https://github.com/fayeed/dash_chat","last_synced_at":"2026-02-22T15:35:56.628Z","repository":{"id":45496515,"uuid":"197759564","full_name":"fayeed/dash_chat","owner":"fayeed","description":"The most complete Chat UI for flutter highly customizable and helps developing chat UI faster.","archived":false,"fork":false,"pushed_at":"2023-08-24T14:54:25.000Z","size":232,"stargazers_count":445,"open_issues_count":54,"forks_count":211,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-11-15T06:02:49.377Z","etag":null,"topics":["chat","flutter","react-native-gifted-chat"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/dash_chat","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fayeed.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-07-19T11:15:48.000Z","updated_at":"2024-10-08T09:35:37.000Z","dependencies_parsed_at":"2024-01-15T00:14:31.056Z","dependency_job_id":"bd9032a2-c522-4f42-af24-fb491e038dd4","html_url":"https://github.com/fayeed/dash_chat","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fayeed%2Fdash_chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fayeed%2Fdash_chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fayeed%2Fdash_chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fayeed%2Fdash_chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fayeed","download_url":"https://codeload.github.com/fayeed/dash_chat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224802878,"owners_count":17372518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","flutter","react-native-gifted-chat"],"created_at":"2024-08-03T05:01:00.954Z","updated_at":"2025-10-23T07:25:09.787Z","avatar_url":"https://github.com/fayeed.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\" style=\"font-size: 48px;\"\u003e⚠️ V1 is not maintained anymore, check the V2 on: https://github.com/molteo-engineering-team/Dash-Chat-2 ⚠️\u003c/h1\u003e\n\u003c/p\u003e \n\u003chr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://media.giphy.com/media/ghBkB5BHQgdhamZ2WA/giphy.gif\" /\u003e\n  \u003ch1 align=\"center\" style=\"font-size: 48px;\"\u003e💬 Dash Chat\u003c/h1\u003e\n  \u003ch5 align=\"center\"\u003eThe most complete Chat UI for flutter\u003c/h5\u003e\n  \u003cp align=\"center\"\u003eInspired by \u003ca href=\"https://github.com/FaridSafi/react-native-gifted-chat\"\u003ereact-native-gifted-chat.\u003c/a\u003e\n      Highly customizable and helps developing chat UI faster.\n  \u003c/p\u003e\n\u003c/p\u003e\n\n## Usage 💻\n\nTo use this package, add `dash_chat` as a [dependency in your pubspec.yaml file](https://flutter.io/platform-plugins/).\n\n## Features 🔮\n\n- Fully customizable components\n- Copy messages to clipboard\n- Multi-line TextInput\n- Touchable links using [flutter_parsed_text](https://pub.dev/packages/flutter_parsed_text)\n- Avatar as user's initials\n- Quick Reply messages\n- Load earlier messages\n- Scroll to bottom Widget\n- Composer actions (to attach photos, etc.) - WIP\n\n### Message object 📦\n\n\u003e example, Chat Message\n\n```dart\nChatMessage(\n        text: \"Hello\",\n        user: ChatUser(\n          name: \"Fayeed\",\n          uid: \"123456789\",\n          avatar: \"https://www.wrappixel.com/ampleadmin/assets/images/users/4.jpg\",\n        ),\n        createdAt: DateTime.now(),\n        image: \"http://www.sclance.com/images/picture/Picture_753248.jpg\",\n    );\n```\n\n\u003e example, Chat Message with Quick Replies\n\n```dart\nChatMessage(\n        text: \"This is a quick reply example.\",\n        user: ChatUser(),\n        createdAt: DateTime.now(),\n        quickReplies: QuickReplies(\n          values: \u003cReply\u003e[\n            Reply(\n              title: \"😋 Yes\",\n              value: \"Yes\",\n            ),\n            Reply(\n              title: \"😞 Nope. What?\",\n              value: \"no\",\n            ),\n          ],\n        ),\n      ),\n```\n\n## Parameters ⚙️\n\n- `messageContainerFlex` (int) - Flex value for the messeage container defaults to `1`\n- `height` (double) - Height for the Dash chat Widget.\n- `width` (double) - Width for the Dash chat Widget.\n- `messages` (List\u003cChatMessage\u003e) - List of messages to display in the chat.\n- `text` (String) - [optional parameter] If provided will stop using the default controller.\n- `onTextChange` (Function(String)) - If the text parameter is passed then onTextChange must also be passed.\n- `inputDecoration` (InputDecoration) - Used to provide input decoration to the text.\n- `messageIdGenerator` (String Function) - Usually new message added by the user gets UUID v4 String generater by [uuid](https://pub.dev/packages/uuid).\n- `user` (ChatUser) - The current user object.\n\n```dart\n  DashChat(\n    user: ChatUser(\n      name: \"Jhon Doe\",\n      uid: \"xxxxxxxxx\",\n      avatar: \"https://www.wrappixel.com/ampleadmin/assets/images/users/4.jpg\",\n    )\n  );\n```\n\n- `onSend` (Function(ChatMessage)) - Callback when sending a message.\n- `alwaysShowSend` (bool) - Should the send button be always active defaults to false.\n- `avatarMaxSize` (double) - Sets the default Avatar's max size, default is `30.0`.\n- `dateFormat` (DateFormat) - Format to use for rendering date default is `yyyy-MM-dd`.\n- `timeFormat` (DateFormat) - Format to use for rendering time default is `HH:mm:ss`.\n- `showUserAvatar` (bool) - Should the user avatar be shown.\n- `showAvatarForEveryMessage` (bool) - Should the avatar be shown for every message defaults to false.\n- `onPressAvatar` (Function(ChatUser)) - Callback funtion when avatar is tapped on.\n- `onLongPressAvatar` (Function(ChatUser)) - Callback funtion when avatar is long pressed on.\n- `onLongPressMessage` (Function(ChatUser)) - Callback funtion when message is long pressed on.\n- `inverted` (bool) - Should the messages be shown in reversed order\n- `avatarBuilder` (Widget Function(ChatUser)) - Will override the the default avatar.\n- `messageBuilder` (Widget Function(ChatMessage)) - Will override the the default message widget.\n- `messageTextBuilder` (Widget Function(String)) - Will override the the default message text widget.\n- `messageImageBuilder` (Widget Function(String)) - Will override the the default message imaeg widget\n- `messageTimeBuilder` (Widget Function(String)) - Will override the the default message time widget.\n- `dateBuilder` (Widget Function(String)) - Will override the the default chat view date widget.\n- `sendButtonBuilder` (Widget Function(Function)) - Will override the the default send button widget.\n- `chatFooterBuilder` (Widget Function) - A Widget that will be shown below the MessageListView like you can a \"tying...\" Text Widget at the end.\n- `inputFooterBuilder` (Widget Function) - A Widget that will be shown below the ChatInputToolbar.\n- `maxInputLength` (int) - Main input length of the input text box defaulst to no limit.\n- `parsePatterns` (List\u003cMatchText\u003e) - Used to parse text to make a linkified text uses [flutter_parsed_text](https://pub.dev/packages/flutter_parsed_text).\n\n  ```dart\n  DashChat(\n    parsePatterns: \u003cMatchText\u003e[\n      MatchText(\n        type: \"email\",\n        onTap: (String value) {}\n      ),\n      MatchText(\n        pattern: r\"\\B#+([\\w]+)\\b\",\n        style: TextStyle(\n          color: Colors.pink,\n          fontSize: 24,\n        ),\n        onTap: (String value) {}\n      ),\n    ]\n  );\n  ```\n\n- `messageContainerDecoration` (BoxDecoration) - Provides a custom style to the message container.\n- `leading` (List\u003cWidget\\\u003e) - List of Widget to show before the TextField.\n- `trailing` (List\u003cWidget\\\u003e) - List of Widget to show after the TextField will remove the send button.\n- `readOnly` (bool) - Hides the input bar, defaults to `false`.\n- `showTraillingBeforeSend` - Should the trailling widgets be shown before the send button defaults to `true`.\n- `inputTextStyle` (TextStyle) - Style for the TextField.\n- `inputContainerStyle` (BoxDecoration) - TextField container style.\n- `inputMaxLines` (int) - Max length of the input lines default to 1.\n- `showInputCursor` (bool) - Should the input cursor be shown defaults to true.\n- `inputCursorWidth` (double) - Width of the text input defaults to 2.0.\n- `inputCursorColor` (Color) - Color of the input cursor defaults to theme.\n- `scrollController` (ScrollController) - ScrollController for the MessageListView.\n- `messageContainerPadding` (EdgeInsetsGeometry) - Padding for the MessageListView.\n- `messagePadding` (EdgeInsets) - Padding for the MessageContainer.\n- `onQuickReply` (Funtion(Reply)) - Callback method when the quickReply was tapped on.\n- `quickReplyStyle` (BoxDecoration) - Container style for the QuickReply Container.\n- `quickReplyTextStyle` (TextStyle) - QuickReply text style.\n- `quickReplyBuilder` (Widget Function(Reply)) - Will override the the default QuickReply Widget.\n- `scrollToBottom` (bool) - Should the scroll to bottom widget be shown defaults to `true`.\n- `scrollToBottomStyle` (ScrollToBottomStyle) - sets the style \u0026 position for the scrollToBottom widget.\n- `scrollToBottomWidget` (Widget Function()) - Overrides the default scrollToBottomWidget with a custom widget.\n- `onScrollToBottomPress` (Function) - override the default behaviour of the onScrollToBottom Widget.\n- `shouldShowLoadEarlier` (bool) - Should the LoadEarlier Floating widget be shown or use load as you scroll scheme whcih will call the onLoadEarlier defaults to false which is this scheme.\n- `showLoadEarlierWidget` (Widget Function()) - Override the default behaviour of the onScrollToBottom Widget.\n- `onLoadEarlier` (Function) - Override the default behaviour of the onLoadEarleir Widget or used as a callback when the listView reaches the top.\n- `inputToolbarPadding` (EdgeInsets) - Can be used to add padding to the input toolbar.\n- `inputToolbarMargin` (EdgeInsets) - Can be used to add margin to the input toolbar.\n- `shouldStartMessagesFromTop` (bool) - Can be used to align messages so that it starts from top to bottom instead of the default bottom to top.\n- `textBeforeImage` (bool) - Can be used to set the order of the text and the image inside a message defaults to `true`.\n- `quickReplyScroll` (bool) - Should the quick reply options be horizontally scrollable\n- `quickReplyPadding` (EdgeInsetsGeometry) - Padding for QuickReply\n- `inputDisabled` (bool) - Should the input TextField be disabled, defaults to `false`\n- `messageDecorationBuilder` (BoxDecoration Function(ChatMessage, isUser) - Override the message container decoration. [Note: This will override the messageContainerDecoration ]\n\n  ```dart\n  DashChat(\n    ...\n    messageDecorationBuilder: (ChatMessage msg, bool isUser){\n      return BoxDecoration(\n        ...\n        color: isUser ? Colors.red : Colors.blue, // example\n        ...\n      );\n    },\n    ...\n  );\n  ```\n\n## Credits 👨🏻‍💻\n\n- Transparent Image - [Brian Egan](https://github.com/brianegan)\n- uuid - [Yulian Kuncheff](https://github.com/Daegalus)\n\n## Found this project useful? ❤️\n\nIf you found this project useful, then please consider giving it a ⭐️ on Github and sharing it with your friends via social media.\n\n## License ⚖️\n\n- [MIT](https://github.com/fayeed/dash_chat/blob/master/LICENSE)\n\n## API details 📝\n\nSee the [dash_chat.dart](https://github.com/fayeed/dash_chat/blob/master/lib/dash_chat.dart) for more API details\n\n## Issues and feedback 💭\n\nIf you have any suggestion for including a feature or if something doesn't work, feel free to open a Github [issue](https://github.com/fayeed/dash_chat/issues) for us to have a discussion on it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffayeed%2Fdash_chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffayeed%2Fdash_chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffayeed%2Fdash_chat/lists"}