diff --git a/src/editor/components/referenceentry.tsx b/src/editor/components/referenceentry.tsx index c0914d88bf3fac8f8e017660e5da9626520c745c..e674e83a860934b0f0953eede3325c46c2ae7b3d 100644 --- a/src/editor/components/referenceentry.tsx +++ b/src/editor/components/referenceentry.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useState } from "react"; import { DescriptiveReference } from "../../common/graph/node"; import "./nodetypeentry.css"; @@ -13,15 +13,28 @@ function ReferenceEntry({ onReferenceDelete, onReferenceChange, }: ReferenceEntryProps) { + const [change, setChange] = useState(false); + const onPropChange = ( prop: keyof DescriptiveReference, newValue: string ) => { reference[prop] = newValue; + setChange(true); + }; + + const handleOnBlur = () => { + // Did anything change? + if (!change) { + return; + } + + onReferenceChange(reference); + setChange(false); }; return ( - <div className="reference" onBlur={() => onReferenceChange(reference)}> + <div className="reference" onBlur={handleOnBlur}> <label htmlFor="reference-url">Url</label> <br /> <input