Skip to content

Conversation

@Dark-Kernel
Copy link
Contributor

@Dark-Kernel Dark-Kernel commented Oct 3, 2025

User description

Description

  • Add real-time search input for filtering integrations by type in the create integrations window
  • Implement case-insensitive search with performance optimization using useMemo
  • Add user-friendly placeholder text and no results feedback message

Changes

  • Search Input: Added controlled search input with placeholder "Search integrations by type (e.g., disc for Discord)..."
  • Filtering Logic: Implemented real-time filtering of integrations based on search term

Fixes #1183

Screenshots of relevant screens

image image

Developer's checklist

  • My PR follows the style guidelines of this project
  • I have performed a self-check on my work

If changes are made in the code:

  • I have followed the coding guidelines
  • My changes in code generate no new warnings
  • My changes are breaking another fix/feature of the project
  • I have added test cases to show that my feature works
  • I have added relevant screenshots in my PR
  • There are no UI/UX issues

Documentation Update

  • This PR requires an update to the documentation at docs.keyshade.xyz
  • I have made the necessary updates to the documentation, or no documentation changes are required.

PR Type

Enhancement


Description

  • Add real-time search functionality to integrations page

  • Implement case-insensitive filtering with performance optimization

  • Add user-friendly placeholder text and no results message

  • Filter integrations by name based on search input


Diagram Walkthrough

flowchart LR
  A["Search Input"] --> B["Filter Logic"]
  B --> C["Filtered Results"]
  C --> D["Display Grid"]
  C --> E["No Results Message"]
Loading

File Walkthrough

Relevant files
Enhancement
index.tsx
Add search input and filtering logic                                         

apps/platform/src/components/integrations/integrationServices/index.tsx

  • Add search state management with useState hook
  • Implement filtered integrations using useMemo for performance
  • Add search input component with placeholder text
  • Display "no results" message when search yields empty results
+34/-3   

@codiumai-pr-agent-free
Copy link
Contributor

codiumai-pr-agent-free bot commented Oct 3, 2025

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🟢
🎫 #1183
🟢 Add search functionality to filter integrations by type name in the create integrations
window
Enable users to search for integrations (e.g., typing "disc" should filter out "Discord")
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
No custom compliance provided

Follow the guide to enable custom compliance check.

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@codiumai-pr-agent-free
Copy link
Contributor

codiumai-pr-agent-free bot commented Oct 3, 2025

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
Optimize search filtering for performance

Optimize the search filtering logic by trimming and lowercasing the search term
once before the filter loop to improve efficiency.

apps/platform/src/components/integrations/integrationServices/index.tsx [21-28]

 const filteredIntegrations = useMemo(() => {
-    if (!searchTerm.trim()) {
+    const trimmedSearchTerm = searchTerm.trim()
+    if (!trimmedSearchTerm) {
         return integrations
     }
+    const lowercasedSearchTerm = trimmedSearchTerm.toLowerCase()
     return integrations.filter((integration) =>
-                               integration.name.toLowerCase().includes(searchTerm.toLowerCase())
+                               integration.name.toLowerCase().includes(lowercasedSearchTerm)
                               )
 }, [integrations, searchTerm])
  • Apply / Chat
Suggestion importance[1-10]: 4

__

Why: The suggestion correctly identifies a minor inefficiency and proposes a cleaner, more performant solution by calculating the lowercased search term once outside the loop.

Low
  • Update

@rajdip-b
Copy link
Member

rajdip-b commented Oct 4, 2025

Hey @Dark-Kernel, thanks for the PR. I need to take this design up with our designer to finalize it.

@Dark-Kernel Dark-Kernel requested a review from rajdip-b as a code owner October 12, 2025 08:39
Copy link
Member

@rajdip-b rajdip-b left a comment

Choose a reason for hiding this comment

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

Changes for metrics service have been included in this pr. can you please remove them? I'll merge it

@github-actions
Copy link
Contributor

@Dark-Kernel, please resolve all open reviews!

@github-actions
Copy link
Contributor

@Dark-Kernel, please resolve all open reviews; otherwise this PR will be closed after Fri Oct 10 2025 17:51:57 GMT+0000 (Coordinated Universal Time)!

@Dark-Kernel
Copy link
Contributor Author

@rajdip-b please check.

@rajdip-b rajdip-b merged commit 83b0374 into keyshade-xyz:develop Oct 20, 2025
4 checks passed
rajdip-b pushed a commit that referenced this pull request Oct 20, 2025
## [2.41.0-stage.2](v2.41.0-stage.1...v2.41.0-stage.2) (2025-10-20)

### 🚀 Features

* **platform:** add search functionality to integrations page ([#1184](#1184)) ([83b0374](83b0374))
@rajdip-b
Copy link
Member

🎉 This PR is included in version 2.41.0-stage.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

rajdip-b pushed a commit that referenced this pull request Oct 23, 2025
## [2.41.0](v2.40.0...v2.41.0) (2025-10-23)

### 🚀 Features

* **cli:** ability to manage pat ([#1213](#1213)) ([0473463](0473463))
* **cli:** add `keyshade reset` command to wipe local profiles ([#1206](#1206)) ([229557a](229557a))
* **cli:** improved keyshade import flow ([#1219](#1219)) ([5affb52](5affb52))
* **platform:** add search functionality to integrations page ([#1184](#1184)) ([83b0374](83b0374))

### 🐛 Bug Fixes

* resolve hero image overlap with [secure] section text ([#1161](#1161)) ([3b1d4b6](3b1d4b6))

### 📚 Documentation

* add new internals pages for [secure], variable and env creation + cli docs for [secure] and variables ([#1208](#1208)) ([2bd595d](2bd595d))
* revamp getting started ([#1221](#1221)) ([e683fd6](e683fd6))
* Update image link in README.md ([adf7761](adf7761))

### 🔧 Miscellaneous Chores

* **cli:** bump CLI to v3.6.0 ([267469a](267469a))
* **release:** 2.36.0-stage.2 [skip ci] ([14aedf9](14aedf9))
* **release:** 2.40.1-stage.1 [skip ci] ([f0c296d](f0c296d))
* **release:** 2.41.0-stage.1 [skip ci] ([59fdbe3](59fdbe3))
* **release:** 2.41.0-stage.2 [skip ci] ([4d5ee50](4d5ee50))
* **release:** 2.41.0-stage.3 [skip ci] ([f2ca012](f2ca012))
* **release:** 2.41.0-stage.4 [skip ci] ([7a4e1fb](7a4e1fb))
@rajdip-b
Copy link
Member

🎉 This PR is included in version 2.41.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PLATFORM: Add "Search by type" field on create integrations window

2 participants