Skip to content

Commit 8335fb2

Browse files
committed
improvement(search): improved filters UI and search suggestions
1 parent a1c518e commit 8335fb2

6 files changed

Lines changed: 27 additions & 15 deletions

File tree

apps/sim/app/workspace/[workspaceId]/logs/components/filters/filters.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,20 @@ export function Filters() {
5858

5959
<h2 className='mb-4 pl-2 font-medium text-sm'>Filters</h2>
6060

61-
{/* Timeline Filter */}
62-
<FilterSection title='Timeline' content={<Timeline />} />
63-
6461
{/* Level Filter */}
6562
<FilterSection title='Level' content={<Level />} />
6663

67-
{/* Trigger Filter */}
68-
<FilterSection title='Trigger' content={<Trigger />} />
64+
{/* Workflow Filter */}
65+
<FilterSection title='Workflow' content={<Workflow />} />
6966

7067
{/* Folder Filter */}
7168
<FilterSection title='Folder' content={<FolderFilter />} />
7269

73-
{/* Workflow Filter */}
74-
<FilterSection title='Workflow' content={<Workflow />} />
70+
{/* Trigger Filter */}
71+
<FilterSection title='Trigger' content={<Trigger />} />
72+
73+
{/* Timeline Filter */}
74+
<FilterSection title='Timeline' content={<Timeline />} />
7575
</div>
7676
)
7777
}

apps/sim/app/workspace/[workspaceId]/logs/components/search/search.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use client'
22

3-
import { useEffect, useMemo } from 'react'
3+
import { useEffect, useMemo, useState } from 'react'
44
import { Loader2, Search, X } from 'lucide-react'
55
import { Badge } from '@/components/ui/badge'
66
import { Button } from '@/components/ui/button'
@@ -89,6 +89,16 @@ export function AutocompleteSearch({
8989
}
9090
}, [state.isOpen, state.highlightedIndex])
9191

92+
const [showSpinner, setShowSpinner] = useState(false)
93+
useEffect(() => {
94+
if (!state.pendingQuery) {
95+
setShowSpinner(false)
96+
return
97+
}
98+
const t = setTimeout(() => setShowSpinner(true), 200)
99+
return () => clearTimeout(t)
100+
}, [state.pendingQuery])
101+
92102
const onInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
93103
const newValue = e.target.value
94104
const cursorPos = e.target.selectionStart || 0
@@ -126,7 +136,7 @@ export function AutocompleteSearch({
126136
state.isOpen && 'ring-1 ring-ring'
127137
)}
128138
>
129-
{state.pendingQuery ? (
139+
{showSpinner ? (
130140
<Loader2 className='h-4 w-4 flex-shrink-0 animate-spin text-muted-foreground' />
131141
) : (
132142
<Search className='h-4 w-4 flex-shrink-0 text-muted-foreground' strokeWidth={2} />

apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/logs-filters/logs-filters.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import Workflow from '@/app/workspace/[workspaceId]/logs/components/filters/comp
1010

1111
export function LogsFilters() {
1212
const sections = [
13-
{ key: 'timeline', title: 'Timeline', component: <Timeline /> },
1413
{ key: 'level', title: 'Level', component: <Level /> },
15-
{ key: 'trigger', title: 'Trigger', component: <Trigger /> },
16-
{ key: 'folder', title: 'Folder', component: <FolderFilter /> },
1714
{ key: 'workflow', title: 'Workflow', component: <Workflow /> },
15+
{ key: 'folder', title: 'Folder', component: <FolderFilter /> },
16+
{ key: 'trigger', title: 'Trigger', component: <Trigger /> },
17+
{ key: 'timeline', title: 'Timeline', component: <Timeline /> },
1818
]
1919

2020
return (

apps/sim/components/ui/command.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ const CommandList = React.forwardRef<
149149
>(({ className, ...props }, ref) => (
150150
<CommandPrimitive.List
151151
ref={ref}
152-
className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}
152+
className={cn('max-h-[260px] overflow-y-auto overflow-x-hidden', className)}
153153
{...props}
154154
/>
155155
))

apps/sim/components/ui/dropdown-menu.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,13 @@ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayNam
5656
const DropdownMenuContent = React.forwardRef<
5757
React.ElementRef<typeof DropdownMenuPrimitive.Content>,
5858
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
59-
>(({ className, sideOffset = 4, ...props }, ref) => (
59+
>(({ className, sideOffset = 4, avoidCollisions = false, sticky = 'always', ...props }, ref) => (
6060
<DropdownMenuPrimitive.Portal>
6161
<DropdownMenuPrimitive.Content
6262
ref={ref}
6363
sideOffset={sideOffset}
64+
avoidCollisions={avoidCollisions}
65+
sticky={sticky as any}
6466
className={cn(
6567
'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in',
6668
className

apps/sim/lib/logs/search-suggestions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ export class SearchSuggestions {
407407
}
408408

409409
/**
410-
* Generate preview text for a suggestion - SIMPLE APPROACH
410+
* Generate preview text for a suggestion
411411
* Show suggestion at the end of input, with proper spacing logic
412412
*/
413413
generatePreview(suggestion: Suggestion, currentValue: string, cursorPosition: number): string {

0 commit comments

Comments
 (0)