Skip to content

Commit 9f7b317

Browse files
committed
fix(filters): persist advanced filters badge and use primary color
1 parent 53a3292 commit 9f7b317

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

dashboard/src/components/users/filters.tsx

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { useTranslation } from 'react-i18next'
1414
import { useGetUsers, UserStatus } from '@/service/api'
1515
import { RefetchOptions } from '@tanstack/react-query'
1616
import { LoaderCircle } from 'lucide-react'
17-
import { UseFormReturn } from 'react-hook-form'
1817
import { getUsersAutoRefreshIntervalSeconds, setUsersAutoRefreshIntervalSeconds } from '@/utils/userPreferenceStorage'
1918

2019
// Sort configuration to eliminate duplication
@@ -73,16 +72,17 @@ interface FiltersProps {
7372
sort: string
7473
status?: UserStatus | null
7574
load_sub: boolean
75+
admin?: string[]
76+
group?: number[]
7677
}
7778
onFilterChange: (filters: Partial<FiltersProps['filters']>) => void
7879
refetch?: (options?: RefetchOptions) => Promise<unknown>
7980
advanceSearchOnOpen: (status: boolean) => void
80-
advanceSearchForm?: UseFormReturn<Record<string, unknown>>
8181
onClearAdvanceSearch?: () => void
8282
handleSort?: (column: string, fromDropdown?: boolean) => void
8383
}
8484

85-
export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen, advanceSearchForm, onClearAdvanceSearch, handleSort }: FiltersProps) => {
85+
export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen, onClearAdvanceSearch, handleSort }: FiltersProps) => {
8686
const { t } = useTranslation()
8787
const dir = useDirDetection()
8888
const [search, setSearch] = useState(filters.search || '')
@@ -184,26 +184,24 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
184184
}
185185

186186
// Check if any advance search filters are active
187+
// Check the actual filters prop instead of form values, as form gets reset when modal closes
187188
const hasActiveAdvanceFilters = () => {
188-
if (!advanceSearchForm) return false
189-
const values = advanceSearchForm.getValues() as Record<string, unknown>
190-
const admin = values.admin as string[] | undefined
191-
const group = values.group as string[] | undefined
192-
const status = values.status as string | undefined
193-
return (admin && admin.length > 0) || (group && group.length > 0) || status !== '0'
189+
const admin = filters.admin
190+
const group = filters.group
191+
const status = filters.status
192+
return (admin && admin.length > 0) || (group && group.length > 0) || (status !== undefined && status !== null)
194193
}
195194

196195
// Get the count of active advance filters
196+
// Check the actual filters prop instead of form values, as form gets reset when modal closes
197197
const getActiveFiltersCount = () => {
198-
if (!advanceSearchForm) return 0
199-
const values = advanceSearchForm.getValues() as Record<string, unknown>
200-
const admin = values.admin as string[] | undefined
201-
const group = values.group as string[] | undefined
202-
const status = values.status as string | undefined
198+
const admin = filters.admin
199+
const group = filters.group
200+
const status = filters.status
203201
let count = 0
204202
if (admin && admin.length > 0) count++
205203
if (group && group.length > 0) count++
206-
if (status !== '0') count++
204+
if (status !== undefined && status !== null) count++
207205
return count
208206
}
209207

@@ -223,7 +221,7 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
223221
<Button size="icon-md" variant="ghost" className="relative flex h-9 w-9 items-center justify-center border md:h-10 md:w-10" onClick={handleOpenAdvanceSearch}>
224222
<Filter className="h-4 w-4" />
225223
{hasActiveAdvanceFilters() && (
226-
<Badge variant="destructive" className="absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full p-0 text-xs">
224+
<Badge variant="default" className="absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary p-0 text-[10.5px] text-primary-foreground">
227225
{getActiveFiltersCount()}
228226
</Badge>
229227
)}

0 commit comments

Comments
 (0)