Class: Menu ‹SS›#
Type parameters#
▪ SS
Hierarchy#
- Component‹MenuProps, State›
↳ Menu
Index#
Constructors#
Properties#
Accessors#
Methods#
- UNSAFE_componentWillMount
- UNSAFE_componentWillReceiveProps
- UNSAFE_componentWillUpdate
- bindItemRef
- bindRef
- close
- componentDidCatch
- componentDidMount
- componentDidUpdate
- componentWillMount
- componentWillReceiveProps
- componentWillUnmount
- componentWillUpdate
- focusNextItem
- forceUpdate
- getSnapshotBeforeUpdate
- onBlur
- onClickOutside
- onContextMenu
- onKeyDown
- onScrollOutside
- onWindowResize
- open
- render
- setState
- shouldComponentUpdate
- toggle
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:#
- [ index: number]: MenuItem
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#
▸ setState‹K›(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