Skip to content

Commit 369c289

Browse files
committed
feat: add onselect for object and array
1 parent 5da7325 commit 369c289

File tree

3 files changed

+45
-12
lines changed

3 files changed

+45
-12
lines changed

package.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,17 +299,32 @@
299299
]
300300
}
301301
},
302+
"nano-staged": {
303+
"*.js": [
304+
"prettier-standard",
305+
"standard --fix"
306+
],
307+
"package.json": [
308+
"finepack"
309+
]
310+
},
302311
"peerDependencies": {
303312
"react": ">= 15",
304313
"react-dom": ">= 15"
305314
},
315+
"simple-git-hooks": {
316+
"commit-msg": "npx commitlint --edit",
317+
"pre-commit": "npx nano-staged"
318+
},
306319
"standard": {
307320
"globals": [
308321
"describe",
309322
"it"
310323
],
311324
"ignore": [
312325
"Demo.js",
326+
"Object.js",
327+
"VariableMeta.js",
313328
"demo/dist",
314329
"dev-server"
315330
]

src/js/components/DataTypes/Object.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,16 @@ class RjvObject extends React.PureComponent {
130130
}
131131

132132
getObjectMetaData = src => {
133-
const { rjvId, theme } = this.props
133+
const { rjvId, theme, namespace } = this.props
134134
const { size, hovered } = this.state
135-
return <VariableMeta rowHovered={hovered} size={size} {...this.props} />
135+
return (
136+
<VariableMeta
137+
rowHovered={hovered}
138+
size={size}
139+
namespace={namespace}
140+
{...this.props}
141+
/>
142+
)
136143
}
137144

138145
getBraceStart (object_type, expanded) {

src/js/components/VariableMeta.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,31 +105,42 @@ export default class extends React.PureComponent {
105105
theme,
106106
onDelete,
107107
onAdd,
108+
onSelect,
108109
enableClipboard,
109110
src,
110111
namespace,
111-
rowHovered
112+
rowHovered,
113+
name
112114
} = this.props
113115
return (
114116
<div
115117
{...Theme(theme, 'object-meta-data')}
116118
class='object-meta-data'
117119
onClick={e => {
118120
e.stopPropagation()
121+
if (onSelect !== false) {
122+
const location = [...namespace]
123+
location.shift()
124+
location.pop()
125+
onSelect({
126+
name: name,
127+
value: src,
128+
namespace: location,
129+
type: toType(src)
130+
})
131+
}
119132
}}
120133
>
121134
{/* size badge display */}
122135
{this.getObjectSize()}
123136
{/* copy to clipboard icon */}
124-
{enableClipboard
125-
? (
126-
<CopyToClipboard
127-
rowHovered={rowHovered}
128-
clickCallback={enableClipboard}
129-
{...{ src, theme, namespace }}
130-
/>
131-
)
132-
: null}
137+
{enableClipboard ? (
138+
<CopyToClipboard
139+
rowHovered={rowHovered}
140+
clickCallback={enableClipboard}
141+
{...{ src, theme, namespace }}
142+
/>
143+
) : null}
133144
{/* copy add/remove icons */}
134145
{onAdd !== false ? this.getAddAttribute(rowHovered) : null}
135146
{onDelete !== false ? this.getRemoveObject(rowHovered) : null}

0 commit comments

Comments
 (0)