Skip to content

Commit

Permalink
feat: allow overriding of link style (flyerhq#205)
Browse files Browse the repository at this point in the history
  • Loading branch information
felixgabler committed Jan 30, 2022
1 parent 584133c commit 434dc00
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
18 changes: 18 additions & 0 deletions lib/src/chat_theme.dart
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ abstract class ChatTheme {
required this.messageInsetsVertical,
required this.primaryColor,
required this.receivedEmojiMessageTextStyle,
this.receivedMessageBodyLinkTextStyle,
required this.receivedMessageBodyTextStyle,
required this.receivedMessageCaptionTextStyle,
required this.receivedMessageDocumentIconColor,
Expand All @@ -83,6 +84,7 @@ abstract class ChatTheme {
required this.sendButtonMargin,
required this.sendingIcon,
required this.sentEmojiMessageTextStyle,
this.sentMessageBodyLinkTextStyle,
required this.sentMessageBodyTextStyle,
required this.sentMessageCaptionTextStyle,
required this.sentMessageDocumentIconColor,
Expand Down Expand Up @@ -165,6 +167,10 @@ abstract class ChatTheme {
/// Text style used for displaying emojis on text messages
final TextStyle receivedEmojiMessageTextStyle;

/// Text style used for displaying link text on received text messages.
/// Defaults to [receivedMessageBodyTextStyle]
final TextStyle? receivedMessageBodyLinkTextStyle;

/// Body text style used for displaying text on different types
/// of received messages
final TextStyle receivedMessageBodyTextStyle;
Expand Down Expand Up @@ -201,6 +207,10 @@ abstract class ChatTheme {
/// Text style used for displaying emojis on text messages
final TextStyle sentEmojiMessageTextStyle;

/// Text style used for displaying link text on sent text messages.
/// Defaults to [sentMessageBodyTextStyle]
final TextStyle? sentMessageBodyLinkTextStyle;

/// Body text style used for displaying text on different types
/// of sent messages
final TextStyle sentMessageBodyTextStyle;
Expand Down Expand Up @@ -292,6 +302,7 @@ class DefaultChatTheme extends ChatTheme {
double messageInsetsVertical = 16,
Color primaryColor = primary,
TextStyle receivedEmojiMessageTextStyle = const TextStyle(fontSize: 40),
TextStyle? receivedMessageBodyLinkTextStyle,
TextStyle receivedMessageBodyTextStyle = const TextStyle(
color: neutral0,
fontSize: 16,
Expand Down Expand Up @@ -323,6 +334,7 @@ class DefaultChatTheme extends ChatTheme {
EdgeInsetsGeometry? sendButtonMargin,
Widget? sendingIcon,
TextStyle sentEmojiMessageTextStyle = const TextStyle(fontSize: 40),
TextStyle? sentMessageBodyLinkTextStyle,
TextStyle sentMessageBodyTextStyle = const TextStyle(
color: neutral7,
fontSize: 16,
Expand Down Expand Up @@ -387,6 +399,7 @@ class DefaultChatTheme extends ChatTheme {
messageInsetsVertical: messageInsetsVertical,
primaryColor: primaryColor,
receivedEmojiMessageTextStyle: receivedEmojiMessageTextStyle,
receivedMessageBodyLinkTextStyle: receivedMessageBodyLinkTextStyle,
receivedMessageBodyTextStyle: receivedMessageBodyTextStyle,
receivedMessageCaptionTextStyle: receivedMessageCaptionTextStyle,
receivedMessageDocumentIconColor: receivedMessageDocumentIconColor,
Expand All @@ -399,6 +412,7 @@ class DefaultChatTheme extends ChatTheme {
sendButtonMargin: sendButtonMargin,
sendingIcon: sendingIcon,
sentEmojiMessageTextStyle: sentEmojiMessageTextStyle,
sentMessageBodyLinkTextStyle: sentMessageBodyLinkTextStyle,
sentMessageBodyTextStyle: sentMessageBodyTextStyle,
sentMessageCaptionTextStyle: sentMessageCaptionTextStyle,
sentMessageDocumentIconColor: sentMessageDocumentIconColor,
Expand Down Expand Up @@ -466,6 +480,7 @@ class DarkChatTheme extends ChatTheme {
double messageInsetsVertical = 16,
Color primaryColor = primary,
TextStyle receivedEmojiMessageTextStyle = const TextStyle(fontSize: 40),
TextStyle? receivedMessageBodyLinkTextStyle,
TextStyle receivedMessageBodyTextStyle = const TextStyle(
color: neutral7,
fontSize: 16,
Expand Down Expand Up @@ -497,6 +512,7 @@ class DarkChatTheme extends ChatTheme {
EdgeInsetsGeometry? sendButtonMargin,
Widget? sendingIcon,
TextStyle sentEmojiMessageTextStyle = const TextStyle(fontSize: 40),
TextStyle? sentMessageBodyLinkTextStyle,
TextStyle sentMessageBodyTextStyle = const TextStyle(
color: neutral7,
fontSize: 16,
Expand Down Expand Up @@ -561,6 +577,7 @@ class DarkChatTheme extends ChatTheme {
messageInsetsVertical: messageInsetsVertical,
primaryColor: primaryColor,
receivedEmojiMessageTextStyle: receivedEmojiMessageTextStyle,
receivedMessageBodyLinkTextStyle: receivedMessageBodyLinkTextStyle,
receivedMessageBodyTextStyle: receivedMessageBodyTextStyle,
receivedMessageCaptionTextStyle: receivedMessageCaptionTextStyle,
receivedMessageDocumentIconColor: receivedMessageDocumentIconColor,
Expand All @@ -573,6 +590,7 @@ class DarkChatTheme extends ChatTheme {
sendButtonMargin: sendButtonMargin,
sendingIcon: sendingIcon,
sentEmojiMessageTextStyle: sentEmojiMessageTextStyle,
sentMessageBodyLinkTextStyle: sentMessageBodyLinkTextStyle,
sentMessageBodyTextStyle: sentMessageBodyTextStyle,
sentMessageCaptionTextStyle: sentMessageCaptionTextStyle,
sentMessageDocumentIconColor: sentMessageDocumentIconColor,
Expand Down
5 changes: 4 additions & 1 deletion lib/src/widgets/text_message.dart
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ class TextMessage extends StatelessWidget {
final bodyTextStyle = user.id == message.author.id
? InheritedChatTheme.of(context).theme.sentMessageBodyTextStyle
: InheritedChatTheme.of(context).theme.receivedMessageBodyTextStyle;
final bodyLinkTextStyle = user.id == message.author.id
? InheritedChatTheme.of(context).theme.sentMessageBodyLinkTextStyle
: InheritedChatTheme.of(context).theme.receivedMessageBodyLinkTextStyle;
final linkDescriptionTextStyle = user.id == message.author.id
? InheritedChatTheme.of(context)
.theme
Expand All @@ -77,7 +80,7 @@ class TextMessage extends StatelessWidget {
.theme
.userNameTextStyle
.copyWith(color: color),
linkStyle: bodyTextStyle,
linkStyle: bodyLinkTextStyle ?? bodyTextStyle,
metadataTextStyle: linkDescriptionTextStyle,
metadataTitleStyle: linkTitleTextStyle,
onPreviewDataFetched: _onPreviewDataFetched,
Expand Down

0 comments on commit 434dc00

Please sign in to comment.