Files
twenty/packages/twenty-shared/src/constants/ObjectsWithChannelVisibilityConstraints.ts
T
Félix MalfaitandGitHub 5f0d6553f6 Add object type filter dropdown to side panel record searches (#18912)
## Summary

- Adds an object type filter dropdown to the side panel, allowing users
to scope record search results to a specific object type (e.g. People,
Companies, Opportunities)
- The filter appears as a funnel icon next to the search input in both
the global search (SearchRecords page) and the "Pick a record" sidebar
flow
- Replaces the AI sparkles button on the search records page with the
filter icon
- Uses colored icons matching the navigation menu style
(NavigationMenuItemStyleIcon + getStandardObjectIconColor)

## Test plan

- [ ] Open the side panel, type something to enter SearchRecords mode,
verify the filter icon appears
- [ ] Click the filter icon, verify the dropdown opens with "Object"
header, search input, "All Objects" and individual object types with
colored icons
- [ ] Select an object type, verify only records of that type appear in
search results
- [ ] Select "All Objects", verify all record types appear again
- [ ] Verify the filter icon turns blue when a filter is active
- [ ] In layout customization mode, add a new sidebar item > Record,
verify the filter dropdown also works there
- [ ] Close and reopen the side panel, verify the filter resets to "All
Objects"
- [ ] Verify the AI sparkles button no longer appears on the command
menu root page
- [ ] Verify the AI edit icon still appears on Ask AI pages


Made with [Cursor](https://cursor.com)
2026-03-25 16:02:24 +01:00

24 lines
980 B
TypeScript

// TODO: These objects are tied to connected accounts and have channel-based visibility
// settings (MessageChannelVisibility / CalendarChannelVisibility) that control what data
// workspace members can see. The global search service does not yet enforce these visibility
// rules, so we exclude these objects from explicit search inclusion to prevent leaking
// restricted content (e.g. message subjects, calendar event titles).
// Once the search service properly joins channel tables and applies visibility filtering,
// this list can be removed.
export const OBJECTS_WITH_CHANNEL_VISIBILITY_CONSTRAINTS = [
'blocklist',
'connectedAccount',
'message',
'messageThread',
'messageChannel',
'messageParticipant',
'messageFolder',
'messageChannelMessageAssociation',
'messageChannelMessageAssociationMessageFolder',
'messageThreadSubscriber',
'calendarEvent',
'calendarChannel',
'calendarChannelEventAssociation',
'calendarEventParticipant',
] as const;