Skip to content

Class: Menu ‹SS#

Type parameters#

SS

Hierarchy#

Menu

Index#

Constructors#

Properties#

Accessors#

Methods#

Constructors#

constructor#

+ new Menu(props: Readonly‹MenuProps› | MenuProps): Menu

Inherited from PageLayout.constructor

Defined in node_modules/@types/react/index.d.ts:473

Parameters:

Name Type
props Readonly‹MenuProps› | MenuProps

Returns: Menu

+ new Menu(props: MenuProps, context: any): Menu

Inherited from PageLayout.constructor

Defined in node_modules/@types/react/index.d.ts:475

deprecated

see https://reactjs.org/docs/legacy-context.html

Parameters:

Name Type
props MenuProps
context any

Returns: Menu

Properties#

context#

context: any

Inherited from PageLayout.context

Defined in node_modules/@types/react/index.d.ts:473

If using the new style context, re-declare this in your class to be the React.ContextType of your static contextType. Should be used with type annotation or static contextType.

static contextType = MyContext
// For TS pre-3.7:
context!: React.ContextType<typeof MyContext>
// For TS 3.7 and above:
declare context: React.ContextType<typeof MyContext>

see https://reactjs.org/docs/context.html


elem#

elem: HTMLUListElement

Defined in src/renderer/components/menu/menu.tsx:56


Protected items#

items: object

Defined in src/renderer/components/menu/menu.tsx:57

Type declaration:#


opener#

opener: HTMLElement

Defined in src/renderer/components/menu/menu.tsx:55


props#

props: Readonly‹MenuProps› & Readonly‹object›

Inherited from PageLayout.props

Defined in node_modules/@types/react/index.d.ts:498


refreshPosition#

refreshPosition: (Anonymous function) & Cancelable = debounce(() => { if (!this.props.usePortal || !this.opener) return; const { width, height } = this.opener.getBoundingClientRect(); let { left, top, bottom, right } = this.opener.getBoundingClientRect(); const withScroll = window.getComputedStyle(this.elem).position !== "fixed";

// window global scroll corrections
if (withScroll) {
  left += window.pageXOffset;
  top += window.pageYOffset;
  right = left + width;
  bottom = top + height;
}

// setup initial position
const position: MenuPosition = { left: true, bottom: true };

this.elem.style.left = `${left}px`;
this.elem.style.top = `${bottom}px`;

// correct position if menu doesn't fit to viewport
const menuPos = this.elem.getBoundingClientRect();

if (menuPos.right > window.innerWidth) {
  this.elem.style.left = `${right - this.elem.offsetWidth}px`;
  position.right = true;
  delete position.left;
}

if (menuPos.bottom > window.innerHeight) {
  this.elem.style.top = `${top - this.elem.offsetHeight}px`;
  position.top = true;
  delete position.bottom;
}
this.setState({ position });

}, Animate.VISIBILITY_DELAY_MS)

Defined in src/renderer/components/menu/menu.tsx:125


refs#

refs: object

Inherited from PageLayout.refs

Defined in node_modules/@types/react/index.d.ts:504

deprecated https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs

Type declaration:#

  • [ key: string]: ReactInstance

state#

state: State

Overrides PageLayout.state

Defined in src/renderer/components/menu/menu.tsx:59


Static Optional contextType#

contextType? : Context‹any›

Inherited from PageLayout.contextType

Defined in node_modules/@types/react/index.d.ts:455

If set, this.context will be set at runtime to the current value of the given Context.

Usage:

type MyContext = number
const Ctx = React.createContext<MyContext>(0)

class Foo extends React.Component {
  static contextType = Ctx
  context!: React.ContextType<typeof Ctx>
  render () {
    return <>My context's value: {this.context}</>;
  }
}

see https://reactjs.org/docs/context.html#classcontexttype


Static defaultProps#

defaultProps: object = defaultPropsMenu as object

Defined in src/renderer/components/menu/menu.tsx:53

Accessors#

Protected focusableItems#

get focusableItems(): MenuItem‹›[]

Defined in src/renderer/components/menu/menu.tsx:99

Returns: MenuItem‹›[]


Protected focusedItem#

get focusedItem(): MenuItem‹›

