From 202029aad166e4a1c749e55aabdd634c1e32ce46 Mon Sep 17 00:00:00 2001 From: Ralf Weinbrecher Date: Sat, 2 Jan 2021 17:16:59 +0100 Subject: [PATCH] Documentation for v0.1.0+1 --- CHANGELOG.md | 4 +- README.md | 68 +++++++++++++++++++++++++++++++- example/pubspec.lock | 2 +- img/chat_bubble_with_button.png | Bin 0 -> 8709 bytes pubspec.yaml | 2 +- 5 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 img/chat_bubble_with_button.png diff --git a/CHANGELOG.md b/CHANGELOG.md index ac07159..1c1a124 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,3 @@ -## [0.0.1] - TODO: Add release date. +## [0.1.0+1] - First public release -* TODO: Describe initial release. +* The first public release diff --git a/README.md b/README.md index 3313827..27b79cc 100644 --- a/README.md +++ b/README.md @@ -67,8 +67,74 @@ final BasicChatMessage message; final bool isMe; final Color backgroundColor; final Color textColor; -final Color buttonColor; final Widget buttonWidget; final String buttonText; ``` +### message + +The property **message** contains an object representing the content of the message. It's defined as: + +```dart +/// The [BasicChatMessage] class represents a single message, that forms +/// the content of a [BasicChatBubble]. This object has the following properties: +/// String [peerUserName] containes the name of the peer user (sender or receiver of message) +/// String [ownUserName] contains the own user name +/// String [messageText] contains the text of the message +/// DateTime [timeStamp] is the date/time of the message was sent +class BasicChatMessage { + String peerUserName; + String messageText; + String timeStamp; + + BasicChatMessage({this.peerUserName, this.messageText, this.timeStamp}); +} +``` + +### isMe + +This parameter indicates, that the user of the app is the sender of the message. It determines the position of the bubble: + +* _true_: **right aligned** chat bubble +* _false_: **left aligned** chat bubble + +### backgroundColor + +This property defines the background color of the chat bubble. + +### textColor + +With this property you can set the color of the text elements of the chat bubble. + +### Embedding a button in the chat bubble + +In some cases it might be useful to embed a button inside the chat bubble. Imagin a messenger app with a video or phone call functionality. + +![Embedded button](https://github.com/rwbr/flutter_basic_chat_bubble/blob/main/img/chat_bubble_with_button.png) + +This can be done by specifying a widget for that purpose in the **buttonWidget** and the **buttonText** parameters. + +### buttonWidget + +Here you specify a widget, that should be used as the button. Usually you would use an InkWell widget to make it tappable. + +Example: + +```dart +InkWell( + child: CircleAvatar( + backgroundColor: Colors.red, + child: Icon( + Icons.video_call, + color: Colors.white, + ), + ), + onTap: () { + print('Button tapped $index'); + } +) +``` + +### buttonText + +This parameter defines the text placed right of the button, replacing the message body. \ No newline at end of file diff --git a/example/pubspec.lock b/example/pubspec.lock index 177a101..dd29fa5 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -68,7 +68,7 @@ packages: path: ".." relative: true source: path - version: "0.0.1" + version: "0.1.0+1" flutter_test: dependency: "direct dev" description: flutter diff --git a/img/chat_bubble_with_button.png b/img/chat_bubble_with_button.png new file mode 100644 index 0000000000000000000000000000000000000000..c84a54ab17b0842921d0e4ce452812f25586da33 GIT binary patch literal 8709 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 z zwKJNm+07=}6OcP@YJI%=r0$a$eYe_URW4@}44iq!kTWJqSme}x;CSP`kW_Y}zfn;r zt-X3`xL&kIdyZY|Po{S+o5zh^t>%T@!brZ%*oNRnOPgXCN@D54{p&VZc4p0vMNM8o zqkYe{kd7x7f(JP5iU-eh9bQT0)`yLzrJf?J-G0@}d>{n8n=rLr?8_uk& zR{Nb(Pfs6oyyPRp7+`s8wQ(nlAEt#kp4WTuNiMm{tjf!QCqaPUhI~?6#>_6cI+r5o zrA36x+XuB{cseL)kugxM|41+zd$~p_k~l5c^3E^i3uStMHrSs*%vJD}5Tao$gEWR^ z$2n6jH5%zbntqL*3(+q)*TwKSA-ZY18rhu3mTT28#lit+Z`-RBy0qvb9%;G|-UxpD z5zIDW%F_8|!6FzI6%LOkO&G|jdYOHr%_0rF{6lH}<3w4hG;}wPlZS$*Z}^T(2UQ>PER$73Yl_{@|x3ER&FLf?JW)&`v>T0t~8u z&E3jLOaND-`w~3`flXHzT0EwM?$+4KVA@GmTZtG!KY#8>x*)1~e2h?EZCLXt5(enl z9#Na~E%%{m7;8+~io+N74|{u^`#rAXPdGnpNhR9ctAG>4xE~jpGseo! zZR(FXTCCiQxMd4Aq81d4nl>?i6tr)TB;zVg%%!o|DcR2w=T4tinwSH&vMwwUILh-v z4zy71IrWg2bhpwkWd%QMrVint(NT-i%0r|Xe;K}0JMOHPw?29?eLH>L%Rc0ab0;4~ z?}kGpk01jVg28^w=8&Zus_lK=aLD~D6Ri|8;)MZINcKSCM=+R`@kai9;nI^-v9GV? zgZl`DEJEekkch-V_>$FXZr!sia|6Q`eOWJB{fXLfR*tw#b32hv;nTj-qbE|71;rBZ zyF%|Sas>N^7Dx`+o61@_x0RK4&$W{uhhNoW4_-x`*UWrd_6b(mPbS10p;x-%?rKqM zKm{euliT+GAYJa?_9EKk5*4w%>1a@0r#D0P9ny44SM2C&ca=V2qiU);KL%KDd=eW5 zoiT_!J2DPj36k^+dfAt7@+91NVy0qt_o}%tZ~J75@7mFLTMbjM3)vOu)u#riaby3f zmO&e%@&aK*qdx(p0@b#@Ol6r+H^R2SNTDFk$bn-t1P2Ca9eRHN-Wxs&wF(M~Nsb`_ z@vA_e0_Qa@P0K)GxIYjGe@gGarwnysy?eLWzfk#eSaiZhLVZ=b+H8{M?B5$&>iTNM&^r(R2g3!