Skip to content

Commit 4e06911

Browse files
moving out the common funtion
1 parent 7ed7aa5 commit 4e06911

File tree

1 file changed

+41
-39
lines changed

1 file changed

+41
-39
lines changed

frontend/src/components/Popups/GraphEnhancementDialog/EnitityExtraction/NewEntityExtractionSetting.tsx

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export default function NewEntityExtractionSetting({
7777
const [combinedRels, setCombinedRels] = useState<OptionType[]>([]);
7878
const [isSchemaMenuOpen, setIsSchemaMenuOpen] = useState<boolean>(false);
7979
const schemaBtnRef = useRef<HTMLButtonElement>(null);
80-
80+
8181
useEffect(() => {
8282
const patterns = Array.from(
8383
new Set([...userDefinedPattern, ...preDefinedPattern, ...dbPattern, ...schemaTextPattern])
@@ -222,58 +222,60 @@ export default function NewEntityExtractionSetting({
222222
setTarget(null);
223223
}
224224
};
225+
const updateStore = (
226+
patterns: string[],
227+
patternToRemove: string,
228+
setPatterns: React.Dispatch<React.SetStateAction<string[]>>,
229+
setNodes: React.Dispatch<React.SetStateAction<OptionType[]>>,
230+
setRels: React.Dispatch<React.SetStateAction<OptionType[]>>
231+
) => {
232+
const updatedPatterns = patterns.filter((p) => p !== patternToRemove);
233+
if (updatedPatterns.length === 0) {
234+
setPatterns([]);
235+
setNodes([]);
236+
setRels([]);
237+
return;
238+
}
239+
const updatedTuples: TupleType[] = updatedPatterns
240+
.map((item) => {
241+
const parts = item.match(/(.*?) -\[:(.*?)\]-> (.*)/);
242+
if (!parts) {
243+
return null;
244+
}
245+
const [src, rel, tgt] = parts.slice(1).map((s) => s.trim());
246+
return {
247+
value: `${src},${rel},${tgt}`,
248+
label: `${src} -[:${rel}]-> ${tgt}`,
249+
source: src,
250+
target: tgt,
251+
type: rel,
252+
};
253+
})
254+
.filter(Boolean) as TupleType[];
255+
const { nodeLabelOptions, relationshipTypeOptions } = extractOptions(updatedTuples);
256+
setPatterns(updatedPatterns);
257+
setNodes(nodeLabelOptions);
258+
setRels(relationshipTypeOptions);
259+
};
225260

226261
const handleRemovePattern = (patternToRemove: string) => {
227262
const match = patternToRemove.match(/(.*?) -\[:(.*?)\]-> (.*)/);
228263
if (!match) {
229264
return;
230265
}
231266
const [, source, type, target] = match.map((s) => s.trim());
232-
const updateStore = (
233-
patterns: string[],
234-
setPatterns: React.Dispatch<React.SetStateAction<string[]>>,
235-
setNodes: React.Dispatch<React.SetStateAction<OptionType[]>>,
236-
setRels: React.Dispatch<React.SetStateAction<OptionType[]>>
237-
) => {
238-
const updatedPatterns = patterns.filter((p) => p !== patternToRemove);
239-
if (updatedPatterns.length === 0) {
240-
setPatterns([]);
241-
setNodes([]);
242-
setRels([]);
243-
return;
244-
}
245-
const updatedTuples: TupleType[] = updatedPatterns
246-
.map((item) => {
247-
const parts = item.match(/(.*?) -\[:(.*?)\]-> (.*)/);
248-
if (!parts) {
249-
return null;
250-
}
251-
const [src, rel, tgt] = parts.slice(1).map((s) => s.trim());
252-
return {
253-
value: `${src},${rel},${tgt}`,
254-
label: `${src} -[:${rel}]-> ${tgt}`,
255-
source: src,
256-
target: tgt,
257-
type: rel,
258-
};
259-
})
260-
.filter(Boolean) as TupleType[];
261-
const { nodeLabelOptions, relationshipTypeOptions } = extractOptions(updatedTuples);
262-
setPatterns(updatedPatterns);
263-
setNodes(nodeLabelOptions);
264-
setRels(relationshipTypeOptions);
265-
};
267+
266268
if (userDefinedPattern.includes(patternToRemove)) {
267-
updateStore(userDefinedPattern, setUserDefinedPattern, setUserDefinedNodes, setUserDefinedRels);
269+
updateStore(userDefinedPattern, patternToRemove, setUserDefinedPattern, setUserDefinedNodes, setUserDefinedRels);
268270
}
269271
if (preDefinedPattern.includes(patternToRemove)) {
270-
updateStore(preDefinedPattern, setPreDefinedPattern, setPreDefinedNodes, setPreDefinedRels);
272+
updateStore(preDefinedPattern, patternToRemove, setPreDefinedPattern, setPreDefinedNodes, setPreDefinedRels);
271273
}
272274
if (dbPattern.includes(patternToRemove)) {
273-
updateStore(dbPattern, setDbPattern, setDbNodes, setDbRels);
275+
updateStore(dbPattern, patternToRemove, setDbPattern, setDbNodes, setDbRels);
274276
}
275277
if (schemaTextPattern.includes(patternToRemove)) {
276-
updateStore(schemaTextPattern, setSchemaTextPattern, setSchemaValNodes, setSchemaValRels);
278+
updateStore(schemaTextPattern, patternToRemove, setSchemaTextPattern, setSchemaValNodes, setSchemaValRels);
277279
}
278280
setCombinedPatterns((prev) => prev.filter((p) => p !== patternToRemove));
279281
setCombinedNodes((prev) => prev.filter((n) => n.value !== source && n.value !== target));

0 commit comments

Comments
 (0)