Defined in src/renderer/components/menu/menu.tsx:103

Returns: MenuItem‹›


isOpen#

get isOpen(): boolean

Defined in src/renderer/components/menu/menu.tsx:61

Returns: boolean

Methods#

Optional UNSAFE_componentWillMount#

UNSAFE_componentWillMount(): void

Inherited from PageLayout.UNSAFE_componentWillMount

Defined in node_modules/@types/react/index.d.ts:711

Called immediately before mounting occurs, and before Component#render. Avoid introducing any side-effects or subscriptions in this method.

This method will not stop working in React 17.

Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

deprecated 16.3, use componentDidMount or the constructor instead

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path

Returns: void


Optional UNSAFE_componentWillReceiveProps#

UNSAFE_componentWillReceiveProps(nextProps: Readonly‹MenuProps›, nextContext: any): void

Inherited from PageLayout.UNSAFE_componentWillReceiveProps

Defined in node_modules/@types/react/index.d.ts:743

Called when the component may be receiving new props. React may call this even if props have not changed, so be sure to compare new and existing props if you only want to handle changes.

Calling Component#setState generally does not trigger this method.

This method will not stop working in React 17.

Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

deprecated 16.3, use static getDerivedStateFromProps instead

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path

Parameters:

Name Type
nextProps Readonly‹MenuProps
nextContext any

Returns: void


Optional UNSAFE_componentWillUpdate#

UNSAFE_componentWillUpdate(nextProps: Readonly‹MenuProps›, nextState: Readonly‹State›, nextContext: any): void

Inherited from PageLayout.UNSAFE_componentWillUpdate

Defined in node_modules/@types/react/index.d.ts:771

Called immediately before rendering when new props or state is received. Not called for the initial render.

Note: You cannot call Component#setState here.

This method will not stop working in React 17.

Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

deprecated 16.3, use getSnapshotBeforeUpdate instead

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path

Parameters:

Name Type
nextProps Readonly‹MenuProps
nextState Readonly‹State›
nextContext any

Returns: void


Protected bindItemRef#

bindItemRef(item: MenuItem, index: number): void

Defined in src/renderer/components/menu/menu.tsx:246

Parameters:

Name Type
item MenuItem
index number

Returns: void


Protected bindRef#

bindRef(elem: HTMLUListElement): void

Defined in src/renderer/components/menu/menu.tsx:242

Parameters:

Name Type
elem HTMLUListElement

Returns: void


close#

close(): void

Defined in src/renderer/components/menu/menu.tsx:169

Returns: void


Optional componentDidCatch#

componentDidCatch(error: Error, errorInfo: ErrorInfo): void

Inherited from PageLayout.componentDidCatch

Defined in node_modules/@types/react/index.d.ts:640

Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.

Parameters:

Name Type
error Error
errorInfo ErrorInfo

Returns: void


componentDidMount#

componentDidMount(): void

Overrides WizardLayout.componentDidMount

Defined in src/renderer/components/menu/menu.tsx:65

Returns: void


Optional componentDidUpdate#

componentDidUpdate(prevProps: Readonly‹MenuProps›, prevState: Readonly‹State›, snapshot?: SS): void

Inherited from PageLayout.componentDidUpdate

Defined in node_modules/@types/react/index.d.ts:682

Called immediately after updating occurs. Not called for the initial render.

The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null.

Parameters:

Name Type
prevProps Readonly‹MenuProps
prevState Readonly‹State›
snapshot? SS

Returns: void


Optional componentWillMount#

componentWillMount(): void

Inherited from PageLayout.componentWillMount

Defined in node_modules/@types/react/index.d.ts:697

Called immediately before mounting occurs, and before Component#render. Avoid introducing any side-effects or subscriptions in this method.

Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

deprecated 16.3, use componentDidMount or the constructor instead; will stop working in React 17

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path

Returns: void


Optional componentWillReceiveProps#

componentWillReceiveProps(nextProps: Readonly‹MenuProps›, nextContext: any): void

Inherited from PageLayout.componentWillReceiveProps

Defined in node_modules/@types/react/index.d.ts:726

Called when the component may be receiving new props. React may call this even if props have not changed, so be sure to compare new and existing props if you only want to handle changes.

Calling Component#setState generally does not trigger this method.

Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

