Flowise
Flowise copied to clipboard
Implement server-side search filtering for chatflows and agentflows
This pull request introduces a server-side search filter for chatflows and agentflows, refactors the UI to leverage this new capability, and removes redundant client-side filtering logic. The main improvements are better scalability for large datasets and a more responsive search experience for users, thanks to debounced search and pagination that now operate on filtered results directly from the backend.
Backend enhancements:
- Added a
searchparameter to thegetAllChatflowsservice and controller methods, enabling case-insensitive filtering byname,category, oridat the database level. [1] [2] [3]
Frontend improvements:
- Refactored both
AgentflowsandChatflowsviews to send the search term to the backend and removed all client-side filtering logic, ensuring that only server-filtered data is displayed. [1] [2] [3] [4] - Implemented debounced search input using
useRefandsetTimeout, so searches are only triggered after the user stops typing, reducing unnecessary requests. [1] [2] - Ensured proper cleanup of search debounce timers on component unmount to prevent memory leaks or unwanted requests. [1] [2]
Code cleanup:
- Removed unused
filterFunctionprops and related filtering logic from theFlowListTablecomponent and its usage, as filtering is now handled by the backend. [1] [2] [3] [4]
Summary of Changes
Hello @HavardHomb, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request significantly enhances the search functionality for chatflows and agentflows by migrating the filtering logic from the client-side to the server-side. This change improves scalability for larger datasets and provides a more responsive user experience through debounced search requests. The UI has been refactored to seamlessly integrate with the new backend capabilities, ensuring that all filtering and pagination are handled efficiently by the server.
Highlights
- Server-Side Search Implementation: Introduced a "search" parameter to backend services and controllers for chatflows and agentflows, enabling case-insensitive filtering by name, category, or ID directly at the database level.
- Frontend Refactoring: Updated Agentflows and Chatflows views to send search terms to the backend, removing all previous client-side filtering logic.
- Debounced Search: Implemented a debounced search input mechanism using useRef and setTimeout to reduce unnecessary API requests, triggering searches only after a user pauses typing.
- Optimized Pagination: Adjusted backend query logic to apply search filters before pagination, ensuring correct results for paginated and filtered data.
- Code Cleanup: Removed redundant "filterFunction" props and associated client-side filtering logic from the FlowListTable component and its usages.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in pull request comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with :thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
[^1]: Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.