Skip to content

Commit 284a858

Browse files
committed
improve Filter.Select + commission filtering
1 parent 135e3bf commit 284a858

2 files changed

Lines changed: 24 additions & 10 deletions

File tree

apps/web/lib/api/commissions/get-commissions.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,17 @@ export async function getCommissions(filters: CommissionsFilters) {
6363

6464
const statusFilter = isHoldStatus
6565
? { in: [CommissionStatus.pending, CommissionStatus.processed] }
66-
: status ?? {
67-
notIn: [
68-
CommissionStatus.duplicate,
69-
CommissionStatus.fraud,
70-
CommissionStatus.canceled,
71-
],
72-
};
66+
: status
67+
? status
68+
: customerId || partnerId || type
69+
? undefined
70+
: {
71+
notIn: [
72+
CommissionStatus.duplicate,
73+
CommissionStatus.fraud,
74+
CommissionStatus.canceled,
75+
],
76+
};
7377

7478
const programEnrollmentFilter = {
7579
...(groupId && { groupId }),

packages/ui/src/filter/filter-select.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ export function FilterSelect({
8282
setSelectedFilterKey(null);
8383
}, []);
8484

85+
const goBackOrClose = useCallback(() => {
86+
selectedFilterKey ? reset() : setIsOpen(false);
87+
}, [selectedFilterKey, reset]);
88+
8589
// Reset state when closed
8690
useEffect(() => {
8791
if (!isOpen) reset();
@@ -175,8 +179,10 @@ export function FilterSelect({
175179
setOpenPopover={setIsOpen}
176180
onEscapeKeyDown={(e) => {
177181
if (selectedFilterKey) {
182+
console.log("Escape key pressed in Popover");
178183
e.preventDefault();
179-
reset();
184+
e.stopPropagation();
185+
goBackOrClose();
180186
}
181187
}}
182188
content={
@@ -204,7 +210,7 @@ export function FilterSelect({
204210
) {
205211
e.preventDefault();
206212
e.stopPropagation();
207-
selectedFilterKey ? reset() : setIsOpen(false);
213+
goBackOrClose();
208214
}
209215
}}
210216
onEmptySubmit={(e) => {
@@ -436,8 +442,12 @@ function FilterButton({
436442
"flex cursor-pointer items-center gap-3 whitespace-nowrap rounded-md px-3 py-2 text-left text-sm",
437443
"data-[selected=true]:bg-neutral-100",
438444
)}
439-
onSelect={onSelect}
440445
value={label + option?.value}
446+
onSelect={onSelect}
447+
onMouseDown={(e) => {
448+
// Keep the search input focused when selecting with mouse
449+
e.preventDefault();
450+
}}
441451
>
442452
{showCheckbox && (
443453
<div

0 commit comments

Comments
 (0)