|
1 | 1 | import React, { useEffect, useState, useMemo, useRef } from 'react' |
2 | | -import JSON5 from 'json5' |
3 | 2 | import extractProperty from 'object-property-extractor' |
4 | 3 | import { ValueNodeWrapper } from './ValueNodeWrapper' |
5 | 4 | import { EditButtons, InputButtons } from './ButtonPanels' |
@@ -43,8 +42,10 @@ export const CollectionNode: React.FC<CollectionNodeProps> = (props) => { |
43 | 42 | defaultValue, |
44 | 43 | translate, |
45 | 44 | customNodeDefinitions, |
| 45 | + jsonParse, |
| 46 | + jsonStringify, |
46 | 47 | } = props |
47 | | - const [stringifiedValue, setStringifiedValue] = useState(JSON.stringify(data, null, 2)) |
| 48 | + const [stringifiedValue, setStringifiedValue] = useState(jsonStringify(data)) |
48 | 49 |
|
49 | 50 | const startCollapsed = collapseFilter(incomingNodeData) |
50 | 51 | const [collapsed, setCollapsed] = useState(startCollapsed) |
@@ -80,7 +81,7 @@ export const CollectionNode: React.FC<CollectionNodeProps> = (props) => { |
80 | 81 | const [isAnimating, setIsAnimating] = useState(false) |
81 | 82 |
|
82 | 83 | useEffect(() => { |
83 | | - setStringifiedValue(JSON.stringify(data, null, 2)) |
| 84 | + setStringifiedValue(jsonStringify(data)) |
84 | 85 | }, [data]) |
85 | 86 |
|
86 | 87 | useEffect(() => { |
@@ -150,7 +151,7 @@ export const CollectionNode: React.FC<CollectionNodeProps> = (props) => { |
150 | 151 |
|
151 | 152 | const handleEdit = () => { |
152 | 153 | try { |
153 | | - const value = JSON5.parse(stringifiedValue) |
| 154 | + const value = jsonParse(stringifiedValue) |
154 | 155 | setCurrentlyEditingElement(null) |
155 | 156 | setError(null) |
156 | 157 | if (JSON.stringify(value) === JSON.stringify(data)) return |
@@ -205,7 +206,7 @@ export const CollectionNode: React.FC<CollectionNodeProps> = (props) => { |
205 | 206 | const handleCancel = () => { |
206 | 207 | setCurrentlyEditingElement(null) |
207 | 208 | setError(null) |
208 | | - setStringifiedValue(JSON.stringify(data, null, 2)) |
| 209 | + setStringifiedValue(jsonStringify(data)) |
209 | 210 | } |
210 | 211 |
|
211 | 212 | // DERIVED VALUES (this makes the JSX conditional logic easier to follow) |
|
0 commit comments