TF-3236 Display SearchSnippet in search result
This commit is contained in:
@@ -51,6 +51,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
|
||||
SearchQuery? get searchQuery => searchEmailFilter.value.text;
|
||||
|
||||
FocusNode searchFocus = FocusNode();
|
||||
String currentSearchText = '';
|
||||
|
||||
SearchController(
|
||||
this._quickSearchEmailInteractor,
|
||||
@@ -89,6 +90,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
|
||||
required AccountId accountId,
|
||||
required String query,
|
||||
}) async {
|
||||
currentSearchText = query;
|
||||
return await _quickSearchEmailInteractor.execute(
|
||||
session,
|
||||
accountId,
|
||||
|
||||
@@ -121,7 +121,10 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
itemRecentBuilder: (context, recent) => RecentSearchItemTileWidget(recent),
|
||||
onRecentSelected: _invokeSelectRecentItem,
|
||||
suggestionsCallback: _dashBoardController.quickSearchEmails,
|
||||
itemBuilder: (context, email) => EmailQuickSearchItemTileWidget(email, _dashBoardController.selectedMailbox.value),
|
||||
itemBuilder: (context, email) => EmailQuickSearchItemTileWidget(
|
||||
email,
|
||||
_dashBoardController.selectedMailbox.value,
|
||||
searchQuery: SearchQuery(_searchController.currentSearchText.trim())),
|
||||
onSuggestionSelected: _invokeSelectSuggestionItem,
|
||||
contactItemBuilder: (context, emailAddress) => ContactQuickSearchItem(emailAddress: emailAddress),
|
||||
contactSuggestionsCallback: _dashBoardController.getContactSuggestion,
|
||||
|
||||
@@ -576,6 +576,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
|
||||
child: EmailQuickSearchItemTileWidget(
|
||||
listSuggestionSearch[index],
|
||||
controller.currentMailbox,
|
||||
searchQuery: SearchQuery(controller.currentSearchText.value.trim()),
|
||||
contentPadding: SearchEmailViewStyle.getSearchSuggestionListPadding(
|
||||
context,
|
||||
controller.responsiveUtils
|
||||
@@ -626,7 +627,8 @@ class SearchEmailView extends GetWidget<SearchEmailController>
|
||||
onNotification: (ScrollNotification scrollInfo) {
|
||||
if (scrollInfo is ScrollEndNotification
|
||||
&& controller.searchMoreState != SearchMoreState.waiting
|
||||
&& scrollInfo.metrics.pixels == scrollInfo.metrics.maxScrollExtent) {
|
||||
&& scrollInfo.metrics.pixels == scrollInfo.metrics.maxScrollExtent
|
||||
&& scrollInfo.metrics.axisDirection == AxisDirection.down) {
|
||||
controller.searchMoreEmailsAction();
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -122,6 +122,8 @@ mixin BaseEmailItemTile {
|
||||
return RichTextBuilder(
|
||||
textOrigin: email.getEmailTitle(),
|
||||
wordToStyle: query?.value ?? '',
|
||||
preMarkedText: email.sanitizedSearchSnippetSubject,
|
||||
ensureHighlightVisible: true,
|
||||
styleOrigin: TextStyle(
|
||||
fontSize: 13,
|
||||
color: buildTextColorForReadEmail(email),
|
||||
@@ -155,6 +157,8 @@ mixin BaseEmailItemTile {
|
||||
return RichTextBuilder(
|
||||
textOrigin: email.getPartialContent(),
|
||||
wordToStyle: query?.value ?? '',
|
||||
preMarkedText: email.sanitizedSearchSnippetPreview,
|
||||
ensureHighlightVisible: true,
|
||||
styleOrigin: const TextStyle(
|
||||
fontSize: 13,
|
||||
color: AppColor.colorContentEmail,
|
||||
|
||||
@@ -425,7 +425,8 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
bool _handleScrollNotificationListener(ScrollNotification scrollInfo) {
|
||||
if (scrollInfo is ScrollEndNotification &&
|
||||
scrollInfo.metrics.pixels == scrollInfo.metrics.maxScrollExtent &&
|
||||
!controller.loadingMoreStatus.value.isRunning
|
||||
!controller.loadingMoreStatus.value.isRunning &&
|
||||
scrollInfo.metrics.axisDirection == AxisDirection.down
|
||||
) {
|
||||
controller.handleLoadMoreEmailsRequest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user