Skip to content

Conversation

@dheerajturaga
Copy link
Member

  • Add search parameter to backend API endpoint with case-insensitive filtering
  • Implement debounced search input with 300ms delay to optimize API calls
  • Maintain search box visibility across all states (empty, loading, error)
  • Fix input focus issues during search result updates
  • Update placeholder text to 'Search Workers'
image image image

@boring-cyborg boring-cyborg bot added area:providers provider:edge Edge Executor / Worker (AIP-69) / edge3 labels Sep 23, 2025
  - Add search parameter to backend API endpoint with case-insensitive filtering
  - Implement debounced search input with 300ms delay to optimize API calls
  - Maintain search box visibility across all states (empty, loading, error)
  - Fix input focus issues during search result updates
  - Update placeholder text to 'Search Workers'
@dheerajturaga dheerajturaga force-pushed the feature/edge-search-by-host branch from edf480e to 07adccd Compare September 23, 2025 18:40
Copy link
Contributor

@jscheffl jscheffl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool! Thanks for the next increment!

Need one guidance about useEffect(). Basically looks good.

Two UX nits that I'd wish:
In the "Jobs" page there is a column with the worker as a link. Today this flips to the worker page and scrolls to the worker.
image
Can you change it that:

  • Rip out the scrolling logic scripting
  • If user clicks use the name as filter when page is displayed

Also in other dialogs there is a search icon and a "x" to clear the filter, can you add this to the search field? In the case it is cleared I'd assume the 300ms should not be applied as debounce:
image

That would be cool

<ErrorAlert error={error} />
</Text>
<Box p={2}>
{searchInput}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you add the {searchInput} to all if/else cases, would it not be easier to render it once generic and have the result views just below?

Comment on lines +36 to +42
useEffect(() => {
const timeout = setTimeout(() => {
setDebouncedSearchTerm(searchTerm);
}, 300);

return () => clearTimeout(timeout);
}, [searchTerm]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As being the JS noob bere, need some guidance from UI experts @bbovenzi / @pierrejeambrun / @shubhamraj-git - I understand useEffect() is bad in general but this de-bouncing seems good here. Or is there any other best practice to follow to make it "right"?

@github-actions
Copy link

github-actions bot commented Nov 8, 2025

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in 5 days if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Stale PRs per the .github/workflows/stale.yml policy file label Nov 8, 2025
@jscheffl
Copy link
Contributor

jscheffl commented Nov 8, 2025

Oh, lost track in following-up on this. Probably needs a revive @dheerajturaga ? Would be great to have this as starter and then add more filters later!

@jscheffl jscheffl removed the stale Stale PRs per the .github/workflows/stale.yml policy file label Nov 8, 2025
@dheerajturaga
Copy link
Member Author

Oh, lost track in following-up on this. Probably needs a revive @dheerajturaga ? Would be great to have this as starter and then add more filters later!

Yes! Was busy with other things! Let me restart this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:providers provider:edge Edge Executor / Worker (AIP-69) / edge3

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants