Skip to content

Commit e2f63a0

Browse files
committed
fix(ui): minimaler buttons for filter header in users table
1 parent 7dff474 commit e2f63a0

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

dashboard/src/components/users/filters.tsx

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,7 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
7979
const [search, setSearch] = useState(filters.search || '')
8080
const [isRefreshing, setIsRefreshing] = useState(false)
8181
const [autoRefreshInterval, setAutoRefreshInterval] = useState<number>(() => getUsersAutoRefreshIntervalSeconds())
82-
const { refetch: queryRefetch } = useGetUsers(filters, {
83-
query: {
84-
refetchOnWindowFocus: false,
85-
},
86-
})
82+
const { refetch: queryRefetch } = useGetUsers(filters)
8783
const refetchUsers = useCallback(() => {
8884
const refetchFn = refetch ?? queryRefetch
8985
return refetchFn()
@@ -203,9 +199,9 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
203199
}
204200

205201
return (
206-
<div dir={dir} className="flex items-center gap-4 py-4">
202+
<div dir={dir} className="flex items-center gap-2 py-4 md:gap-4">
207203
{/* Search Input */}
208-
<div className="relative w-full md:w-[calc(100%/3-10px)]">
204+
<div className="relative flex-1 min-w-0 md:w-[calc(100%/3-10px)] md:flex-none">
209205
<SearchIcon className={cn('absolute', dir === 'rtl' ? 'right-2' : 'left-2', 'top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400 text-input-placeholder')} />
210206
<Input placeholder={t('search')} value={search} onChange={handleSearchChange} className="pl-8 pr-10" />
211207
{search && (
@@ -214,8 +210,8 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
214210
</button>
215211
)}
216212
</div>
217-
<div className="flex h-full items-center gap-1">
218-
<Button size="icon-md" variant="ghost" className="relative flex items-center gap-2 border" onClick={handleOpenAdvanceSearch}>
213+
<div className="flex h-full flex-shrink-0 items-center gap-1">
214+
<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}>
219215
<Filter className="h-4 w-4" />
220216
{hasActiveAdvanceFilters() && (
221217
<Badge variant="destructive" className="absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full p-0 text-xs">
@@ -226,7 +222,7 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
226222
{hasActiveAdvanceFilters() && onClearAdvanceSearch && (
227223
<Popover>
228224
<PopoverTrigger asChild>
229-
<Button size="sm" variant="outline" className={cn('h-8 w-8 p-0', dir === 'rtl' ? 'rounded-r-none border-r-0' : 'rounded-l-none border-l-0')} onClick={onClearAdvanceSearch}>
225+
<Button size="sm" variant="outline" className={cn('h-9 w-9 p-0 md:h-8 md:w-8', dir === 'rtl' ? 'rounded-r-none border-r-0' : 'rounded-l-none border-l-0')} onClick={onClearAdvanceSearch}>
230226
<X className="h-3 w-3" />
231227
</Button>
232228
</PopoverTrigger>
@@ -238,10 +234,10 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
238234
</div>
239235
{/* Sort Button */}
240236
{handleSort && (
241-
<div className="flex h-full items-center gap-1">
237+
<div className="flex h-full flex-shrink-0 items-center gap-1">
242238
<DropdownMenu>
243239
<DropdownMenuTrigger asChild>
244-
<Button size="icon-md" variant="ghost" className="relative flex items-center gap-2 border" aria-label={t('sortOptions', { defaultValue: 'Sort Options' })}>
240+
<Button size="icon-md" variant="ghost" className="relative flex h-9 w-9 items-center justify-center border md:h-10 md:w-10" aria-label={t('sortOptions', { defaultValue: 'Sort Options' })}>
245241
<ArrowUpDown className="h-4 w-4" />
246242
{filters.sort && filters.sort !== '-created_at' && <div className="absolute -right-1 -top-1 h-2 w-2 rounded-full bg-primary" />}
247243
</Button>
@@ -277,12 +273,12 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
277273
</div>
278274
)}
279275
{/* Refresh Button */}
280-
<div className="flex h-full items-center gap-0">
276+
<div className="flex h-full flex-shrink-0 items-center gap-0">
281277
<Button
282278
size="icon-md"
283279
onClick={handleRefreshClick}
284280
variant="ghost"
285-
className={cn('relative flex items-center gap-2 border', dir === 'rtl' ? 'rounded-l-none border-l-0' : 'rounded-r-none')}
281+
className={cn('relative flex h-9 w-9 items-center justify-center border md:h-10 md:w-10', dir === 'rtl' ? 'rounded-l-none border-l-0' : 'rounded-r-none')}
286282
aria-label={t('autoRefresh.refreshNow')}
287283
title={t('autoRefresh.refreshNow')}
288284
disabled={isRefreshing}
@@ -295,7 +291,7 @@ export const Filters = ({ filters, onFilterChange, refetch, advanceSearchOnOpen,
295291
<Button
296292
size="icon-md"
297293
variant="ghost"
298-
className={cn('relative flex items-center gap-2 border', dir === 'rtl' ? 'rounded-r-none' : 'rounded-l-none border-l-0')}
294+
className={cn('relative flex h-9 w-9 items-center justify-center border md:h-10 md:w-10', dir === 'rtl' ? 'rounded-r-none' : 'rounded-l-none border-l-0')}
299295
aria-label={t('autoRefresh.label')}
300296
title={`${t('autoRefresh.label')} (${autoRefreshShortLabel})`}
301297
>

0 commit comments

Comments
 (0)