Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
7b1717b
ref(cmdk): implement typed collection factory for JSX-based action re…
JonasBa Apr 6, 2026
39a8156
ref(cmdk): migrate command palette to JSX collection model (steps 2–5)
JonasBa Apr 6, 2026
c06aae5
ref(cmdk): pre-review cleanup
JonasBa Apr 6, 2026
a009877
remove redundant context
JonasBa Apr 6, 2026
b821641
ref(cmdk): remove useGlobalCommandPaletteActions
JonasBa Apr 6, 2026
a8b1229
ref(cmdk): delete context.tsx, move CommandPaletteProvider to cmdk.tsx
JonasBa Apr 6, 2026
dbca928
ref(cmdk): move GlobalCommandPaletteActions into modal
JonasBa Apr 6, 2026
c1b7b0e
ref(cmdk): CommandPalette accepts children for action registration
JonasBa Apr 6, 2026
a5330eb
fix(cmdk): pass LocationDescriptor directly instead of stringifying
JonasBa Apr 6, 2026
12c8da6
fix(cmdk): guard nav sidebar toggle against missing SecondaryNavigati…
JonasBa Apr 6, 2026
5585fc2
fix(cmdk): restore GlobalCommandPaletteActions to navigation scope
JonasBa Apr 6, 2026
a2107d7
ref(cmdk) add slot context
JonasBa Apr 6, 2026
1583240
ref(cmdk) add issues list actions
JonasBa Apr 6, 2026
ddcc461
test(cmdk): Add failing test for slot rendering priority and fix miss…
JonasBa Apr 6, 2026
d4e45f2
docs(cmdk): Add implementation plan for slot-priority pre-sort
JonasBa Apr 6, 2026
162d409
feat(cmdk): Sort actions by slot priority using outlet DOM position
JonasBa Apr 6, 2026
406e56e
feat(cmdk): Wire slot priority sorting into collection and palette
JonasBa Apr 6, 2026
d97b598
ref(cmdk) wip
JonasBa Apr 6, 2026
562a106
ref(cmdk) cleanup
JonasBa Apr 6, 2026
05468ef
ref(cmdk) implement proper actions
JonasBa Apr 6, 2026
eef1471
fix(cmdk): Gate DSN lookup query behind DSN_PATTERN check
JonasBa Apr 6, 2026
dce75f9
Merge origin/master into jb/cmdk/jsx-poc
JonasBa Apr 6, 2026
0158ce5
ref(cmdk) revert issues list poc
JonasBa Apr 6, 2026
4406dc2
docs(cmdk): Update story to JSX-powered command palette API
JonasBa Apr 7, 2026
9a0a7c6
ref(cmdk): Merge CMDKGroup and CMDKAction into single CMDKAction comp…
JonasBa Apr 9, 2026
9d70bc8
fix(cmdk): Omit empty groups and reset scroll on query change (#112325)
JonasBa Apr 9, 2026
497dd7e
feat(cmdk): Invoke onAction callback for actions with children
JonasBa Apr 9, 2026
e2b0710
fix(cmdk): Use render prop closeModal to properly reset open state
JonasBa Apr 9, 2026
dd0b8b9
perf(cmdk): Score each candidate field individually in scoreNode
JonasBa Apr 9, 2026
f1a1a06
fix(cmdk): Address bugbot findings — admin actions, DSN icon, String …
JonasBa Apr 9, 2026
c56f2d2
fix(cmdk): Remove String() coercion in story component
JonasBa Apr 9, 2026
7508757
fix(slot): Render nothing when no outlet is registered (#112568)
JonasBa Apr 9, 2026
9b83079
Merge branch 'master' into jb/cmdk/jsx-poc
JonasBa Apr 9, 2026
f473658
Merge branch 'master' into jb/cmdk/jsx-poc
JonasBa Apr 9, 2026
fa3d675
remove unused exports
JonasBa Apr 9, 2026
e198a91
ref(cmdk): Remove ActionsToJSX adapter and CommandPaletteAsyncResult …
JonasBa Apr 9, 2026
cd2aa33
ref(cmdk) move admin actions
JonasBa Apr 9, 2026
4e2dde1
ref(cmdk) add link detection
JonasBa Apr 9, 2026
81c1558
feat(cmdk): Support tab-opening modifiers for links
JonasBa Apr 9, 2026
53f7bdd
test(cmdk): Align shift-link coverage with keyboard flow
JonasBa Apr 9, 2026
0727811
ref(cmdk) simplify keyboard
JonasBa Apr 9, 2026
ede8b41
fix(cmdk): Restore new-tab behavior for admin links
JonasBa Apr 9, 2026
c42400e
ref(cmdk): Extract getLocationHref and isExternalLocation to shared l…
JonasBa Apr 10, 2026
a389f27
ref(cmdk): Remove onAction prop in favor of internal action execution
JonasBa Apr 10, 2026
f8bb217
ref(cmdk): Inline getLocationHref and isExternalLocation into command…
JonasBa Apr 10, 2026
aa36d4b
Merge master into jb/cmdk/onaction-internal
JonasBa Apr 13, 2026
f370129
fix(cmdk): Move slot outlets outside CommandPalette to match master a…
JonasBa Apr 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 5 additions & 25 deletions static/app/components/commandPalette/__stories__/components.tsx
Original file line number Diff line number Diff line change
@@ -1,31 +1,11 @@
import {useCallback} from 'react';

import {addSuccessMessage} from 'sentry/actionCreators/indicator';
import {CommandPaletteProvider} from 'sentry/components/commandPalette/ui/cmdk';
import {CMDKAction} from 'sentry/components/commandPalette/ui/cmdk';
import type {CMDKActionData} from 'sentry/components/commandPalette/ui/cmdk';
import type {CollectionTreeNode} from 'sentry/components/commandPalette/ui/collection';
import {
CMDKAction,
CommandPaletteProvider,
} from 'sentry/components/commandPalette/ui/cmdk';
import {CommandPalette} from 'sentry/components/commandPalette/ui/commandPalette';
import {normalizeUrl} from 'sentry/utils/url/normalizeUrl';
import {useNavigate} from 'sentry/utils/useNavigate';

export function CommandPaletteDemo() {
const navigate = useNavigate();

const handleAction = useCallback(
(
action: CollectionTreeNode<CMDKActionData>,
_options?: {modifierKeys?: {shiftKey: boolean}}
) => {
if ('to' in action) {
navigate(normalizeUrl(action.to));
} else if ('onAction' in action) {
action.onAction();
}
},
[navigate]
);

return (
<CommandPaletteProvider>
<CMDKAction display={{label: 'Go to Flex story'}} to="/stories/layout/flex/" />
Expand All @@ -49,7 +29,7 @@ export function CommandPaletteDemo() {
onAction={() => addSuccessMessage('Deselect all')}
/>
</CMDKAction>
<CommandPalette onAction={handleAction} />
<CommandPalette />
</CommandPaletteProvider>
);
}
7 changes: 0 additions & 7 deletions static/app/components/commandPalette/ui/cmdk.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,6 @@ export const CMDKCollection = makeCollection<CMDKActionData>();
/**
* Root provider for the command palette. Wrap the component tree that
* contains CMDKAction registrations and the CommandPalette UI.
*
* Slot outlets are rendered separately in the navigation (see
* CommandPaletteSlotOutlets in navigation/index.tsx) in task → page → global
* DOM order so that presortBySlotRef's compareDocumentPosition sorting works
* correctly. Keeping the outlets in the navigation (rather than here) means
* this provider introduces no DOM nodes — tests that assert an empty container
* are unaffected.
*/
export function CommandPaletteProvider({children}: {children: React.ReactNode}) {
return (
Expand Down
Loading
Loading