MCPcopy Create free account
hub / github.com/cryptii/cryptii / renderMenu

Method renderMenu

src/View/Brick.js:105–149  ·  view source on GitHub ↗

* Renders menu. * @protected * @return {HTMLElement}

()

Source from the content-addressed store, hash-verified

103 * @return {HTMLElement}
104 */
105 renderMenu () {
106 const items = []
107
108 if (this.getModel().hasPipe()) {
109 items.push({
110 label: 'Remove',
111 name: 'remove'
112 })
113 items.push({
114 label: 'Hide',
115 name: 'hide'
116 })
117 items.push({
118 label: 'Duplicate',
119 name: 'duplicate'
120 })
121 }
122
123 if (this.getModel().isRandomizable()) {
124 items.push({
125 label: 'Randomize',
126 name: 'randomize'
127 })
128 }
129
130 return View.createElement('div', {
131 className: 'brick__menu menu'
132 }, [
133 View.createElement('ul', {
134 className: 'menu__list'
135 }, items.map(item =>
136 View.createElement('li', {
137 className: 'menu__item'
138 }, [
139 View.createElement('button', {
140 className: 'menu__button',
141 onClick: evt => {
142 evt.preventDefault()
143 this.getModel().viewMenuItemDidClick(this, item.name)
144 }
145 }, item.label)
146 ])
147 ))
148 ])
149 }
150
151 /**
152 * Renders settings.

Callers 1

renderHeaderMethod · 0.95

Calls 5

hasPipeMethod · 0.80
createElementMethod · 0.80
viewMenuItemDidClickMethod · 0.80
getModelMethod · 0.45
isRandomizableMethod · 0.45

Tested by

no test coverage detected