File tree Expand file tree Collapse file tree 3 files changed +7
-5
lines changed
configs/eslint-config-compass
packages/compass-components/src/components Expand file tree Collapse file tree 3 files changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ const tsxRules = {
4646 'react-hooks/exhaustive-deps' : [
4747 'warn' ,
4848 {
49- additionalHooks : 'useTrackOnChange' ,
49+ additionalHooks : '( useTrackOnChange|useContextMenuItems) ' ,
5050 } ,
5151 ] ,
5252} ;
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ describe('useContextMenuItems', function () {
1818 children ?: React . ReactNode ;
1919 'data-testid' ?: string ;
2020 } ) => {
21- const ref = useContextMenuItems ( items ) ;
21+ const ref = useContextMenuItems ( ( ) => items , [ items ] ) ;
2222
2323 return (
2424 < div data-testid = { dataTestId } ref = { ref } >
Original file line number Diff line number Diff line change 1- import React , { useEffect } from 'react' ;
1+ import React , { useEffect , useMemo } from 'react' ;
22import { Menu , MenuItem , MenuSeparator } from './leafygreen' ;
33import type { ContextMenuItem } from '@mongodb-js/compass-context-menu' ;
44import { useContextMenu } from '@mongodb-js/compass-context-menu' ;
@@ -88,8 +88,10 @@ export function ContextMenu({ menu }: ContextMenuWrapperProps) {
8888}
8989
9090export function useContextMenuItems (
91- items : ContextMenuItem [ ]
91+ getItems : ( ) => ContextMenuItem [ ] ,
92+ dependencies : React . DependencyList | undefined
9293) : React . RefCallback < HTMLElement > {
94+ const memoizedItems = useMemo ( getItems , dependencies ) ;
9395 const contextMenu = useContextMenu ( ) ;
94- return contextMenu . registerItems ( items ) ;
96+ return contextMenu . registerItems ( memoizedItems ) ;
9597}
You can’t perform that action at this time.
0 commit comments