diff --git a/apps/mobile/src/features/inbox/components/FilterSheet.tsx b/apps/mobile/src/features/inbox/components/FilterSheet.tsx index 5243c67648..83163b2547 100644 --- a/apps/mobile/src/features/inbox/components/FilterSheet.tsx +++ b/apps/mobile/src/features/inbox/components/FilterSheet.tsx @@ -126,8 +126,12 @@ export function FilterSheet({ visible, onClose }: FilterSheetProps) { const toggleStatus = useInboxFilterStore((s) => s.toggleStatus); const sourceProductFilter = useInboxFilterStore((s) => s.sourceProductFilter); const toggleSourceProduct = useInboxFilterStore((s) => s.toggleSourceProduct); + const clearSourceProductFilter = useInboxFilterStore( + (s) => s.clearSourceProductFilter, + ); const priorityFilter = useInboxFilterStore((s) => s.priorityFilter); const togglePriority = useInboxFilterStore((s) => s.togglePriority); + const setPriorityFilter = useInboxFilterStore((s) => s.setPriorityFilter); const resetFilters = useInboxFilterStore((s) => s.resetFilters); const hasActiveFilters = @@ -213,6 +217,11 @@ export function FilterSheet({ visible, onClose }: FilterSheetProps) { {/* Priority */} + setPriorityFilter([])} + /> {FILTERABLE_PRIORITIES.map((priority) => ( + {SOURCE_PRODUCT_OPTIONS.map((option) => ( { expect(useInboxFilterStore.getState().sourceProductFilter).toEqual([]); }, ); + + it("clears the source filter", () => { + const { toggleSourceProduct, clearSourceProductFilter } = + useInboxFilterStore.getState(); + + toggleSourceProduct("github"); + toggleSourceProduct("linear"); + expect(useInboxFilterStore.getState().sourceProductFilter).toEqual([ + "github", + "linear", + ]); + + clearSourceProductFilter(); + expect(useInboxFilterStore.getState().sourceProductFilter).toEqual([]); + }); }); const INITIAL_STATE = useInboxFilterStore.getState(); diff --git a/apps/mobile/src/features/inbox/stores/inboxFilterStore.ts b/apps/mobile/src/features/inbox/stores/inboxFilterStore.ts index ea363b4e42..ab97b29525 100644 --- a/apps/mobile/src/features/inbox/stores/inboxFilterStore.ts +++ b/apps/mobile/src/features/inbox/stores/inboxFilterStore.ts @@ -47,6 +47,7 @@ interface InboxFilterActions { setStatusFilter: (statuses: SignalReportStatus[]) => void; toggleStatus: (status: SignalReportStatus) => void; toggleSourceProduct: (source: SourceProduct) => void; + clearSourceProductFilter: () => void; toggleSuggestedReviewer: (reviewerUuid: string) => void; setSuggestedReviewerFilter: (reviewerUuids: string[]) => void; togglePriority: (priority: SignalReportPriority) => void; @@ -85,6 +86,7 @@ export const useInboxFilterStore = create()( : [...current, source]; return { sourceProductFilter: next }; }), + clearSourceProductFilter: () => set({ sourceProductFilter: [] }), toggleSuggestedReviewer: (reviewerUuid) => set((state) => { const current = state.suggestedReviewerFilter;