File tree Expand file tree Collapse file tree 4 files changed +9
-3
lines changed Expand file tree Collapse file tree 4 files changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import { useState } from 'react';
3
3
export interface CopiedProps < T = object > extends React . SVGProps < SVGSVGElement > {
4
4
show ?: boolean ;
5
5
text ?: T ;
6
+ onCopied ?: ( text : string , obj : T ) => void ;
6
7
render ?: ( props : Omit < CopiedProps < T > , 'render' > ) => JSX . Element ;
7
8
}
8
9
Original file line number Diff line number Diff line change @@ -26,6 +26,8 @@ export interface JsonViewProps<T extends object>
26
26
collapsed ?: boolean | number ;
27
27
/** Callback function for when a treeNode is expanded or collapsed */
28
28
onExpand ?: ( props : { expand : boolean ; value : T ; keyid : string ; keyName ?: string | number ; } ) => void ;
29
+ /** Fires event when you copy */
30
+ onCopied ?: CopiedProps < T > [ 'onCopied' ] ;
29
31
/** Redefine interface elements to re-render. */
30
32
components ?: {
31
33
braces ?: MetaProps [ 'render' ] ;
Original file line number Diff line number Diff line change @@ -96,6 +96,7 @@ export function RooNode<T extends object>(props: RooNodeProps<T>) {
96
96
level = 1 ,
97
97
keyid = 'root' ,
98
98
quotes = '"' ,
99
+ onCopied,
99
100
onExpand,
100
101
...reset
101
102
} = props ;
@@ -115,6 +116,7 @@ export function RooNode<T extends object>(props: RooNodeProps<T>) {
115
116
displayDataTypes,
116
117
displayObjectSize,
117
118
enableClipboard,
119
+ onCopied,
118
120
onExpand,
119
121
collapsed,
120
122
quotes,
@@ -126,6 +128,7 @@ export function RooNode<T extends object>(props: RooNodeProps<T>) {
126
128
displayObjectSize,
127
129
enableClipboard,
128
130
indentWidth,
131
+ renderBraces : components . braces ,
129
132
renderValue : components . value ,
130
133
} as ValueViewProps < T > ;
131
134
@@ -135,7 +138,7 @@ export function RooNode<T extends object>(props: RooNodeProps<T>) {
135
138
< TriangleArrow style = { arrowStyle } className = "w-rjv-arrow" />
136
139
) ;
137
140
const [ showTools , setShowTools ] = useState ( false ) ;
138
- const tools = enableClipboard ? < Copied show = { showTools } text = { value as T } render = { components . copied } /> : undefined ;
141
+ const tools = enableClipboard ? < Copied show = { showTools } text = { value as T } onCopied = { onCopied } render = { components . copied } /> : undefined ;
139
142
const eventProps : React . HTMLAttributes < HTMLDivElement > = { } ;
140
143
if ( enableClipboard ) {
141
144
eventProps . onMouseEnter = ( ) => setShowTools ( true ) ;
@@ -201,7 +204,7 @@ export function RooNode<T extends object>(props: RooNodeProps<T>) {
201
204
return ;
202
205
}
203
206
return (
204
- < ValueView key = { idx } { ...valueViewProps } renderBraces = { components . braces } renderKey = { renderKey } keyName = { key } value = { item } />
207
+ < ValueView key = { idx } { ...valueViewProps } renderKey = { renderKey } keyName = { key } value = { item } />
205
208
) ;
206
209
} ) }
207
210
</ Line >
Original file line number Diff line number Diff line change @@ -74,7 +74,7 @@ export function Example() {
74
74
displayDataTypes = { displayDataTypes }
75
75
quotes = { quotes }
76
76
enableClipboard = { clipboard }
77
- style = { theme }
77
+ style = { { ... theme , padding : 6 , borderRadius : 6 } }
78
78
collapsed = { collapsed }
79
79
/>
80
80
< Options >
You can’t perform that action at this time.
0 commit comments