@@ -170,21 +170,35 @@ export function buildBulkActionEvents(
170170 } ) ) ;
171171}
172172
173- export interface InboxViewedFilterState {
173+ interface InboxViewedFilterStateBase {
174174 sourceProductFilter : string [ ] ;
175175 priorityFilter : string [ ] ;
176- searchQuery ?: string ;
177- statusFilter ?: readonly string [ ] ;
178- defaultStatusFilter ?: readonly string [ ] ;
179- suggestedReviewerFilter ?: string [ ] ;
176+ }
177+
178+ export interface DesktopInboxViewedFilterState
179+ extends InboxViewedFilterStateBase {
180+ surface : "desktop" ;
181+ searchQuery : string ;
180182 /**
181183 * True when the reviewer scope is the default ("For you"). False when the
182184 * user has narrowed to a teammate or the whole project — treated as an
183185 * active filter for `has_active_filters`.
184186 */
185- isDefaultScope ? : boolean ;
187+ isDefaultScope : boolean ;
186188}
187189
190+ export interface MobileInboxViewedFilterState
191+ extends InboxViewedFilterStateBase {
192+ surface : "mobile" ;
193+ statusFilter : readonly string [ ] ;
194+ defaultStatusFilter : readonly string [ ] ;
195+ suggestedReviewerFilter : string [ ] ;
196+ }
197+
198+ export type InboxViewedFilterState =
199+ | DesktopInboxViewedFilterState
200+ | MobileInboxViewedFilterState ;
201+
188202export interface BuildInboxViewedInput {
189203 /**
190204 * Reports currently visible to the user (after reviewer scope + search), used
@@ -241,27 +255,28 @@ export function buildInboxViewedProperties(
241255 }
242256
243257 const statusFiltered =
244- filters . statusFilter !== undefined &&
245- filters . defaultStatusFilter !== undefined &&
258+ filters . surface === "mobile" &&
246259 ( filters . statusFilter . length !== filters . defaultStatusFilter . length ||
247260 filters . statusFilter . some (
248- ( status ) => ! filters . defaultStatusFilter ? .includes ( status ) ,
261+ ( status ) => ! filters . defaultStatusFilter . includes ( status ) ,
249262 ) ) ;
250263 const hasActiveFilters =
251264 filters . sourceProductFilter . length > 0 ||
252265 filters . priorityFilter . length > 0 ||
253- ( filters . searchQuery ? .trim ( ) . length ?? 0 ) > 0 ||
266+ ( filters . surface === "desktop" && filters . searchQuery . trim ( ) . length > 0 ) ||
254267 statusFiltered ||
255- ( filters . suggestedReviewerFilter ?. length ?? 0 ) > 0 ||
256- filters . isDefaultScope === false ;
268+ ( filters . surface === "mobile" &&
269+ filters . suggestedReviewerFilter . length > 0 ) ||
270+ ( filters . surface === "desktop" && ! filters . isDefaultScope ) ;
257271
258272 return {
259273 report_count : visibleReports . length ,
260274 total_count : totalCount ,
261275 ready_count : readyCount ,
262276 has_active_filters : hasActiveFilters ,
263277 source_product_filter : filters . sourceProductFilter ,
264- status_filter_count : filters . statusFilter ?. length ?? 0 ,
278+ status_filter_count :
279+ filters . surface === "mobile" ? filters . statusFilter . length : 0 ,
265280 is_empty : totalCount === 0 ,
266281 priority_p0_count : priorityCounts . P0 ,
267282 priority_p1_count : priorityCounts . P1 ,
0 commit comments