deprecated 16.3, use static getDerivedStateFromProps instead; will stop working in React 17

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path

Parameters:

Name Type
nextProps Readonly‹MenuProps
nextContext any

Returns: void


componentWillUnmount#

componentWillUnmount(): void

Overrides WizardLayout.componentWillUnmount

Defined in src/renderer/components/menu/menu.tsx:88

Returns: void


Optional componentWillUpdate#

componentWillUpdate(nextProps: Readonly‹MenuProps›, nextState: Readonly‹State›, nextContext: any): void

Inherited from PageLayout.componentWillUpdate

Defined in node_modules/@types/react/index.d.ts:756

Called immediately before rendering when new props or state is received. Not called for the initial render.

Note: You cannot call Component#setState here.

Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

deprecated 16.3, use getSnapshotBeforeUpdate instead; will stop working in React 17

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update

see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path

Parameters:

Name Type
nextProps Readonly‹MenuProps
nextState Readonly‹State›
nextContext any

Returns: void


Protected focusNextItem#

focusNextItem(reverse: boolean): void

Defined in src/renderer/components/menu/menu.tsx:107

Parameters:

Name Type Default
reverse boolean false

Returns: void


forceUpdate#

forceUpdate(callback?: function): void

Inherited from PageLayout.forceUpdate

Defined in node_modules/@types/react/index.d.ts:490

Parameters:

Optional callback: function

▸ (): void

Returns: void


Optional getSnapshotBeforeUpdate#

getSnapshotBeforeUpdate(prevProps: Readonly‹MenuProps›, prevState: Readonly‹State›): SS | null

Inherited from PageLayout.getSnapshotBeforeUpdate

Defined in node_modules/@types/react/index.d.ts:676

Runs before React applies the result of render to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before render causes changes to it.

Note: the presence of getSnapshotBeforeUpdate prevents any of the deprecated lifecycle events from running.

Parameters:

Name Type
prevProps Readonly‹MenuProps
prevState Readonly‹State›

Returns: SS | null


onBlur#

onBlur(): void

Defined in src/renderer/components/menu/menu.tsx:236

Returns: void


onClickOutside#

onClickOutside(evt: MouseEvent): void

Defined in src/renderer/components/menu/menu.tsx:224

Parameters:

Name Type
evt MouseEvent

Returns: void


onContextMenu#

onContextMenu(): void

Defined in src/renderer/components/menu/menu.tsx:205

Returns: void


onKeyDown#

onKeyDown(evt: KeyboardEvent): void

Defined in src/renderer/components/menu/menu.tsx:178

Parameters:

Name Type
evt KeyboardEvent

Returns: void


onScrollOutside#

onScrollOutside(evt: UIEvent): void

Defined in src/renderer/components/menu/menu.tsx:214

Parameters:

Name Type
evt UIEvent

Returns: void


onWindowResize#

onWindowResize(): void

Defined in src/renderer/components/menu/menu.tsx:209

Returns: void


open#

open(): void

Defined in src/renderer/components/menu/menu.tsx:162

Returns: void


render#

render(): Element‹›

Overrides void

Defined in src/renderer/components/menu/menu.tsx:250

Returns: Element‹›


setState#

setStateK›(state: function | S | object, callback?: function): void

Inherited from PageLayout.setState

Defined in node_modules/@types/react/index.d.ts:485

Type parameters:

K: keyof State

Parameters:

state: function | S | object

Optional callback: function

▸ (): void

Returns: void


Optional shouldComponentUpdate#

shouldComponentUpdate(nextProps: Readonly‹MenuProps›, nextState: Readonly‹State›, nextContext: any): boolean

Inherited from PageLayout.shouldComponentUpdate

Defined in node_modules/@types/react/index.d.ts:630

Called to determine whether the change in props and state should trigger a re-render.

Component always returns true. PureComponent implements a shallow comparison on props and state and returns true if any props or states have changed.

If false is returned, Component#render, componentWillUpdate and componentDidUpdate will not be called.

Parameters:

Name Type
nextProps Readonly‹MenuProps
nextState Readonly‹State›
nextContext any

Returns: boolean


toggle#

toggle(): void

Defined in src/renderer/components/menu/menu.tsx:174

Returns: void