SearchBloc class
BLoC for managing conversation + message search state.
Handles debounced text search, filter chip toggling with filter groups, paginated conversation and message results, and request versioning to discard stale responses.
Uses SDK-level filtering (searchKeyword, unread, attachmentTypes, hasLinks) for server-side performance instead of client-side filtering.
Constructors
-
SearchBloc({User? user, Group? group, SearchScope initialScope = SearchScope.both, ConversationsRequestBuilder? conversationsRequestBuilder, MessagesRequestBuilder? messagesRequestBuilder, List<
SearchFilter> ? searchFilters, List<SearchScope> ? searchScopes})
Properties
-
allFilters
→ List<
SearchFilter> -
final
- conversationsRequestBuilder → ConversationsRequestBuilder?
-
final
- group → Group?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- initialScope → SearchScope
-
final
- isClosed → bool
-
Whether the bloc is closed.
no setterinherited
- messagesRequestBuilder → MessagesRequestBuilder?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → SearchState
-
The current state.
no setterinherited
-
stream
→ Stream<
SearchState> -
The current stream of states.
no setterinherited
- user → User?
-
final
Methods
-
add(
SearchEvent event) → void -
Notifies the
Blocof a neweventwhich triggers all correspondingEventHandlerinstances.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
errorwhich triggersonErrorwith an optional StackTrace.inherited -
close(
) → Future< void> -
Closes the
eventandstateStreams. This method should be called when aBlocis no longer needed. Once close is called,eventsthat are added will not be processed. In addition, if close is called whileeventsare still being processed, theBlocwill finish processing the pendingevents. -
emit(
SearchState state) → void -
emitis only for internal use and should never be called directly outside of tests. TheEmitterinstance provided to eachEventHandlershould be used instead.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
on<
E extends Event> (EventHandler< E, SearchState> handler, {EventTransformer<E> ? transformer}) → void -
Register event handler for an event of type
E. There should only ever be one event handler per event typeE.inherited -
onChange(
Change< SearchState> change) → void -
Called whenever a
changeoccurs with the givenchange. Achangeoccurs when a newstateis emitted.onChangeis called before thestateof thecubitis updated.onChangeis a great spot to add logging/analytics for a specificcubit.inherited -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
erroroccurs and notifiesBlocObserver.onError.inherited -
onEvent(
SearchEvent event) → void -
Called whenever an
eventisadded to theBloc. A great spot to add logging/analytics at the individualBloclevel.inherited -
onTransition(
Transition< SearchEvent, SearchState> transition) → void -
Called whenever a
transitionoccurs with the giventransition. Atransitionoccurs when a neweventis added and a new state isemittedfrom a correspondingEventHandler.inherited -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
-
defaultFilters
→ const List<
SearchFilter>