Skip to content

Conversation

@dhyash-simform
Copy link
Collaborator

Description

Checklist

  • The title of my PR starts with a [Conventional Commit] prefix (fix:, feat:, docs: etc).
  • I have followed the [Contributor Guide] when preparing my PR.
  • I have updated/added tests for ALL new/updated/fixed functionality.
  • I have updated/added relevant documentation in docs and added dartdoc comments with ///.
  • I have updated/added relevant examples in examples or docs.

Breaking Change?

  • Yes, this PR is a breaking change.
  • No, this PR is not a breaking change.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add this file to .gitignore for now.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add this file to .gitignore for now

id: '1',
name: 'Breaking Bad',
name: 'Breaking Bad Group',
typingUsers: {'Heisenberg', 'Jessie Pinkman', 'Walter White'},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't have this in the initial list.

);
}

/// Initial chat list to be displayed in the chat list view.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also mention the reason for having this as a Map.

void addChat(ChatViewListModel chat) {
initialChatMap[chat.id] = chat;
if (_chatListStreamController.isClosed) return;
_chatListStreamController.sink.add(initialChatMap);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can directly call add on a StreamController instead of accessing its sink first.

super.key,
this.config,
required this.controller,
this.isLastPage = false,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please take this as a callback rather than a bool.

this.config,
required this.controller,
this.isLastPage = false,
this.showSearchTextField = true,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the necessity for this.

Comment on lines 90 to 94
final showTypingIndicator = isAnyUserTyping ||
(isAnyUserTyping &&
typeIndicatorConfig.widgetBuilder?.call(chat) != null) ||
(isAnyUserTyping &&
typeIndicatorConfig.textBuilder?.call(chat) != null);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems wrong. As per short circuiting, if isAnyUserTyping is false then the conditions after it would always be false since the usage of &&.

this.chatViewListTileConfig,
this.lastMessageTimeWidget,
this.trailingWidget,
this.unReadCountWidget,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please make this unreadCountWidget.

if (count == 1) {
return '$firstName is $text';
} else if (count == 2) {
return '$firstName & 1 other $text';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please show the second name as well.

@dhyash-simform dhyash-simform force-pushed the feat/chat_list_typing_indicator branch 4 times, most recently from 523a764 to 201df0d Compare July 28, 2025 09:38
@dhyash-simform dhyash-simform force-pushed the feat/chat_list_typing_indicator branch 2 times, most recently from ee5a62c to 0cd8b8b Compare August 1, 2025 10:15
}
}

extension TypingIndicatorExtension on List<String> {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please instead use ExtensionType here. Doing so would avoid this method showing up for every variable of the inbuilt list type.

final ChatViewListLastMessageTileBuilder? lastMessageTileBuilder;

/// Provides configurations related to typing indicator appearance.
final ListTypeIndicatorConfig listTypeIndicatorConfig;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please rename this as discussed.

),
],
if (isAnyUserTyping || lastMessage != null)
AnimatedSwitcher(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add keys to widget to ensure proper animation.

@dhyash-simform dhyash-simform force-pushed the feat/chat_list_typing_indicator branch from 0cd8b8b to 972a780 Compare August 4, 2025 10:14
@dhyash-simform dhyash-simform force-pushed the feat/chat_list_typing_indicator branch 2 times, most recently from ac9b456 to 7ad3379 Compare August 19, 2025 12:00
@dhyash-simform dhyash-simform changed the base branch from main to feat/chat_list_ui_base August 19, 2025 12:00
@dhyash-simform dhyash-simform force-pushed the feat/chat_list_ui_base branch from ae9ca52 to 43bd95b Compare August 19, 2025 12:02
@dhyash-simform dhyash-simform force-pushed the feat/chat_list_typing_indicator branch from 7ad3379 to 91ceb1e Compare August 20, 2025 07:02
@aditya-css aditya-css merged commit e83c426 into feat/chat_list_ui_base Aug 20, 2025
1 check passed
@aditya-css aditya-css deleted the feat/chat_list_typing_indicator branch August 20, 2025 07:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants