- {this.getMenuItems().map(item => this.renderMenuItem(item))}
-
+ {menuItems.slice(0, menuItems.length - this.calculateNumberOfHiddenItems(menuItems)).map(item => this.renderMenuItem(item))}
+ {
+ this.state.numberOfHiddenItems > 0 &&
+
this.renderContextMenu(e.nativeEvent, menuItems)} />
+ }
+ this.gapElementChanged(element)} style={{ flexGrow: 1 }}>
this.props.commandRegistry.executeCommand(NotebookCommands.SELECT_KERNEL_COMMAND.id, this.props.notebookModel)}>
@@ -108,7 +166,18 @@ export class NotebookMainToolbar extends React.Component
- ;
+ ;
+ }
+
+ protected gapElementChanged(element: HTMLDivElement | null): void {
+ if (this.gapElement) {
+ this.resizeObserver.unobserve(this.gapElement);
+ }
+ this.gapElement = element ?? undefined;
+ if (this.gapElement) {
+ this.lastGapElementWidth = this.gapElement.getBoundingClientRect().width;
+ this.resizeObserver.observe(this.gapElement);
+ }
}
protected renderMenuItem(item: MenuNode, submenu?: string): React.ReactNode {
@@ -157,4 +226,10 @@ export class NotebookMainToolbar extends React.Component