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)
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
// 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;
|
||||
@@ -32,6 +32,7 @@ export { LABEL_IDENTIFIER_FIELD_METADATA_TYPES } from './LabelIdentifierFieldMet
|
||||
export { MULTI_ITEM_FIELD_DEFAULT_MAX_VALUES } from './MultiItemFieldDefaultMaxValues';
|
||||
export { MULTI_ITEM_FIELD_MIN_MAX_VALUES } from './MultiItemFieldMinMaxValues';
|
||||
export { MUTATION_MAX_MERGE_RECORDS } from './MutationMaxMergeRecords';
|
||||
export { OBJECTS_WITH_CHANNEL_VISIBILITY_CONSTRAINTS } from './ObjectsWithChannelVisibilityConstraints';
|
||||
export { PermissionFlagType } from './PermissionFlagType';
|
||||
export { PermissionsOnAllObjectRecords } from './PermissionsOnAllObjectRecords';
|
||||
export { QUERY_DEFAULT_LIMIT_RECORDS } from './QueryDefaultLimitRecords';
|
||||
|
||||
Reference in New Issue
Block a user